C#软件 去混淆

.net 的程序为了安全性,往往加混淆,混淆后的程序能调试,但是可读性差,增加逆向分析的难度; 

一、混淆识别

使用dnspy打开,发现文件名、类名、成员名显示为一串数值,表明加了混淆; 

二、解决方法

使用开源的工具de4dot v3,可以网上下载得到;

cmd运行(shift + 右键:当前路径进入cmd),语法:de4dot.exe   <option>  <filename>

其实,我们直接运行de4dot.exe  就能看到里面的运行参数含义和例子,比较常用的就是 de4dot.exe -r C:\myfileA   -ro  C:\myfileB,表示将文件夹A下的文件去混淆后输出到文件夹B下,文件名不变; 

注意:文件名不能有空格,否则报错; 

将去混淆的模块B,复制粘贴到源软件A(最好先备份源软件),然后运行修改后的软件,如果允许成功那么就破解OK了(比较理想的状态),如果报错,就使用dnspy启动软件,找到出错的地方,查看原因。

 

三、de4dot 的运行

   de4dot先时Detected 文件,然后再Clean文件,再Saving文件; 只有显示Detedted Crypto obfuscator XXX的模块才是加了混淆的模块; 

   de4dot的一些替换规则也许有误,如大小字母替换,我们可以使用dnspy打开de4dot,然后修改转换规则; 

 

常见问题:

1、“Two modules  in the same assembly are main module”

原因: 不同的文件夹下面有相同的模块

解决: 可以去掉同名模块,去混淆后再复制到对应位置;

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值