如何使用 WinDbg 对程序加载进行故障排除?

逆向工程 视窗 聚乙烯 风袋 内核模式
2021-06-15 09:40:34

我有一个无法加载的顽固 PE 文件。PE 标头似乎是完整的,文件甚至在几个 PE 工具中解析得很好。当我尝试启动它时收到“无效的 Win32 应用程序”错误。事实上,加载程序甚至从未启动,因为在 WinDbg 中没有要为进程显示的加载程序标志。从 Explorer.exe 的切换和内核内部的负载之间出现问题。当 Explorer.exe 尝试对文件进行CreateFileMapping时,ProcMon 显示“文件被仅读取器锁定”状态

因此,我在 WinDbg 上进入了内核模式调试。但是,我不确定如何配置调试器以正确解决此问题。当我按“g”然后打开文件时,它会正常崩溃并且我没有登录 WinDbg。如果我按“Break”,那么我就暂停了。我需要在双击文件然后通过内核代码时以某种方式中断。

1个回答

我建议您在NtCreateSection函数上放置一个断点,该函数负责在使用SEC_IMAGEflag调用时验证和映射 PE 图像希望您可以通过单步执行来追踪失败的地方。