调试器无法正常中断 IE8

这两天分析 cve-2011-0027 的时候,一直遇到一个问题,windbg 或者 od没有办法正常中断 ie8。
什么意思呢?就是我用调试器附加了进程。当进程遇到异常时会弹出下面的窗口:
在这里插入图片描述
这就很奇葩了, 调试器:我都附加你了,为啥你遇到异常不告诉我呢?!!
我也不明白。

找了挺久的原因,终于找到了。

IE8的一个重要特性就是每个Tab 页在独立的进程中运行,我们称之为LCIE (Loosely-Coupled IE)。 所以大家在升级到IE8之后会发现资源管理器里面有两个或者多个iexplore.exe进程。
LCIE 的好处在:
1)某个Tab 页崩溃之后不会影响其他Tab 页和IE主窗口;
2)Tab 进程在Vista 和Windows 7 下面以 Low Integrity Level 运行,这种进程基本上无法对系统进行任何读写操作,可以严格把病毒木马拒之门外。 这也就是大家所谓的"沙盘"技术。 插一句题外话:) 很多人认为"沙盘"技术是Google Chrome 独创的,其实早在3年前的IE7就有这个功能了。
如果想要在IE8中关闭LCIE功能,使IE8以单个进程模式运行(IE8主窗口以及所有的Tab页都在一个iexplore.exe进程), 可以设置注册表:
1)在 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main 键下面添加DWORD值 TabProcGrowth ,并设置TabProcGrowth的数值为0

原因就是上面的那段话。在 Low Integrity Level 模式下,无法对tab进程进行读写操作。那么调试器自然也就无法进行中断
(是这个逻辑吧?毕竟调试器中断也是靠插入指令的)。
关闭 ICLE 后就可以正常调试ie8了。

猜你喜欢

转载自blog.csdn.net/m0_37921080/article/details/83008348