注入類程序伪造注入目标调试+调用别人DLL浅谈
注入類程序一般是用在外掛上...注入遊戲 跟遊戲混為一體這大大加大了破解的難度, 不光要搞定程序的anti 還要搞定遊戲的保護.沒有遊戲還需要下載遊戲...我是深惡痛絕的..我家宽带才1M..那么只能想方设法另辟蹊径,想要另辟蹊径又要先了解一下注入类程序的实现思路
注入类程序一般是取游戏的窗口标题 类名 进程名 常用的只有窗口标题跟类名
既然知道了程序是取什么来判断是否注入的 那么就自然的出现一个方法:伪造编写一个空壳程序 窗口标题 类名 文件名 改为程序需要判断的
条件.我没有游戏 自然不能知道这些. 就算有游戏,拿TX的游戏举列 不过保护是取不到标题跟类名的.
继续想办法 从程序入手如何? 可以试验一下 就算一般用VMP加密的程序 也不会加密这些对验证来说无关紧要的信息 那我就能轻易的知道 程序是
在取什么判断了0040451E 8965 F4 MOV DWORD PTR SS:,ESP
00404521 68 BF314000 PUSH 004031BF ; 成吉思汗 1.5.75.93
00404526 68 D2314000 PUSH 004031D2 ; ChengJiSiHan WndClass
0040452B FF75 FC PUSH DWORD PTR SS:
0040452E 68 00000000 PUSH 0
00404533 B8 06000000 MOV EAX,6
00404538 E8 861C0000 CALL 004061C3很明显 第一个是标题 第二个是类名知道了程序判断条件 就能开始伪造了
如下图
程序被欺骗了 注入了伪造的空壳程序 这样 既不用去过游戏的保护 也不用下游戏 就能直接调试了.
继续 一次讲完调用外挂的DLL干你自己需要干的事0040588B 68 00000000 PUSH 0
00405890 BB 04010000 MOV EBX,104
00405895 E8 2F090000 CALL dump_.004061C9
0040589A 83C4 04 ADD ESP,4
0040589D 8945 F8 MOV DWORD PTR SS:,EAX
004058A0 68 72324000 PUSH dump_.00403272 ; \CJSHWL.dll
004058A5 FF75 F8 PUSH DWORD PTR SS:
004058A8 B9 02000000 MOV ECX,2
004058AD E8 CAFDFFFF CALL dump_.0040567C
004058B2 83C4 08 ADD ESP,8
004058B5 8945 F4 MOV DWORD PTR SS:,EAX
004058B8 8B5D F8 MOV EBX,DWORD PTR SS:
004058BB 85DB TEST EBX,EBX
004058BD 74 09 JE SHORT dump_.004058C8
004058BF 53 PUSH EBX
004058C0 E8 EC080000 CALL dump_.004061B1
004058C5 83C4 04 ADD ESP,4
004058C8 B8 7E324000 MOV EAX,dump_.0040327E ; 初始函数
004058CD 8945 F0 MOV DWORD PTR SS:,EAX
004058D0 8D45 F0 LEA EAX,DWORD PTR SS:
004058D3 50 PUSH EAX
004058D4 8D45 F4 LEA EAX,DWORD PTR SS:
004058D7 50 PUSH EAX
004058D8 FF75 FC PUSH DWORD PTR SS:
004058DB E8 E9000000 CALL dump_.004059C9
004058E0 8945 EC MOV DWORD PTR SS:,EAX
以上代码就能看出调用名为 CJSHWL.dll这个DLL 下面的初始函数就是DLL接口了而他的这个..也只能说接口..太公开化了 用过E写注入
的就知道他是用的是什么模块了... 完全可以随便调用
在看看Delphi写出来的代码0095E421 > \68 70F29500 PUSH winmm.0095F270 ; /niliu.dll
0095E426 .E8 8580FBFF CALL <JMP.&kernel32.LoadLibraryA> ; \LoadLibraryA
0095E42B .8BD8 MOV EBX,EAX
0095E42D .85DB TEST EBX,EBX
0095E42F .76 0F JBE SHORT winmm.0095E440
0095E431 .68 7CF29500 PUSH winmm.0095F27C ; /tales
0095E436 .53 PUSH EBX ; |hModule
0095E437 .E8 DC7FFBFF CALL <JMP.&kernel32.GetProcAddress> ; \GetProcAddress
0095E43C .8BD8 MOV EBX,EAX
0095E43E .FFD3 CALL EBX
0095E440 >5B POP EBX用Delphi写出的代码 就是容易懂 很轻松的看到了 接口函数跟调用的DLL名 直接在编程中写汇编代码 就可以调用他的DLL了 这里我就不举列了
昨天写的代码删掉了 难得重新写
有些程序是EXE验证DLL纯功能 也就是说..调用他的DLL就能绕过验证..
绕不过验证 也能让他顺我心意 想干啥就干啥
顺带说句VMP不可怕 用VMP加密实际上也很少有人会在这里让VMP加密 这就给了我可乘之机 VMP是强大的 但也不是万能的
破解全靠个人 方法只是取巧
PS: 以上是小菜的一点小心得 如有不足之处 请各位高手指教 :victory:抢完沙发慢慢看 :lol膜拜逆牛的大作 支持逆流师傅类作品。。。 沙发没有了。。。。。。做板凳吧,,马桶留给下边的 受教了……期待逆流新作…… 输出函数可以用PEID查看,但调用需要参数啊,怎么知道这些参数 T仔就用你的劫持源碼來 我給你寫的彙編代碼 就能調用你的DLL0044E1D9 B8 ED1BB276 MOV EAX,76B21BED
0044E1DE B9 1977937C MOV ECX,7C937719
0044E1E3 BA 78E1997C MOV EDX,7C99E178
0044E1E8 BB 0000B176 MOV EBX,76B10000
0044E1ED BC 44F81200 MOV ESP,12F844
0044E1F2 BD 84F81200 MOV EBP,12F884
0044E1F7 BE 5C269600 MOV ESI,96265C
0044E1FC BF 74F81200 MOV EDI,12F874
0044E201 68 A5104000 PUSH Project1.004010A5 ;ASCII "niliu.dll"
0044E206 E8 703B3B7C CALL kernel32.LoadLibraryA
0044E20B 8BD8 MOV EBX,EAX
0044E20D 85DB TEST EBX,EBX
0044E20F 76 0F JBE SHORT Project1.0044E220
0044E211 68 71714000 PUSH Project1.00407171 ;ASCII "tales"
0044E216 53 PUSH EBX
0044E217 E8 D4CB3B7C CALL kernel32.GetProcAddress
0044E21C 8BD8 MOV EBX,EAX
0044E21E FFD3 CALL EBX
0044E220 5B POP EBX ;niliu.tales
上述代碼不是完整的 還需要改的地方很多 只是舉列證明下效果 T仔還有問題沒. 手机看不清楚,回家看看,我那dll代码直接写在入口,只要一加载程序就启动了。回家再说吧