首页 网络安全 安全学院 查看内容

注入類程序伪造注入目标调试+调用别人DLL浅谈

2009-7-4 09:59 403 0

摘要: 注入類程序一般是用在外掛上...注入遊戲 跟遊戲混為一體 這大大加大了破解的難度, 不光要搞定程序的anti 還要搞定遊戲的保護. 沒有遊戲還需要下載遊戲...我是深惡痛絕的..我家宽带才1M..那...
关键词: 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是强大的 但也不是万能的破解全靠个人 方法只是取巧
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部