微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在远程内核调试中部分丢失了 DLL

如何解决在远程内核调试中部分丢失了 DLL

我正在使用 IDA + WinDBG 插件进行一些远程内核调试,我想在 DLL 内的某个函数中设置断点,这是我在 IDA 中反汇编它时发现的。我切换到加载目标 DLL 的进程,但不幸的是我发现内存中的 DLL 部分丢失,包括我的函数

证明示例如下。此处 IDA 识别出函数 sub_180001FC8,但在 WinDBG 中,此反汇编在地址 0x7fff3d131fff 处中断。

Screenshot 1 - DLL 在实时内核调试中加载到内存中

Screenshot 2 - 在 IDA 中“静态”打开相同的 DLL

出了什么问题以及如何恢复丢失的零件?

解决方法

我终于找到了答案。 反汇编以EventLogReader中断的区域被调出内存区域。
要“恢复”页面,我使用了以下命令:

??

对于我的情况:

.pagein /f /p <process_address> <page_start_address>

此命令从辅助存储加载内存页面,它们在反汇编中可见。

参考文献:
https://en.wikipedia.org/wiki/Memory_paging
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/-pagein--page-in-memory-

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。