当前C# .net语言的应用范围越来越广泛IIS 的服务器架构后台代码、桌面应用程序代码大全的 winform 、Unity3d 的逻辑脚本都在使用。C# .net 具备强大的便捷特性使得开发成本极低。而作为一款.net 语言也有它让开发者头疼的弊病——非常容易被反编译。市面上的 Dnspy, ILspyde4dot等工具可以非常容易反编译出被混淆保护的C# .net 程序代码大全。
未经深思加殼保护的 ILspy 反编译效果如下:
深思自主研发了为 C# .net 语言做保护的外壳()将C# .net 编译成的执行程序代码大全(.exe),动态库(.dll)直接拖入加壳工具即可完成保护操作十分方便。并且在效果上已经完全看不到源码中的逻辑
加密技术:代码加密/代码混淆/碎片代码执行
代码加密:针对dotNet程序代码大全,保护IL代码:一种动态运行方法解密被保护代码把当前代码加密存储为密文,存储起来当程序代码大全运行到被保护函數时候自动解密并且执行,执行之后再擦除代码执行之后再擦除代码,运行到哪里才解密哪里的代码黑客无法获得原始的中间语言的指令和内存完整性的代码,由于是纯内存操作所以运行速度快 性价高的保护手段,建议全加
代码混淆:将代码中的各种元素如变量,函数类的名字改写成无意义的名字。比如改写成单个字母或是简短的无意义字母组合,甚至改写成“__”这样的符号使得阅读的人无法根据名字猜测其用途。
· 重写代码中的部分逻辑将其变成功能上等价,但是更难理解的形式比如将for循环改写成while循环,将循环改写成遞归精简中间变量,等等
· 打乱代码的格式。比如删除空格将多行代码挤到一行中,或者将一行代码断成多行等等
· 添加花指令,通过特殊构造的指令来使得反汇编器出错进而干扰反编译工作的进行。
代码混淆器也会带来一些问题
· 被混淆的代码难于理解,因此调试除错也变得困难起来开发人员通常需要保留原始的未混淆的代码用于调试。
· 对于支持反射的语言代码混淆有可能与反射发生沖突。
· 代码混淆并不能真正阻止反向工程只能增大其难度。因此对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代碼的安全
碎片代码执行:深思自主知识产权的最新技术:基于 LLVM 和 ARM 虚拟机技术,自动抽取海量代码移入 SS 内核态模块极大的降低了使用门檻, 不再需要手动移植算法可移植的算法从有限的几个增长到几乎无限多,支持的语言也不再限于 C 这是加密技术的一次综合应用,效果上类似于将软件打散执行让破解者无从下手。
IIS 服务架构的后台逻辑 DLL 文件
UG等第三方绘图工具使用的 DLL 文件