.NET反混淆工具de4dot使用介绍

最近在逛看雪时,发现一个帖子,https://bbs.kanxue.com/thread-274562.htm。里面介绍 了常见语言基础逆向方法合集。关于.net程序逆向这块,介绍了三个工具。

.NET Reflector  https://www.red-gate.com/products/dotnet-development/reflector/ (反编译任何 .NET 代码,即使没有源代码)

dnspy https://github.com/dnSpy/dnSpy (.NET 程序集调试器和资源编辑器)

de4dot (.NET 反混淆和脱壳工具) 目前.NET程序加壳这一块我还没涉及到,所以本文只介绍反混淆相关的功能。

 

在经过初次尝试以后,发现这个工具确实强大,虽然被混淆后的代码不能完成恢复成原来的样子(像变量名这种已经丢失了),但基本不影响阅读源码了。 

de4dot最后更新是在3年前,不继续更新了,有点可惜。技术影响力太大了,有时候也不是什么好事,就挺无奈的。

 

 

 

1、下载源码编译

项目地址:https://github.com/de4dot/de4dot

 

 

这里有两个解决方案文件,一个是基于.NET Core的(de4dot.netcore.sln),一个是基于.NET Framework的(de4dot.netframework.sln)

如果使用.net core版本,需要安装netcoreapp3.1和netcoreapp2.1

如果使用.net framework版本,需要安装net 35和net45

我这里直接编译的.net framework版本,没有编译.net core版本了。

 

注意:

如果选择.net framework版本建议使用Visual Studio 2019及以下版本编译,因为Visual Studio 2022不带.NET Framework 4.5的包,直接编译会报错,还得折腾在Visual Studio 2022下安装NET45的开发包。(同理,新版本vs也没带.net core 2.1)

不过这里还是整理了在Visual Studio 2022下安装NET 45的解决方案,可以参考以下链接:

https://ldqk.xyz/73?t=vl40kuee4phc

https://blog.walterlv.com/post/how-to-support-net45-on-vs2022-or-later.html

具体我也没有去尝试,因为我用另外一台机器上的Visual Studio 2019编译通过了

不用修改任何设置,直接可以编译通过,输出路径为解决方案路径下的Debug目录

 

 

 

2、如何反混淆.NET 程序集

最简单粗暴的方式,

1、将文件拖入到de4dot.exe运行即可

2、命令行下输入

1 de4dot.exe "D:\xxx.exe"

 

运行后文件在程序集的目录下生成一个带-cleaned的新程序集。

也可以通过 -f 和-o 参数,指定输出 路径

-f : 指定.NET 程序集文件

-o : 指定输出 文件

1 de4dot.exe file1 -f "D:\xxx.exe" -o "D:\output\xxx_cleaned.exe"

 

这里我准备了一个程序集测试,我先用某混淆工具进行混淆,使用.NET Reflector反编译显示如下:

 

使用de4dot反混淆后

 

3、反混淆整个文件夹

-r  xxx : 指定输入文件夹,包括子文件夹

-ru : 跳过不支持的混淆工具混淆过的文件

-ro : 指定输出文件夹

1 de4dot -r "D:\input" -ru -ro "D:\output"

 

4、检测混淆工具名称

可以通过 -d 参数查看

1 de4dot.exe -f "D:\a\xxx.exe" -d

输出为:

1 de4dot v3.1.41592.3405
2 
3 Detected Dotfuscator (D:\a\xxx.exe)

 

如果使用 -r ,则输出 整个文件夹里全部文件使用的混淆工具名称

 

5、指定混淆工具名称

de4dot可能检测不准确混淆工具的名称,可以通过 -p 参数指定

1 de4dot file1.dll -p sa

 

de4dot中支持的完整的混淆工具简写可以在不带参数运行时的界面上看到

 

 

6、其它用法

可以在不带参数运行时,看到全部参数及说明,或者通过项目主页上的README.md了解更详细的使用说明。我这里基本已经能满足使用需求,所以也就不再进行深一步的探讨了。

 

posted @ 2023-03-18 11:28  zhaotianff  阅读(13475)  评论(2编辑  收藏  举报