| 关键词: nbsp 004058 程序 PUSH 类名 0095 DWORD 代码 EAX EBX |
注入類程序一般是用在外掛上...注入遊戲 跟遊戲混為一體 這大大加大了破解的難度, 不光要搞定程序的anti 還要搞定遊戲的保護. 沒有遊戲還需要下載遊戲...我是深惡痛絕的..我家宽带才1M..那么只能想方设法另辟蹊径,想要另辟蹊径又要先了解一下注入类程序的实现思路 注入类程序一般是取游戏的窗口标题 类名 进程名 常用的只有窗口标题跟类名 既然知道了程序是取什么来判断是否注入的 那么就自然的出现一个方法:伪造 编写一个空壳程序 窗口标题 类名 文件名 改为程序需要判断的条件. 我没有游戏 自然不能知道这些. 就算有游戏, 拿TX的游戏举列 不过保护是取不到标题跟类名的. 继续想办法 从程序入手如何? 可以试验一下 就算一般用VMP加密的程序 也不会加密这些对验证来说无关紧要的信息 那我就能轻易的知道 程序是在取什么判断了 代码如下: 0040451E 8965 F4 MOV DWORD PTR SS:[EBP-C],ESP00404521 68 BF314000 PUSH 004031BF ; 成吉思汗 1.5.75.9300404526 68 D2314000 PUSH 004031D2 ; ChengJiSiHan WndClass0040452B FF75 FC PUSH DWORD PTR SS:[EBP-4]0040452E 68 00000000 PUSH 000404533 B8 06000000 MOV EAX,600404538 E8 861C0000 CALL 004061C3 很明显 第一个是标题 第二个是类名 知道了程序判断条件 就能开始伪造了 如下图 程序被欺骗了 注入了伪造的空壳程序 这样 既不用去过游戏的保护 也不用下游戏 就能直接调试了. 继续 一次讲完 调用外挂的DLL 干你自己需要干的事 代码如下: 0040588B 68 00000000 PUSH 000405890 BB 04010000 MOV EBX,10400405895 E8 2F090000 CALL dump_.004061C90040589A 83C4 04 ADD ESP,40040589D 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX004058A0 68 72324000 PUSH dump_.00403272 ; \CJSHWL.dll004058A5 FF75 F8 PUSH DWORD PTR SS:[EBP-8]004058A8 B9 02000000 MOV ECX,2004058AD E8 CAFDFFFF CALL dump_.0040567C004058B2 83C4 08 ADD ESP,8004058B5 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX004058B8 8B5D F8 MOV EBX,DWORD PTR SS:[EBP-8]004058BB 85DB TEST EBX,EBX004058BD 74 09 JE SHORT dump_.004058C8004058BF 53 PUSH EBX004058C0 E8 EC080000 CALL dump_.004061B1004058C5 83C4 04 ADD ESP,4004058C8 B8 7E324000 MOV EAX,dump_.0040327E ; 初始函数004058CD 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX004058D0 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]004058D3 50 PUSH EAX004058D4 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]004058D7 50 PUSH EAX004058D8 FF75 FC PUSH DWORD PTR SS:[EBP-4]004058DB E8 E9000000 CALL dump_.004059C9004058E0 8945 EC MOV DWORD PTR SS:[EBP-14],EAX 从以上代码就能看出 调用名为 CJSHWL.dll这个DLL 下面的初始函数就是DLL接口了 而他的这个..也只能说接口..太公开化了 用过E写注入的就知道 他是用的是什么模块了... 完全可以随便调用 在看看Delphi写出来的代码 代码如下: 0095E421 > \68 70F29500 PUSH winmm.0095F270 ; /niliu.dll0095E426 . E8 8580FBFF CALL <JMP.&kernel32.LoadLibraryA> ; \LoadLibraryA0095E42B . 8BD8 MOV EBX,EAX0095E42D . 85DB TEST EBX,EBX0095E42F . 76 0F JBE SHORT winmm.0095E4400095E431 . 68 7CF29500 PUSH winmm.0095F27C ; /tales0095E436 . 53 PUSH EBX ; |hModule0095E437 . E8 DC7FFBFF CALL <JMP.&kernel32.GetProcAddress> ; \GetProcAddress0095E43C . 8BD8 MOV EBX,EAX0095E43E . FFD3 CALL EBX0095E440 > 5B POP EBX 用Delphi写出的代码 就是容易懂 很轻松的看到了 接口函数跟调用的DLL名 直接在编程中写汇编代码 就可以调用他的DLL了 这里我就不举列了昨天写的代码删掉了 难得重新写 有些程序是EXE验证DLL纯功能 也就是说..调用他的DLL 就能绕过验证.. 绕不过验证 也能让他顺我心意 想干啥就干啥 顺带说句VMP不可怕 用VMP加密 实际上也很少有人会在这里让VMP加密 这就给了我可乘之机 VMP是强大的 但也不是万能的破解全靠个人 方法只是取巧 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|