火山视窗类_IATHOOK源码分享
IAT (Import Address Table) HOOK 是一种在 Windows 程序中进行函数钩子的技术。它通过修改程序的导入地址表来实现对目标函数的替换或拦截。在 Windows 运行时,程序需要调用其他模块(DLL)中的函数来完成特定的功能。为了实现这一点,程序会在导入地址表中存储这些函数的地址。IAT 是一个数据结构,存储了程序所依赖的外部模块的函数地址。
IAT HOOK 的基本原理是通过修改导入地址表中的函数地址,将原始函数地址替换为自定义的函数地址。这样,在程序调用原始函数时,实际上会执行被替换的自定义函数,从而实现对目标函数的拦截和修改。
下面是类的源码回复可见
**** Hidden Message *****
调用的源码 建立一个成员变量
<火山程序 类型 = "通常" 版本 = 1 />
变量 MsgBox <类型 = 类_IATHOOK>
MsgBox.开始HOOK ("USER32.DLL", "MessageBoxW", 取静态方法地址 (_MyMsgBoxW))<火山程序 类型 = "通常" 版本 = 1 />
方法 _MyMsgBoxW <静态 类型 = 整数 注释 = "信息框HOOK" 折叠>
参数 所有者窗口的句柄 <类型 = 变整数>
参数 显示的消息 <类型 = 变整数>
参数 对话框标题 <类型 = 变整数>
参数 按钮 <类型 = 整数>
{
调试输出 (所有者窗口的句柄, 显示的消息, 指针到文本 (显示的消息), 对话框标题, 指针到文本 (对话框标题), 按钮)
// 进入我们回调之后 我们就可以为所欲为了
返回 (取程序 ().主窗口对象.MsgBox.调用原函数 (取程序 ().主窗口对象.MsgBox.取原函数地址 (), 整数, 所有者窗口的句柄, 取文本指针 ("我已经HOOK了原来的信息框"), 取文本指针 ("我是标题"), 0))
}
66666666666666666 感谢大佬分享!
感谢分享,很给力!~ 感谢分享 谢谢 分享,棒棒棒!!! 谢谢分享,易语言的没学会看看火山的可以学会不
开源精神必须支持~ 感谢楼主的分享 感谢分享!
页:
[1]
2