文件名称:易语言HOOK征途实现拦截系统公告
文件大小:1.33MB
文件格式:RAR
更新时间:2015-01-19 05:55:58
hook 征途
HOOK征途实现拦截系统公告 语音视频下载地址 http://115.com/file/cly4tyga .版本 2 .子程序 _窗口1_创建完毕 .局部变量 tmp, 整数型 窗口1.标题 = 取执行文件名 () Process = GetCurrentProcessId () ' 004A31D7 E8 F4D30700 CALL zhengtu.005205D0 游戏公告显示的call地址 原始数据 = 读整型内存 (Process, 4862424) ' 读取E8 后面的call地址机器码 E8占一个字节 所以读取我们加上1(就是004A31D7+1) 也就是 005205D0 这个机器码 hook函数地址 = 到整数 (&hook;) ' 取出hook这个子程序的地址 tmp = hook函数地址 + 4 ' hook子程序地址 + 4 ' '''''''''''''''''''''''''''''''''解释下为什么加4 ' '''''这个是hook子程序原型 ' 008715D7 >/$ 56 PUSH ESI hook 子程序地址 ' 008715D8 |. 57 PUSH EDI ' 008715D9 |. 53 PUSH EBX ' 008715DA |. E8 09FBFFFF CALL ye_cat.008710E8 +4 来到 E8(008715D7+4),把E8不算进去 这里读取到这个call的机器码之后 下面换算出这个call地址(008710E8) ' 008715DF |. 5B POP EBX ' 008715E0 |. 5F POP EDI ' 008715E1 |. 5E POP ESI ' 008715E2 \. C3 RETN ' '''''''''''''''''''''''''''''''''''''''''''''''''call 008710e8 内部代码 也就是hook这个子程序的核心 ' 008710E8 /$ 55 PUSH EBP 'hook这个call的开始,系统自动分配了堆栈 ' 008710E9 |. 8BEC MOV EBP,ESP ' 008710EB |. 81EC 08000000 SUB ESP,8 ' 008710F1 |. C745 FC 00000>MOV DWORD PTR SS:[EBP-4],0 ' 008710F8 |. 53 PUSH EBX '这个是我们用内联写的(我们要让游戏里面公告的call直接call我们这个地址(call 008710F8)) 游戏里面原来call内部代码就是这样子的(游戏call内部代码我也贴出来了 在底下) ' 008710F9 |. 8B9C24 080000>MOV EBX,DWORD PTR SS:[ESP+8] '存放公告内容的地址 ' 00871100 |. 55 PUSH EBP ' 00871101 |. 56 PUSH ESI ' 00871102 |. 57 PUSH EDI ' 00871103 |. 899D FCFFFFFF MOV DWORD PTR SS:[EBP-4],EBX ‘传给我们申请的局部变量([ebp-4]表示第一个局部变量) Str ' 00871109 |. 68 808A8D00 PUSH ye_cat.008D8A80 ; ASCII "\r\n" ' 0087110E |. FF75 FC PUSH DWORD PTR SS:[EBP-4] ' 00871111 |. B9 02000000 MOV ECX,2 ' 00871116 |. E8 71FFFFFF CALL ye_cat.0087108C ' 0087111B |. 83C4 08 ADD ESP,8 ' 0087111E |. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX ' 00871121 |. 68 04000080 PUSH 80000004 ' 00871126 |. 6A 00 PUSH 0 ' 00871128 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ' 0087112B |. 85C0 TEST EAX,EAX ' 0087112D |. 75 05 JNZ SHORT ye_cat.00871134 ' 0087112F |. B8 838A8D00 MOV EAX,ye_cat.008D8A83 ' 00871134 |> 50 PUSH EAX ' 00871135 |. 68 05000100 PUSH 10005 ' 0087113A |. 68 09000116 PUSH 16010009 ' 0087113F |. 68 06000152 PUSH 52010006 ' 00871144 |. 68 02000000 PUSH 2 ' 00871149 |. BB D0198700 MOV EBX,ye_cat.008719D0 ' 0087114E |. E8 DF040000 CALL ye_cat.00871632 ' 00871153 |. 83C4 1C ADD ESP,1C ' 00871156 |. 8B5D F8 MOV EBX,DWORD PTR SS:[EBP-8] ' 00871159 |. 85DB TEST EBX,EBX ' 0087115B |. 74 09 JE SHORT ye_cat.00871166 ' 0087115D |. 53 PUSH EBX ' 0087115E |. E8 D5040000 CALL ye_cat.00871638 ' 00871163 |. 83C4 04 ADD ESP,4 ' 00871166 |> 5F POP EDI ' 00871167 |. 5E POP ESI ' 00871168 |. 5D POP EBP ' 00871169 |. 5B POP EBX ' 0087116A \. C2 1400 RETN 14 //////////////////////////////////////////////////////////////// call目的地地址 = 读整型内存 (Process, tmp) call目的地地址 = call目的地地址 + tmp + 5 + 15 ' 取得hook子程序里面 push ebx 的内存地址 为了不出错所以和游戏里面一样 不能从hook这个子程序头部开始调用 所以我加上相应的偏移(18)得到 push ebx的地址 ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' '''''''''游戏原来call的原型 ' 005205D0 /$ 53 PUSH EBX ' 005205D1 |. 8B5C24 08 MOV EBX,DWORD PTR SS:[ESP+8] ' 005205D5 |. 55 PUSH EBP ' 005205D6 |. 56 PUSH ESI ' 005205D7 |. 8B7424 14 MOV ESI,DWORD PTR SS:[ESP+14] ' 005205DB |. 83FE 03 CMP ESI,3 ' 005205DE |. 57 PUSH EDI ' 005205DF |. 8B7C24 1C MOV EDI,DWORD PTR SS:[ESP+1C] ' 005205E3 |. 8BE9 MOV EBP,ECX ' 005205E5 |. 74 05 JE SHORT zhengtu.005205EC ' 005205E7 |. 83FE 04 CMP ESI,4 ' 005205EA |. 75 11 JNZ SHORT zhengtu.005205FD ' 005205EC |> 8B0D 98B3CA00 MOV ECX,DWORD PTR DS:[CAB398] ' 005205F2 |. 85C9 TEST ECX,ECX ' 005205F4 |. 74 07 JE SHORT zhengtu.005205FD ' 005205F6 |. 57 PUSH EDI ' 005205F7 |. 53 PUSH EBX ' 005205F8 |. E8 43092000 CALL zhengtu.00720F40 ' 005205FD |> 8B4424 24 MOV EAX,DWORD PTR SS:[ESP+24] ' 00520601 |. 8B4C24 20 MOV ECX,DWORD PTR SS:[ESP+20] ' 00520605 |. 50 PUSH EAX ' 00520606 |. 51 PUSH ECX ' 00520607 |. 57 PUSH EDI ' 00520608 |. 56 PUSH ESI ' 00520609 |. 53 PUSH EBX ' 0052060A |. 8BCD MOV ECX,EBP ' 0052060C |. E8 CFF6FFFF CALL zhengtu.0051FCE0 ' 00520611 |. 5F POP EDI ' 00520612 |. 5E POP ESI ' 00520613 |. 5D POP EBP ' 00520614 |. 5B POP EBX ' 00520615 \. C2 1400 RETN 14 /这个call 5个参数
【文件预览】:
hook征途系统公告
----hook征途系统公告()
--------ye_cat.dll(648KB)
--------效果图.png(206KB)
--------hook.e(15KB)
--------原始.png(8KB)
--------说明.txt(36B)
--------注入器(打开注入器 到游戏窗口按下F1获取游戏窗口句柄,再点击按钮即可注入 关闭注入器dll自动卸载).exe(760KB)
--------yecate.dll(116KB)
----ye_cat.dll(648KB)
----hook.e(15KB)
----说明.txt(36B)
----注入器(打开注入器 到游戏窗口按下F1获取游戏窗口句柄,再点击按钮即可注入 关闭注入器dll自动卸载).exe(760KB)
----yecate.dll(116KB)