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

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

2020-11-19 10:56
3937

该文章内容可忽略,这个方法更好用: 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

dc8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3P5X3S2Q4x3X3c8U0L8W2)9J5c8X3c8G2N6r3&6W2N6q4)9J5c8X3k6J5j5h3#2W2N6$3!0J5K9#2)9J5c8Y4c8G2L8$3I4K6i4K6u0r3M7$3!0K6i4K6u0V1k6r3I4D9i4K6u0V1M7$3!0K6i4K6u0V1k6r3g2T1N6h3N6Y4K9h3&6Y4i4K6u0V1k6i4S2@1k6h3&6K6K9h3!0F1

感谢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

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

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