C++编程语言中对于程序的安全性操作也是比较简单的。我们可以通过C++托管程序来进行程序的安全管理。那么如何才能正确的实现这一功能呢?在这里我们将会为大家详细介绍一下C++托管程序的相关概念。#t#
一般,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++,才不能被反编译)