Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何在mshtml和MS IE 11上正确插入windbg断点?_Function_Reverse Engineering_Windbg_Internet Explorer 11 - Fatal编程技术网

Function 如何在mshtml和MS IE 11上正确插入windbg断点?

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>

我正在深入研究MS Internet explorer 11和mshtml.dll,让我们快速明了:我正在调查windows 8.1上“mshtml.dll”的“CTitleElement”类,我想在“CTitleElement”类中的一些函数上设置断点,看看这个类中发生了什么(例如:创建标题元素、获取标题、设置标题、获取标题长度等)

我使用windbg连接IE进程,下面是我设置断点的步骤:

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在这里没有任何事情可做。您正在使用函数名而不是地址设置断点。地址可以更改,但函数名仍然保持不变:)

  • 确保您不会因为IE创建的子进程而错过(如Sesa所述)

    • 启动windbg
    • 从文件菜单中选择“打开可执行文件”或Ctrl+E
    • 给出iexplorer的路径
    • 确保选中了“调试子进程”选项
  • 确保已正确加载符号

  • 为了确保断点在调试会话中保持不变,请使用“bu”而不是bp。 检查每次使用“bl”时是否显示所有断点


  • 我只是在猜测发生了什么事。也许当你第一次在IE中加载页面时,它会完全呈现它。下一次,页面可能不会完全呈现,因为使用了上一次运行的结果,并且执行了未命中断点的其他代码路径


    您是否尝试强制刷新Ctrl+F5?

    您确定在正确的过程中设置了断点?IE因为每个选项卡和可能不同的HTML框架生成子iexplore.exe进程而臭名昭著,因此您可能会在每个选项卡上看到多个进程。