本课视频我们通过SetWindowsHookExA线程键盘钩子把辅助DLL注入到游戏中,集成了系统进程的加载,自动获取注入进程ID,卸载注入,选择或拖放注入的DLL。课程的录制分了两课程,发布仅此网页。
教程辅助截图
获取系统进程
.版本 2 .支持库 eAPI .子程序 获取系统进程 .局部变量 进程列表, 进程信息, , "0" .局部变量 进程, 文本型 .局部变量 i 进程列表 = 取系统进程列表 () .计次循环首 (取数组成员数 (进程列表), i) 进程 = 进程列表 [i].进程名称 组合框1.加入项目 (进程, ) .计次循环尾 ()
消息钩子注入主程序
.版本 2 .子程序 消息钩子注入, 逻辑型 .参数 进程ID, 整数型 .参数 注入DLL, 文本型 .参数 接口函数名称, 文本型 .局部变量 hMod, 整数型 .局部变量 procAdress, 整数型 .局部变量 handle, 整数型 .局部变量 dwThreadID, 整数型 ' 1、 获取HOOKDLL的进程空间地址 hMod = LoadLibraryA (注入DLL) .如果真 (hMod = 0) 信息框 (“载入DLL失败!”, 0, , ) 返回 (假) .如果真结束 ' 2、获取HOOKDLL接口的地址 procAdress = GetProcAddress (GetModuleHandleA (注入DLL), 接口函数名称) .如果真 (procAdress = 0) 信息框 (“获取接口失败!”, 0, , ) 返回 (假) .如果真结束 ' 3、获取要注入的进程的句柄 handle = 进程_ID取窗口句柄 (进程ID, , , , ) .如果真 (handle = 0) 信息框 (“获取窗口进程失败”, 0, , ) FreeLibrary (hMod) 返回 (假) .如果真结束 ' 4、获取要注入的进程的主线程ID dwThreadID = 窗口_句柄取线程ID (handle) .如果真 (dwThreadID = 0) 信息框 (“获取目标进程的线程ID失败”, 0, , ) FreeLibrary (hMod) 返回 (假) .如果真结束 ' 5、开始安装键盘线程钩子 hhook = SetWindowsHookExA (2, 整数_到子程序指针 (procAdress), hMod, dwThreadID) .如果真 (hhook = 0) 信息框 (“安装钩子失败!”, 0, , ) 返回 (假) .如果真结束 返回 (真)
整数_到子程序指针
.版本 2 .子程序 整数_到子程序指针, 子程序指针 .参数 int, 整数型 置入代码 ({ 139, 69, 8, 137, 236, 93, 194, 4, 0 }) ' mov eax,[ebp+8] 把第一参数存入 EAX 用作返回 ' mov esp,ebp 平衡栈 ' pop ebp 从栈里取出 ' ret 4 返回 (整数_到子程序指针 (0))
注入按钮
.版本 2 .子程序 _按钮1_被单击, , , HOOK 消息钩子注入 (到数值 (编辑框1.内容), 编辑框2.内容, “hook”)
卸载注入
.版本 2 .子程序 _按钮2_被单击 UnhookWindowsHookEx (hhook)
教程获取下载:
百度网盘链接:https://pan.baidu.com/s/158ikKVjIwaoF4438MG4fhA
提取码:加QQ群:521068947 群文件下载
资源教程交流①群:521068947
511遇见QQ: 272586593