【问题标题】:Breakpoint on entry point of PE is failedPE入口点断点失败
【发布时间】:2018-01-14 17:41:39
【问题描述】:

我正在尝试使用 WinDbg 获取我的应用程序的活动日志。目前我在 Win10 Pro x64 上。我的应用程序的入口点是 0x10004D7EC。启动 WinDbg 后,我按 Ctrl+E 选择我的应用程序。我输入下一条命令

    bp 10004D7EC

然后按 F5,但 WinDbg 说 ERROR_PARTIAL_COPY 已发生 (0x12B),因此加载 logexts 似乎是个坏主意,因为无法保证信息是正确的。那么,如何解决这个问题,或者我做错了什么?

【问题讨论】:

  • 您可以使用伪寄存器@$exentry type g @$exentry 并按回车键或输入bp @$exentry 并按f5 来代替所有脚本剪贴板和复制粘贴
  • 是的,我读过关于 $exentry 的文章,但它对我不起作用,这就是我使用下面的脚本的原因。感谢您的回复!

标签: windows debugging windbg


【解决方案1】:

我相信您收到错误是因为您将断点置于无效的内存位置。检查windbg 中的内存/反汇编窗口,这个内存位置有什么——你可能在那里什么都找不到。

我猜10004D7EC 是您在磁盘上的入口点的地址 - 这可能与运行时的入口点地址不同。您可以使用以下命令搜索入口点:x <your module name>!*<your entry point name>*(即x myApp!*main*

【讨论】:

  • 非常感谢您的回复!目前我不能投票,但我通过心灵感应给你+10。关于入口点你是对的,但我用下一个方法解决了问题:启动 WinDbg,按 Ctrl+E,选择 myapp。然后输入.shell -ci "!dh myapp -f" for /f "token=1" %i in ('findstr /irc:"entry"') do @echo %i | clip 这一项将入口点的地址复制到剪贴板。现在我可以设置断点bp myapp+ + Ctrl+V 并回车。这很好用。当然,它不适用于打包的 PE 或手动编辑入口点的 PE。
猜你喜欢
  • 1970-01-01
  • 2015-10-21
  • 2017-07-28
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 2013-03-09
  • 2011-10-22
相关资源
最近更新 更多