了,不废话,开始进入今天的正题。今天要讲的内容是注册异类子控件授予强制HOOK,名字有点抽象,简单的说就是在一个QTP可识别的A类插件窗口对象中存在着B类插件的控件对象,最常见的例子就是在应用程序中内嵌一个Browser对象子控件。说穿了就是内嵌一个浏览器,注意这里的大前提是此应用程序是可以被QTP识别的。那么如果出现我所说的此类情况,那么QTP是绝对不可能去自动识别此应用程序中的浏览器控件对象的,原因很简单,QTP只把这个应用程序看做是一个A类插件的控件对象,因此他根本不会去识别它。那么本章就来讲一下如何通过注册异类子控件的方法来强制注入启动hook,简单来看一下。
图1
如图1 是我在。net中建立的一个非常简单的浏览器程序,我们可以看到此应用程序一共只有三个控件,一个是地址文本框,一个是“go”按钮用于提交地址栏, 还有一个就是Browser对象控件,此浏览器是内嵌在.net程序中的。
那么现在我们打开QTP,加载.Net 和 Web插件之后,这里我们首先来看一下spy识别.net程序中的Go按钮。
图2
来看一下QTP是否能够识别浏览器为page对象。我们再使用spy对Browser控件进行捕获。
图3
如图3,我们发现QTP根本无法识别此Browser对象,直接是抛了个WinObject出来,title还是Internet Explorer_Server,还真是不给面子,明明已经查出是IE了,还不给识别。那既然不给面子,那我们也不用客气,怎么办?直接切入QTP的核心HOOK配置文件,强制注册应用程序。
精彩部分开始,请注意看下去:
1. 进入到QTP的核心目录: 《安装目录》/bin 下找到 mic.ini (此文件是关键文件)
图4
2. 用记事本打开此INI文件。我们都知道INI格式的都是配置文件,可以直接在里面更改我们需要的配置。
3. 找到[ie_hook]部分段落。
图5
4. 在这一栏的最后添加一行应用程序的 文件名+后缀名 = yes后保存。
图6
5. 修改完毕之后,重启QTP,再次重启刚才的应用程序,此时我们再来看一下spy的结果。
图7
如图7,我们可以看到结果很明显,经过我们的努力,QTP当然也相当的给力,成功把Browser对象识别为Page对象。包括对象库也可以任意添加。
图8
好了,整个例子就这样完毕了,回头我们再来看一下mic.ini,除了ie_hook外,还有很多其他的配置可以改,有兴趣的朋友也可试试探索下。忘了提了,其实此方法就是QTP的Register New Browser Control的一个执行过程。但是此方法比它好的地方就很明显了,就是我们可以使用脚本的形式来对ini文件进行配置,而不是需要人工介入去另行注册。对于移植脚本来说是非常有利的。
相关推荐
C#使用EasyHook注入简单案例。C#使用EasyHook注入简单案例。C#使用EasyHook注入简单案例。
火绒注入(内核hook稳定注入)
易语言 远程注入+ HookIAT,需要的朋友来下载把
利用HOOK HOOK的注入技术 在win7里可以实现注入
Hook演示动态生成,全部HOOK事例用hook实现dll注入详解Hook演示动态生成,全部HOOK事例用hook实现dll注入详解
很方便、很小巧的注入工具,(含HOOK注入、远程注入///DELPHI源码)
本压缩包有我自己写的内存注入程序与测试程序,并附有相应的源码..会用MessageBox 去Hook 指定的函数
输入法dll注入器 大小:421 KB 更新日期:2010-4-10 1:00:38 版本:1.0 说明:利用输入法,可给任意进程注入dll,可无视绝大多数程序的防注入保护。
Delphi使用HOOK注入系统线程,调用了一个HOOK控件来完成,示例演示了注入一个网址进程的例子。
dll注入,包含:目标进程,目标dll,注入进程,注入dll 详细的解释了如何注入和如何Hook相关dll的函数,截取数据并篡改 最后返回
这里采用了HOOk钩子注入DLL,不过出现了错误,大佬帮忙查看下哪里出错了。
这是本人用C++ 在VS2019IDE 用控制台写的一个可以在程序启动前注入dll 和Hook系统api的函数。Hook的是knernelbase的CreateProcessInternalW函数,希望对大家有帮助
以dll方式注入到一个远程的线程中去,来实现hook相关api函数的功能
EasyHook使用中的一种特殊情况: 需要实现这样一个功能,截获打开文件(CreateFile)和获取文件大小(GetFileSize)函数,且在打开文件时需要获取文件的大小,即在HookCreateFile中同时使用CreateFile和GetFileSize...
http://blog.csdn.net/v6543210/article/details/44276155 EasyHook远程进程注入并hook api的实的示例。
为此,我将鼠标Hook做成了一个可视化的控件,通过简单的设置几个属性,就可以截获或跟踪其它应用程序的鼠标动作。**********控件介绍:【属性】1.Blocked: Boolean;确定是截获还是跟踪鼠标动作,True对应截获,False...
注入安卓服务或APK neweglSwapBuffers 用法: injector com.target.apk /data/local/tmp/libmy.so injector /system/bin/surfaceflinger /data/local/tmp/libmy64bit.so static EGLBoolean neweglSwapBuffers...
运用DLL注入 以及API HOOK技术开发的钩子程序,记录IE的联网地址
fiddler的编程猫插件,可使用hook,加解密手段