JhonSong 发表于 2024-5-11 18:51

C#反编译时,反混淆不干净,程序出现大量for、switch、goto

先贴上我用的工具:
查壳工具:https://github.com/ExeinfoASL/ASL
反混淆工具: https://github.com/de4dot/de4dot
反编译工具:https://github.com/dnSpy/dnSpy
反编译一个C#开发的DLL时,发现使用了混淆工具,查壳工具检查如下:


我使用de4dot反混淆得到“WS13012002-cleaned.dll”,然后使用dnspy反编译这个文件,得到:


得到的代码里面有大量的“for (;;)”、“switch-case”、“goto”语句,来控制程序的流程。这种代码一定程度上是可以阅读的,但是对于程序员来说会很费力。之前我就试图和谐过这种代码,最厉害的一次是,花了一个星期时间,将原来1万2千多行的乱码,和谐为不到5千行正常代码。

不知道哪位大神有什么特殊的反混淆工具,可以反混淆得到更干净的代码。

原始文件:
链接:https://pan.baidu.com/s/1fZXkY5O-KZO3O8i8liqcxA?pwd=2cjy
提取码:2cjy

go2crack 发表于 2024-5-11 23:10




好像这样吧?

SoftCracker 发表于 2024-5-11 23:24

这不就是最简单的Dotfuscator壳嘛

> 之前我就试图和谐过这种代码,最厉害的一次是,花了一个星期时间,将原来1万2千多行的乱码,和谐为不到5千行正常代码

大力出奇迹?人才啊

flyer_2001 发表于 2024-5-12 10:33

本帖最后由 flyer_2001 于 2024-5-12 10:50 编辑

楼主发的有压缩密码,哦,找到了,试试看

JhonSong 发表于 2024-5-13 12:20

SoftCracker 发表于 2024-5-11 23:24
这不就是最简单的Dotfuscator壳嘛

> 之前我就试图和谐过这种代码,最厉害的一次是,花了一个星期时间, ...

但是没找到合适的反混淆工具,来得到和谐的代码。目前为了解决问题,只能采用人工手段,渐渐地就发现,这里面是可以通过写工具来和谐的,但是不知道有没有大神写过这种工具。

你有这种工具吗?

JhonSong 发表于 2024-5-13 12:23

go2crack 发表于 2024-5-11 23:10
好像这样吧?

就是这样,这是最简单的乱码,人工和谐代码,花不了多长时间,但是遇到特别长的代码,就特别费人力了。

你有好的解决办法吗?

JhonSong 发表于 2024-5-13 12:25

li568172326 发表于 2024-5-12 19:14
我也想知道方法,楼主研究出来没有

没有搞出来,所以寻求别人帮助。我认为这个应该是有大神做过的,但是没有普及开
页: [1]
查看完整版本: C#反编译时,反混淆不干净,程序出现大量for、switch、goto