易语言HOOKAPI钩子操作代码实例

易语言HOOKAPI钩子操作代码实例

今天边肖给大家分享一个易语言HOOKAPI的钩子操作代码的例子。边肖觉得内容挺好的,现在分享给大家,很有参考价值。有需要的朋友一起看看吧。

DLL代码

。版本2。用于修改虚拟保护DLL命令,integer, kernel32 , VirtualProtect ,修改虚拟保护。参数lpAddress,整数

参数dwSize,整数类型。参数flNewProtect,整数类型。参数lpflOldProtect,整数,地址

的。DLL命令将函数地址作为整数, kernel32 , GetProcAddress ,并返回函数地址。

参数模块句柄,整数类型。参数函数名,文本类型

的。DLL命令接受模块句柄,整数类型,“kernel32”,“GetModuleHandleA”,并获取应用程序或动态链接库的模块句柄。如果执行成功,将返回模块句柄。零表示失败。GetLastError已设置。参数模块名称,文本类型,指定模块名称,通常与模块的文件名相同。比如NOTEPAD.EXE程序的模块文件名叫记事本;用于生成消息框的DLL命令,整数类型, user32 , MessageBoxA ,用于生成消息框窗体。参数窗口句柄,整数。参数lpText,文本类型。参数lpCaption,文本类型。参数wType,整数类型

自定义数据类型

。版本2。数据类型内存状态。成员dwLength,整数类型。成员dwMemoryLoad,整数类型。成员dwTotalPhys,整数类型。成员dwAvailPhys,整数类型。成员dwTotalPageFile,整数类型。成员dwAvailPageFile,整数类型。成员dwTotalVirtual,整数类型。成员dwAvailVirtual,整数类型

HOOKAPI钩子操作代码

。版本2。装配窗总成1。程序集变量挂钩地址,整数。汇编变量原始数据,字节集。程序集变量OldProtect,整数类型。子程序按钮3被点击。

信息框(“这是一个测试本地钩子”,0,“如果被钩住了,这个文字会变!”)。子程序_按钮1_被点击。局部变量值,字节集

钩子地址=取函数地址(取模块句柄(" User32.dll ")," MessageBoxa ")。如果为真(挂钩地址=0)

信息框("无法获取函数地址!", 0, )

Return()

如果真的结束了

修改虚拟保护(挂钩地址,8,64,OldProtect)

原始数据=指向字节集的指针(钩子地址,8)

值={184}

写入内存(值+消息框a+{255,224},挂钩地址,8)。子程序MessageBoxA,整数类型。参数hWnd,整数,窗口句柄。参数lpText,文本类型,提示文本。参数lpCaption,文本类型,信息标题。参数uType,integer,按钮类型。局部变量值,字节集

LP text=LP text+"-LP text-挂接成功!"

LP caption=LP caption+"-LP caption-成功挂钩!"。如果为真(取字节集长度(原始数据)> 0)

写入内存(原始数据、挂钩地址等)

如果真的结束了

建立消息框(hWnd,lpText,lpCaption,uType)

值={184}

写入内存(值+消息框a+{255,224},挂钩地址,8)

返回(0)。子程序_按钮2_被点击。如果为真(取字节集长度(原始数据)> 0)

写入内存(原始数据、挂钩地址等)

如果真的结束了

运行结果:

总结

这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。谢谢你的支持。如果你想了解更多,请查看下面的相关链接。

易语言HOOKAPI钩子操作代码实例