Function 如何在mshtml和MS IE 11上正确插入windbg断点?
我正在深入研究MS Internet explorer 11和mshtml.dll,让我们快速明了:我正在调查windows 8.1上“mshtml.dll”的“CTitleElement”类,我想在“CTitleElement”类中的一些函数上设置断点,看看这个类中发生了什么(例如:创建标题元素、获取标题、设置标题、获取标题长度等) 我使用windbg连接IE进程,下面是我设置断点的步骤:Function 如何在mshtml和MS IE 11上正确插入windbg断点?,function,reverse-engineering,windbg,internet-explorer-11,Function,Reverse Engineering,Windbg,Internet Explorer 11,我正在深入研究MS Internet explorer 11和mshtml.dll,让我们快速明了:我正在调查windows 8.1上“mshtml.dll”的“CTitleElement”类,我想在“CTitleElement”类中的一些函数上设置断点,看看这个类中发生了什么(例如:创建标题元素、获取标题、设置标题、获取标题长度等) 我使用windbg连接IE进程,下面是我设置断点的步骤: 0:013> bp MSHTML!CTitleElement::GetTitle 0:013>
0:013> bp MSHTML!CTitleElement::GetTitle
0:013> bp MSHTML!CTitleElement::SetTitle
0:013> bp MSHTML!CTitleElement::s_StringTable
0:013> bp MSHTML!CTitleElement::CreateElement
0:013> bp MSHTML!CTitleElement::TitleLength
然后使用“g”命令运行IE并打开以下简单html文件:
<html>
<title>Hello There!</title>
</html>
你好!
但不幸的是,我没有得到理想的结果,调试器没有命中断点。
正如我所注意到的,这是一个不稳定的情况,因为:“有时它会被击中&有时不会!”
我想到了ASLR和我刚刚设置的断点类型(“bp”),通过安装EMET禁用了ASLR并禁用了所有内存保护,但我仍然无法以可靠的方式获得结果
有什么解决这个问题的建议吗
尊敬。我认为ASLR在这里没有任何事情可做。您正在使用函数名而不是地址设置断点。地址可以更改,但函数名仍然保持不变:)
- 启动windbg
- 从文件菜单中选择“打开可执行文件”或Ctrl+E
- 给出iexplorer的路径
- 确保选中了“调试子进程”选项
我只是在猜测发生了什么事。也许当你第一次在IE中加载页面时,它会完全呈现它。下一次,页面可能不会完全呈现,因为使用了上一次运行的结果,并且执行了未命中断点的其他代码路径
您是否尝试强制刷新Ctrl+F5?您确定在正确的过程中设置了断点?IE因为每个选项卡和可能不同的HTML框架生成子iexplore.exe进程而臭名昭著,因此您可能会在每个选项卡上看到多个进程。