hookapi(易语言中HOOKAPI钩子操作的示例分析)

发布时间:2025-12-11 01:34:04 浏览次数:1

DLL代码

.版本2.DLL命令修改虚拟保护,整数型,"kernel32","VirtualProtect",,修改虚拟保护.参数lpAddress,整数型.参数dwSize,整数型.参数flNewProtect,整数型.参数lpflOldProtect,整数型,传址.DLL命令取函数地址,整数型,"kernel32","GetProcAddress",,返回函数地址.参数模块句柄,整数型.参数函数名,文本型.DLL命令取模块句柄,整数型,"kernel32","GetModuleHandleA",,获取一个应用程序或动态链接库的模块句柄如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError.参数模块名,文本型,,指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;.DLL命令建立消息框,整数型,"user32","MessageBoxA",,建立消息框窗体.参数窗口句柄,整数型.参数lpText,文本型.参数lpCaption,文本型.参数wType,整数型

自定义数据类型

.版本2.数据类型MEMORYSTATUS.成员dwLength,整数型.成员dwMemoryLoad,整数型.成员dwTotalPhys,整数型.成员dwAvailPhys,整数型.成员dwTotalPageFile,整数型.成员dwAvailPageFile,整数型.成员dwTotalVirtual,整数型.成员dwAvailVirtual,整数型

HOOKAPI钩子操作代码

.版本2.程序集窗口程序集1.程序集变量钩子地址,整数型.程序集变量原始数据,字节集.程序集变量OldProtect,整数型.子程序_按钮3_被单击信息框(“这是一个测试本地HOOK”,0,“如果挂钩了,本文本就会变化!”).子程序_按钮1_被单击.局部变量值,字节集钩子地址=取函数地址(取模块句柄(“User32.dll”),“MessageBoxA”).如果真(钩子地址=0)信息框(“无法获取函数地址!!!”,0,)返回().如果真结束修改虚拟保护(钩子地址,8,64,OldProtect)原始数据=指针到字节集(钩子地址,8)值={184}写到内存(值+到字节集(&MessageBoxA)+{255,224},钩子地址,8).子程序MessageBoxA,整数型.参数hWnd,整数型,,窗口句柄.参数lpText,文本型,,提示文本.参数lpCaption,文本型,,信息标题.参数uType,整数型,,按钮类型.局部变量值,字节集lpText=lpText+“----lpText-----挂钩成功!”lpCaption=lpCaption+“-----lpCaption----挂钩成功!”.如果真(取字节集长度(原始数据)>0)写到内存(原始数据,钩子地址,).如果真结束建立消息框(hWnd,lpText,lpCaption,uType)值={184}写到内存(值+到字节集(&MessageBoxA)+{255,224},钩子地址,8)返回(0).子程序_按钮2_被单击.如果真(取字节集长度(原始数据)>0)写到内存(原始数据,钩子地址,).如果真结束

运行结果:

hookapi
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477