易语言HOOK注册表源码
系统结构:GetMsgProc,new_RegSetValueEx,HOOKAPI,ReadApi,api_CallNextHookEx,取程序或DLL句柄,取DLL函数地址,返回虚拟信息,修改虚拟保护,写内存字节,取当前进程伪句柄,api_RegSetValueEx,RegSetValueEx,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ GetMsgProc
| |
| |------ new_RegSetValueEx
| |
| |------ HOOKAPI
| |
| |------ ReadApi
| |
| |
======调用的Dll
| |
| |---[dll]------ api_CallNextHookEx
| |
| |---[dll]------ 取程序或DLL句柄
| |
| |---[dll]------ 取DLL函数地址
| |
| |---[dll]------ 返回虚拟信息
| |
| |---[dll]------ 修改虚拟保护
| |
| |---[dll]------ 写内存字节
| |
| |---[dll]------ 取当前进程伪句柄
| |
| |---[dll]------ api_RegSetValueEx
| |
| |---[dll]------ RegSetValueEx
调用的DLL命令:
.DLL命令 api_CallNextHookEx, 整数型, , "CallNextHookEx"
.参数 hhook, 整数型
.参数 nCode, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 取程序或DLL句柄, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 模块名, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 取DLL函数地址, 整数型, "kernel32", "GetProcAddress", , 返回函数地址 成功返回DLL库模块内函数地址
.参数 DLL句柄, 整数型, , DLL库模块的句柄,可以调用 LoadLibrary 函数返回。
.参数 DLL库模块内函数名, 文本型, , DLL库模块内函数名
.DLL命令 返回虚拟信息, 整数型, "kernel32", "VirtualQueryEx"
.参数 hProcess, 整数型, , 对象的进程句柄,可以使用函数 OpenProcess() 返回。
.参数 lpAddress, 整数型, , 对象指针地址
.参数 lpBuffer, 虚拟信息, , 返回的虚拟信息
.参数 dwLength, 整数型, , 信息长度,已知 28
.DLL命令 修改虚拟保护, 逻辑型, "kernel32", "VirtualProtectEx"
.参数 hProcess, 整数型, , 对象的进程句柄,可以使用函数 OpenProcess() 返回。
.参数 lpAddress, 整数型, , 虚拟信息.BaseAddress
.参数 dwSize, 整数型, , 虚拟信息.RegionSize
.参数 flNewProtect, 整数型, , 修改类型,#PAGE_EXECUTE_READWRITE 64为可读写模式
.参数 lpflOldProtect, 整数型, 传址, 虚拟信息.Protect
.DLL命令 写内存字节, 逻辑型, "kernel32", "WriteProcessMemory", , 在指定进程中写内存
.参数 hProcess, 整数型, , 对象的进程句柄,可以使用函数 OpenProcess() 返回。
.参数 起始写入地址, 整数型, , 起始写入地址
.参数 要写入的内容, 字节集, , 本参数的类型也能是“字节”型。
.参数 写入长度, 整数型, , 写入的数据长度。
.参数 实际写入长度, 整数型, , 实际写入的数据长度,为0则忽略。
.DLL命令 取当前进程伪句柄, 整数型, "kernel32", "GetCurrentProcess"
.DLL命令 api_RegSetValueEx, 整数型, "advapi32.dll", "RegSetValueExA"
.参数 hKey, 整数型
.参数 lpValueName, 文本型
.参数 Reserved, 整数型
.参数 dwType, 整数型
.参数 lpData, 文本型, 传址
.参数 cbData, 整数型
.DLL命令 RegSetValueEx, 整数型, "advapi32.dll", "RegSetValueExA"
.参数 hKey, 整数型
.参数 lpValueName, 文本型
.参数 Reserved, 整数型
.参数 dwType, 整数型
.参数 lpData, 文本型, 传址
.参数 cbData, 整数型
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。