.net程序防止反编译
admin
2023-02-19 02:00:04
0

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

 

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

public int add(int a, int b)
{
    return a + b;
}
public int div(int a, int b)
{
    return a / b;
}
public int mul(int a, int b)
{
    return a * b;
}
public int sub(int a, int b)
{
    return a - b;
}


 

解决方案:

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

 .net程序防止反编译

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

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

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

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

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

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

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

主要的问题包括:

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

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

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

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

加密后的效果

public int add(int a, int b)
{
    return (int)dm.dynamic_method((object)this, System.Reflection.MethodBase.GetCurrentMethod(), 16416u, 21, 16384u, 32u, 31516u, 5).Invoke(this, new object[]
    {
        this,
        a,
        b
    });
}
 
public int div(int a, int b)
{
    return (int)dm.dynamic_method((object)this, System.Reflection.MethodBase.GetCurrentMethod(), 16956u, 21, 16924u, 32u, 31516u, 2).Invoke(this, new object[]
    {
        this,
        a,
        b
    });
}
 
public int mul(int a, int b)
{
    return (int)dm.dynamic_method((object)this, System.Reflection.MethodBase.GetCurrentMethod(), 16776u, 21, 16744u, 32u, 31516u, 3).Invoke(this, new object[]
    {
        this,
        a,
        b
    });
}
 
public int sub(int a, int b)
{
    return (int)dm.dynamic_method((object)this, System.Reflection.MethodBase.GetCurrentMethod(), 16596u, 21, 16564u, 32u, 31516u, 4).Invoke(this, new object[]
    {
        this,
        a,
        b
    });
}

 

架构支持#

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

windows PC 应用程序 EXE 文件

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

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

Unity3d 编译使用的 DLL 文件


相关内容

热门资讯

AI服务涉黄第一案背后:AI陪... 澎湃新闻记者 孔家兴 王亚赛备受关注的国内首起AI陪伴“聊黄”案,将在上海市第一中级人民法院开庭二审...
海关总署:我国是美国第三大出口... 【大河财立方消息】1月14日,国新办就2025年全年进出口情况举行新闻发布会。海关总署新闻发言人、统...
河南省绿色环保装饰材料评审认证... 由河南省室内环境管理协会牵头,联合河南省消费者协会、河南省疾病控制中心、河南省产品质量检验技术研究院...
原创 核... 各位观众老爷们,新年好! 刚过完元旦,是不是感觉钱包空空,只想躺平? 别急,今天给大伙儿带来一个相当...
1月26日起调图,国铁集团郑州... 【大河财立方 记者 陈诗昂 通讯员 郑轩】 1月14日,记者从中国铁路郑州局集团有限公司(以下简称“...
广东省工业和信息化厅开展“广东... 上证报中国证券网讯(记者周亮)开年以来,聚焦广东制造业特别是传统产业提质升级的迫切需求,广东省工业和...
蓝箭航天与中国星网、垣信卫星签... 近日,蓝箭航天科创板IPO获受理,其招股书显示:公司已与中国星网和垣信卫星均签订正式发射服务合同,公...
国台办:只要承认“九二共识”,... 1月14日,国务院台办举行例行新闻发布会。有记者问:海基会之前称2026年两岸关系是高度不确定的情况...
知名火锅品牌,多地关店,郑州门... 【大河财立方 记者 吴海舒 郝楠楠 实习生 程小纯 文/图】 呷哺呷哺集团(以下简称呷哺集团)旗下高...
国台办:在“台独”绝路上越疯狂... 1月14日,国务院台办举行例行新闻发布会。有记者问:国台办日前宣布将刘世芳、郑英耀列为“台独”顽固分...