-
2009年06月02日
QTP启动应用程序分析
分类:QTP Firefox插件存放于 %programfiles%\HP\QuickTest Professional\bin\Mozilla\。
先设置好断点:
0:000> bp kernel32!CreateProcessW
照图1.1运行,第3次命中:
0:000> ddu esp+8 l1
*** ERROR: Symbol file could not be found. Defaulted to export symbols for D:\Program Files\HP\QuickTest Professional\bin\WIPackage.dll -
0012ee40 12918b58 ""D:\Program Files\Internet Explorer\IEXPLORE.EXE" -nome"
0:000> du 12918b58
12918b58 ""D:\Program Files\Internet Explo"
12918b98 "rer\IEXPLORE.EXE" -nomerge "http"
12918bd8 "://www.microsoft.com ""
照图1.2运行,第3次命中:
0:000> ddu esp+8 l1
*** ERROR: Symbol file could not be found. Defaulted to export symbols for D:\Program Files\HP\QuickTest Professional\bin\WIPackage.dll -
0012ee40 06eac368 ""D:\Program Files\Mozilla Firefox\firefox.exe" -nomerge"
0:000> du 06eac368
06eac368 ""D:\Program Files\Mozilla Firefo"
06eac3a8 "x\firefox.exe" -nomerge "http://"
06eac3e8 "www.microsoft.com
照图1.3运行,第3次命中:
0:020> ddu esp+8 l1
*** ERROR: Symbol file could not be found. Defaulted to export symbols for D:\Windows\system32\SHELL32.dll -
1309fcd0 07b1c850 ""D:\Windows\System32\notepad.exe" "
0:020> du 07b1c850
07b1c850 ""D:\Windows\System32\notepad.exe"
07b1c890 "" "
为了确定它是以此方式启动,更改为启动MSIE:
0:020> eu 0799d840 "D:\Program Files\Internet Explorer\iexplore.exe"
运行后,启动了MSIE。
下面研究启动的一些细节。
如果修改图2.1中Mercury.WebBrowser的CLSID值,运行图1.1和图1.2会失败,但不影响图1.3的运行。
图2.2是MSIE的COM接口,这个值在Windows Vista及其以上系统中是无法更改的。
1. 如果保持图2.1中Mercury.WebBrowser的CLSID值不变,但改变图2.3中IEXPLORE.EXE默认值,运行图1.1会失败。“App Paths”属于系统级别的设置,在开始菜单运行时若没输入完整路径名Windows将会从这里作为Search Paths匹配。为了验证QTP启动MSIE不是通过COM运行的,把"%programfiles%\Internet Explorer"整个目录复制到其他位置,然后更新图2.3中IEXPLORE.EXE默认值指向新位置,重新运行图1.1,在任务管理器中查看QTP运行的MSIE进程位置,确定了它来自新位置;但这样仍然不足让人信服,我们需要比较COM启动MSIE在当前修改的IEXPLORE.EXE默认值情况下是否正常,运行我先前写的IEAutoDemo,确定此时MSIE进程位于%programfiles%内。
2. 如果保持图2.1中Mercury.WebBrowser的CLSID值不变,但改变图2.4中PathToExe的值,运行图1.2会失败。
以上试验证明了QTP启动应用程序是通过CreateProcess完成的。
图3.1为图1.1和图1.2中启动浏览器网址保存在注册表的位置;图3.2为勾选了那个框后保存在注册表的位置。
【资源】
Firefox Command line arguments
MSIE7 Command-line Parameters、MSIE8:Useful command line arguments
Memory Dump Analysis Anthology, Volume 1、Volume 2
随机文章:
为何无法录制QTP启动前的浏览器 2009年09月03日QTP DotNetFactory使用解析 2009年05月31日HP QTP问答 2007年08月29日软件配置管理系统比较 2007年04月20日Tomcat集群和负载均衡 2006年06月07日
收藏到:Del.icio.us



