了,不废话,开始进入今天的正题。今天要讲的内容是注册异类子控件授予强制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库来实现简单的程序注入。 首先,让我们了解一下EasyHook的基本概念。EasyHook是一个跨平台的库,它提供了创建本地和远程钩子的能力。钩子是一种技术,可以让开发者在特定事件...
在远程进程注入中,EasyHook可以帮助我们将自定义的DLL注入到目标进程中,从而实现对目标进程内部API的Hook。 首先,我们需要了解远程进程注入的基本流程: 1. 获取目标进程信息:使用`System.Diagnostics.Process`...
【标题】通用注入工具无驱版(HOOK注入、远程注入)(DELPHI源码)是一款基于DELPHI编程语言开发的轻量级注入工具,它提供了两种主要的注入技术:HOOK注入和远程注入。该工具的无驱动版本意味着它可以在不安装额外驱动的...
标题 "DLL注入HOOK进程按钮点击示例(delphi)" 涉及的是Windows编程中的高级技术,主要包括DLL动态链接库、注入技术和HOOK技术。在Windows操作系统中,DLL是一种可执行代码的模块,它可以被多个程序共享,节省内存...
**标题:** HOOK注入技术的使用 **描述:** HOOK注入技术是一种在Windows操作系统中广泛使用的编程技巧,特别是在Win7环境下。它允许开发者通过安装HOOK来监控或改变其他应用程序的特定行为,通常用于调试、系统监控...
远程注入和HookIAT是两种在编程中常用于系统监控、调试或篡改程序行为的技术。在易语言环境中,这两种技术结合使用可以实现强大的功能。 首先,我们来理解"远程注入"。远程注入是一种将代码植入到另一个正在运行的...
本压缩包有我自己写的内存注入程序与测试程序,并附有相应的源码..会用MessageBox 去Hook 指定的函数
火绒注入(内核hook稳定注入)
【鼠标Hook控件】是一种在编程中用于捕获和处理鼠标事件的技术,它允许程序员拦截并处理系统的鼠标输入,而不必直接与特定的窗口或控件关联。在C++、C++Builder和Delphi这些面向对象的编程语言中,我们可以创建...
标题中的“输入法dll注入器hook类”涉及的是Windows系统编程中的高级技术,主要包括DLL注入和Hook技术。DLL(Dynamic Link Library)注入是将一个动态链接库加载到目标进程中,以便在目标进程中运行自定义代码,而...
本文将详细解析Hook的概念、工作原理,以及如何通过动态生成DLL实现DLL注入,结合"Hook演示"的实例进行深入探讨。 1. Hook概念: Hook是一种编程技术,它允许开发者在特定的函数或事件被调用前或调用后插入自定义...
DLL注入和Hook技术是Windows操作系统中常见的编程技巧,主要用于系统调试、性能监控、安全分析以及恶意软件活动。本文将深入探讨这两个概念,以及如何在实践中实施它们。 首先,我们需要了解DLL(动态链接库)。DLL...
Hook钩子注入DLL是Hook技术的一种应用,通过动态链接库(DLL)来实现对目标进程的钩子设置。这种方法常用于调试、监控、日志记录或者修改应用程序的行为。 错误描述表明在尝试使用Hook钩子注入DLL时遇到了问题,...
Hook LoadLibrary可以让我们在某个DLL被加载时执行自定义代码,这在插件开发、模块注入、恶意软件分析等领域非常有用。通过Hook LoadLibrary,我们可以跟踪哪些DLL被加载,或者在加载特定DLL时替换其内容。 实现...
标题中的“Ex_HOOK.rar_API HOOK IE_dll ie_dll 注入 api_hook ie_hook注入”提到了几个关键概念:API Hook、DLL注入以及它们在IE浏览器中的应用。这些是Windows编程和系统监控领域的核心技术。 API Hook(API钩子...
在IT领域,"hook 浏览器控件收发包"是一个涉及到系统级编程和浏览器交互的技术主题。这里,我们主要关注的是如何使用hook技术来监控和控制MFC(Microsoft Foundation Classes)中的浏览器控件的网络通信过程。MFC是...
标题中的“向进程注入托管程序集(Hook ReadProcessMemory Api)(C#源码)”涉及到的是在Windows操作系统中,通过编程手段动态地将托管代码(即.NET Framework中的C#代码编译后的程序集)注入到其他正在运行的进程中,...
在这个压缩包文件中,我们很可能会找到一个关于DLL注入的简单示例源码,以及相关的HOOK技术。 DLL注入的基本流程包括以下步骤: 1. **创建DLL**:首先,你需要编写一个动态链接库(DLL),其中包含你想要在目标...
压缩包内的“codesc.net”可能是一个包含源代码的文件,你可以通过查看这个文件了解具体实现细节,包括如何创建和管理Hook控件,以及如何实现线程注入和DLL注入的步骤。 总的来说,理解和掌握Hook注入系统线程的...