C++托管程序?qū)崿F(xiàn)安全管理
C++編程語言中對(duì)于程序的安全性操作也是比較簡單的。我們可以通過C++托管程序來進(jìn)行程序的安全管理。那么如何才能正確的實(shí)現(xiàn)這一功能呢?在這里我們將會(huì)為大家詳細(xì)介紹一下C++托管程序的相關(guān)概念。#t#
一般,C++托管程序要保護(hù)的有核心算法和敏感數(shù)據(jù)。
1、保護(hù)核心算法:用C++開發(fā)組件
2、保護(hù)敏感數(shù)據(jù):用C++程序+C++托管組件,不能單純用組件
為什么說保護(hù)敏感數(shù)據(jù)不能用C++組件?
常見的敏感數(shù)據(jù)有數(shù)據(jù)庫連接串、密鑰,如果通過組件接口通信,對(duì)于一些會(huì)編程的人而言,很容易通過編程截獲;因?yàn)椋?/p>
a、若對(duì)組件的設(shè)計(jì)時(shí)進(jìn)行授權(quán):即使實(shí)現(xiàn)了,因?yàn)榻涌谛畔⒃诜淳幾g工具很容易得到;破解者至少擁有了運(yùn)行時(shí)的授權(quán)
b、破解者可以通過Ilasm工具來變更注冊(cè)CheckPoint進(jìn)行修改
所以,只有不能被編譯的代碼才是較為“安全”的,而目前只能C++托管程序才能兼有保護(hù)和易開發(fā)的優(yōu)點(diǎn)。下面具體說說方案:
1、思想:通過C++托管程序調(diào)用C#.net組件,其中C++托管程序部分作為容器,C#.net組件作為應(yīng)用
2、實(shí)現(xiàn)
a.創(chuàng)建一C++托管組件,新建一C++類,由該類接收敏感數(shù)據(jù);調(diào)用C#.net組件
b.創(chuàng)建一C++Win32應(yīng)用程序,通過Regasm調(diào)用C++托管組件
c.創(chuàng)建C#.net組件:提供接收敏感數(shù)據(jù)的接口,打開主應(yīng)用程序畫面
3、要點(diǎn):通過C++托管程序連接C++和C#
(托管代碼均可反編譯,只有用非托管C++,才不能被反編譯)