c#程序防止反编译

作者: 辉这样说 | 来源:发表于2019-06-04 12:07 被阅读4次

当前C# .net语言的应用范围越来越广泛,IIS 的服务器架构后台代码、桌面应用程序的 winform 、Unity3d 的逻辑脚本都在使用。C# .net 具备强大的便捷特性,使得开发成本极低。而作为一款.net 语言,也有它让开发者头疼的弊病——非常容易被反编译。市面上的 Dnspy, ILspy,de4dot等工具可以非常容易反编译出被混淆保护的C# .net 程序。

未经深思加壳保护的 ILspy 反编译效果如下:

解决方案:

深思自主研发了为 C# .net 语言做保护的外壳(Virbox Protector)。将C# .net 编译成的执行程序(.exe),动态库(.dll)直接拖入加壳工具即可完成保护操作,十分方便。并且在效果上已经完全看不到源码中的逻辑。

加密技术:代码加密/代码混淆/碎片代码执行

代码加密:针对dotNet程序,保护IL代码:一种动态运行方法解密被保护代码。把当前代码加密存储为密文,存储起来,当程序运行到被保护函数时候自动解密并且执行,执行之后再擦除代码,执行之后再擦除代码,运行到哪里才解密哪里的代码,黑客无法获得原始的中间语言的指令和内存完整性的代码,由于是纯内存操作所以运行速度快, 性价高的保护手段,建议全加

代码混淆:将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。

· 重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式。比如将for循环改写成while循环,将循环改写成递归,精简中间变量,等等。

· 打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。

· 添加花指令,通过特殊构造的指令来使得反汇编器出错,进而干扰反编译工作的进行。

代码混淆器也会带来一些问题。

主要的问题包括:

· 被混淆的代码难于理解,因此调试除错也变得困难起来。开发人员通常需要保留原始的未混淆的代码用于调试。

· 对于支持反射的语言,代码混淆有可能与反射发生冲突。

· 代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。

碎片代码执行:深思自主知识产权的最新技术:基于 LLVM 和 ARM 虚拟机技术,自动抽取海量代码移入 SS 内核态模块,极大的降低了使用门槛, 不再需要手动移植算法,可移植的算法从有限的几个增长到几乎无限多,支持的语言也不再限于 C, 这是加密技术的一次综合应用,效果上类似于将软件打散执行,让破解者无从下手。

加密后的效果

架构支持

IIS 服务架构的后台逻辑 DLL 文件

windows PC 应用程序 EXE 文件

windows PC 应用程序动态库 DLL 文件

UG等第三方绘图工具使用的 DLL 文件

Unity3d 编译使用的 DLL 文件

产品试用:https://lm.virbox.com/

相关文章

  • c#程序防止反编译

    当前C# .net语言的应用范围越来越广泛,IIS 的服务器架构后台代码、桌面应用程序的 winform 、Uni...

  • 反编译Android APK及防止APK程序被反编译

    反编译Android APK及防止APK程序被反编译 怎么逆向工程对Android Apk 进行反编译 googl...

  • 如何防止C#代码反编译?

    防止C#代码反编译,这里推荐一种方式,就是利用加壳工具 Virbox Protector 加壳后,配合使用加密锁,...

  • .Net 程序如何防止反编译

    众所周知,做逆向的可以使用Reflector或其他工具反编译任何.NET程序集。 发布出去的DLL所面临的风险:一...

  • iOS 面试 - 其他

    怎么防止反编译? iOS面试题:怎么防止反编译? - 简书 埋点方案的 iOS无埋点数据SDK的整体设计与技术实现...

  • 怎么防止反编译?

    怎么防止反编译?本地数据加密。iOS应用防反编译加密技术之一:对NSUserDefaults,sqlite存储文件...

  • Java jar 如何防止被反编译?代码写的太烂,害怕被人发现

    java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编译措施存在。今天就拜读...

  • apk加固

    android应用版本在发布时,为了防止反编译,需要对应用加固,目前常用的反编译工具为: 1、apktool ...

  • nui-app开发微信小程序引入vantWeapp库

    为什么使用nui-app开发微信小程序呢? 一次开发,多端发布 防止源码反编译,增加安全性 提供插件市场,ui库,...

  • Python加密保护解决方案

    防止代码反编译,高强度加密保护exe或pyc文件 产品简介 Python语言写的程序无需编译成二进制文件代码,可以...

网友评论

    本文标题:c#程序防止反编译

    本文链接:https://www.haomeiwen.com/subject/pdelxctx.html