C++編程語言中對於程序的安全性操作也是比較簡單的。我們可以通過C++托管程序來進行程序的安全管理。那麼如何才能正確的實現這一功能呢?在這裡我們將會為大家詳細介紹一下C++托管程序的相關概念。
一般,C++托管程序要保護的有核心算法和敏感數據。
1、保護核心算法:用C++開發組件
2、保護敏感數據:用C++程序+C++托管組件,不能單純用組件
為什麼說保護敏感數據不能用C++組件?
常見的敏感數據有數據庫連接串、密鑰,如果通過組件接口通信,對於一些會編程的人而言,很容易通過編程截獲;因為:
a、若對組件的設計時進行授權:即使實現了,因為接口信息在反編譯工具很容易得到;破解者至少擁有了運行時的授權
b、破解者可以通過Ilasm工具來變更注冊CheckPoint進行修改
所以,只有不能被編譯的代碼才是較為“安全”的,而目前只能C++托管程序才能兼有保護和易開發的優點。下面具體說說方案:
1、思想:通過C++托管程序調用C#.net組件,其中C++托管程序部分作為容器,C#.net組件作為應用
2、實現
a.創建一C++托管組件,新建一C++類,由該類接收敏感數據;調用C#.net組件
b.創建一C++Win32應用程序,通過Regasm調用C++托管組件
c.創建C#.net組件:提供接收敏感數據的接口,打開主應用程序畫面
3、要點:通過C++托管程序連接C++和C#
托管代碼均可反編譯,只有用非托管C++,才不能被反編譯)