首页
社区
课程
招聘
[原创] windbg---获取powershell反混淆脚本(可找到相关windows api的情况)
发表于: 2020-11-19 10:56 3797

[原创] windbg---获取powershell反混淆脚本(可找到相关windows api的情况)

2020-11-19 10:56
3797

该文章内容可忽略,这个方法更好用: https://bbs.pediy.com/thread-261262.htm

使用 windbg 配合 SOS 调试扩展可以得到相对比较少混淆的 powershell 脚本,如果是多层混淆的脚本,可以节省好几层处理

原理:iex 执行时有一个参数是 powershell 脚本内容,可以直接拿出来

SOS.dll 是一个辅助调试扩展,随 .NET Framework 安装,我的位置:

分别是 64 位 和 32 位

以 windbg 64位举例,我的 windbg 路径是:D:\Windows Kits\10\Debuggers\x64
需要把 SOS.dll 放在:D:\Windows Kits\10\Debuggers\x64\winext

另外需要保证联网,这样才能下载 pdb 文件,缺少一些 pdb 文件会出错

启动脚本有 2 种方式:

第 1 种可以在加载可执行文件后下断点,第 2 种方式需要在执行脚本前就下断点

需要先找到脚本明显的系统 api 调用,比如在命令行有输出,那就可以在 Kernel32!WriteConsoleA Kernel32!WriteConsoleW 下断点

然后 g 运行,在断下后,加载 sos:

接着执行一条命令,就能获取到混淆比较少的代码:

命令也可以缩写成 !dso

往上翻,可以看到很清晰的代码,越往上翻越整齐,那基本就是完全解混淆的状态了

如果想看 SOS 所有可用的命令,可以用这个命令 !sos.help

https://docs.microsoft.com/zh-cn/dotnet/framework/tools/sos-dll-sos-debugging-extension

感谢yz

 
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll
C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2022-5-14 23:34 被qux编辑 ,原因: 有更好的方法
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//