-
-
[原创] 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
赞赏
- [原创]Ghidra和x64dbg的地址配合 1936
- [求助]样本定位C2和加解密逻辑 2489
- [原创]逆向---计算实际地址 1479
- [求助]关于注册表项关闭windows的ASLR功能 2430
- ghidra---配置获取加载pdb文件 759