当前位置
首页  »  传奇教程  »  如何脱A.F.T引擎的壳
如何脱A.F.T引擎的壳

如何脱A.F.T引擎的壳

  • 别名:
  • 导演:
  • 主演:
  • 类型:传奇教程
  • 地区:国产软件
  • 语言:简体中文
  • 上映:2006
  • 片长:0
  • 更新:1970-01-01 08:00:00
  • 总播放量:加载中
  • 今日播放量:0
  • 总评分数:0
  • 评分次数:0
剧情介绍:

大家好! 我是 无聊.有跟大家见面.呵呵 我看到论坛里面有 说关于 AFT引擎卡的原因有人说是壳的问题.所以呢. 我今天 做了个动画来教大家怎么去脱 A.F.T引擎的壳. 希望大家以后有空来 本论坛[http://Www.SF7758.Com.] 捧捧 场.. 有空大家 在这里交流交流. 开服务器的朋友. 有空 在主页发布一下你们的私服.捧捧 场 呵呵.. 说来说去 我也是 为了我的站 有更多的人来捧场...那样交流起来就更热闹了。.. 希望大家 以后能多来 捧捧场... 谢谢了 也希望 那位大哥-大姐谁开的也有交流的论坛 或者 私服发布网的话 能跟 小弟 做个连接 提高点人气... 谢谢 谢谢了.. 哎 有点罗嗦了。.. 在这里我就不多说了.下面就看动画吧.... 呵呵 提前打好的。 省的有错字出现。 哈哈。。 请大家在 转帖的时候 不要修改 版权就有了呵呵 谢谢 大家。。 首先: 一、 使用工具:OllyDBG,LordPE,ImportREC v1.6F,PEiD v0.94 [大家可以到网上搜索一下到处都有的。呵呵] 1 侦壳:用PEiD查壳 Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks 具体 壳 是真是 假 我也不多说了 大家 看 我操作就可以了 ... 这个程序是单进程的,我们可以省略分离父子进程的过程。 二 、脱壳 Ollydbg 载入 开头是这个 0067D243 >/$55pushebp 0067D244|.8BECmovebp, esp 0067D246|.6A FFpush-1 0067D248|.68 406F6A00push006A6F40 0067D24D|.68 80CF6700push0067CF80;SE 处理程序安装 然后我们下断点HE GetModuleHandleA 按F9运行中断后,看堆栈: 0012FF380067D30B/CALL 到 GetModuleHandleA 来自 A_F_T_FR.0067D305 0012FF3C00000000\pModule = NULL 0012F24C77A03F02/CALL 到 GetModuleHandleA 来自 OLEAUT32.77A03EFC 0012F250779A0630\pModule = "kernel32.dll" 0012F25477A04081返回到 OLEAUT32.77A04081 来自 OLEAUT32.77A03EC0 0012F24077A072DB/CALL 到 GetModuleHandleA 来自 OLEAUT32.77A072D5 0012F244779A0994\pModule = "KERNEL32" 0012F24877A0412A返回到 OLEAUT32.77A0412A 来自 OLEAUT32.77A072D0 0012F24C77A0620B返回到 OLEAUT32.77A0620B 0012F25077A03FAA返回到 OLEAUT32.77A03FAA 来自 OLEAUT32.77A06200 0012F25477A04081返回到 OLEAUT32.77A04081 来自 OLEAUT32.77A03EC0 0012F178779A83DB/CALL 到 GetModuleHandleA 来自 OLEAUT32.779A83D5 0012F17C77A1ADA8\pModule = "KERNEL32.DLL" 0012F180779A7A32返回到 OLEAUT32.779A7A32 来自 OLEAUT32.779A83D0 0012F178779A83DB/CALL 到 GetModuleHandleA 来自 OLEAUT32.779A83D5 0012F17C77A1ADA8\pModule = "KERNEL32.DLL" 0012F180779C0222返回到 OLEAUT32.779C0222 来自 OLEAUT32.779A83D0 0012F18477A1F908OLEAUT32.77A1F908 0012F1C478001E96/CALL 到 GetModuleHandleA 来自 msvcrt.78001E90 0012F1C8780322D4\pModule = "KERNEL32" 0012F1CC78001E46返回到 msvcrt.78001E46 来自 msvcrt.78001E8B 0012F1D078001E1A返回到 msvcrt.78001E1A 0012F1D4780010EC返回到 msvcrt.780010EC 来自 msvcrt.78001E0F 0012F73C00667EF3/CALL 到 GetModuleHandleA 来自 A_F_T_FR.00667EED 0012F74000000000\pModule = NULL 001298DC00DD32BD/CALL 到 GetModuleHandleA 来自 00DD32B7 001298E000DE2C1C\pModule = "kernel32.dll" 001298E400DE3E98ASCII "VirtualAlloc" 001298DC00DD32DA/CALL 到 GetModuleHandleA 来自 00DD32D4 001298E000DE2C1C\pModule = "kernel32.dll" 001298E400DE3E8CASCII "VirtualFree" 0012967C00DC563C/CALL 到 GetModuleHandleA 来自 00DC5636 00129680001297B8\pModule = "kernel32.dll"; ★注意!在这里清除硬件断点后Alt+F9返回程序 00DC563C8B0D 14B0DE00movecx, [DEB014]; 然后我们返回到这里 00DC564289040Emov[esi+ecx], eax 00DC5645A1 14B0DE00moveax, [DEB014] 00DC564A393C06cmp[esi+eax], edi 00DC564D75 16jnzshort 00DC5665 00DC564F8D85 DCFEFFFFleaeax, [ebp-124] 00DC565550pusheax 00DC5656FF15 90D0DD00call[DDD090]; KERNEL32.LoadLibraryA 00DC565C8B0D 14B0DE00movecx, [DEB014] 00DC566289040Emov[esi+ecx], eax 00DC5665A1 14B0DE00moveax, [DEB014] 00DC566A393C06cmp[esi+eax], edi 00DC566D0F84 2F010000je00DC57A2; 改成为 jmp00DC57A2 修改这是为了避开IAT加密 00DC567333C9xorecx, ecx 00DC56758B03moveax, [ebx] 00DC56773938cmp[eax], edi 然后我们继续下断点 bp GetCurrentThreadId 按F9运行中断后,看堆栈: 0012923C66001E3A/CALL 到 GetCurrentThreadId 来自 66001E34 0012921C66003505/CALL 到 GetCurrentThreadId 来自 660034FF 0012F72000DC59D3/CALL 到 GetCurrentThreadId 来自 00DC59CD; ★注意!在这里Alt+F9返回程序 这里说下我判断返回的经验,我的经验是 00DC59CD 跟上面跨段很大。前面都是6开头的,而这个是00D开始的.. 这里如果说的不对就请大家多多包含。 00DC59D350pusheax; 返回到这里。然后我们F8单步向下下走 00DC59D4FF75 FCpushdword ptr [ebp-4] 00DC59D7E8 05000000call00DC59E1 00DC59DC83C4 0Caddesp, 0C 00DC59DFC9leave 00DC59E0C3retn 00DC59E1E8 82FFFFFFcall00DC5968 00DC59E66A 14push14 00DC59E8E8 B56C0100call00DDC6A2; jmp 到 msvcrt.operator new[] 00DC59ED85C0testeax, eax 00DC59EF59popecx 00DD89A133DBxorebx, ebx; 返回到这里。继续F8向下走 00DD89A353pushebx 00DD89A4E8 B80CFFFFcall00DC9661 00DD89A959popecx 00DD89AABE 006ADE00movesi, 0DE6A00 00DD89AF8BCEmovecx, esi 00DD89B1E8 E0FEFDFFcall00DB8896 00DD89B684C0testal, al 00DD89B875 09jnzshort 00DD89C3 00DD89BA6A 01push1 00DD89BC8BCEmovecx, esi 00DD89BEE8 664BFEFFcall00DBD529 00DD89C3C705 E030DE00 A>movdword ptr [DE30E0], 0DE3FAC 00DD89CDB9 F82DDF00movecx, 0DF2DF8 00DD89D2E8 B73C0000call00DDC68E 00DD89D753pushebx 00DD89D8E8 B13C0000call00DDC68E 00DD89DD59popecx 00DD89DE33D2xoredx, edx 00DD89E08955 DCmov[ebp-24], edx 00DD89E3895D FCmov[ebp-4], ebx 00DD89E6A0 2470DE00moval, [DE7024] 00DD89EB8845 C8mov[ebp-38], al 00DD89EE84C0testal, al 00DD89F075 4Djnzshort 00DD8A3F 00DD89F2A1 4C70DE00moveax, [DE704C] 00DD89F78B88 88000000movecx, [eax+88] 00DD89FD894D C4mov[ebp-3C], ecx 00DD8A00894D D0mov[ebp-30], ecx 00DD8A038B0D 6470DE00movecx, [DE7064]; A_F_T_FR.00400000 00DD8A09894D C0mov[ebp-40], ecx 00DD8A0C8B70 6Cmovesi, [eax+6C] 00DD8A0F3370 60xoresi, [eax+60] 00DD8A123370 54xoresi, [eax+54] 00DD8A1503F1addesi, ecx 00DD8A178975 D4mov[ebp-2C], esi 00DD8A1A8B98 90000000movebx, [eax+90] 00DD8A203358 7Cxorebx, [eax+7C] 00DD8A233358 44xorebx, [eax+44] 00DD8A26895D A8mov[ebp-58], ebx 00DD8A298D4D D0leaecx, [ebp-30] 00DD8A2CE8 CF85FDFFcall00DB1000 00DD8A3133D2xoredx, edx 00DD8A33F7F3divebx 00DD8A3503D6addedx, esi 00DD8A378955 CCmov[ebp-34], edx 00DD8A3A8B12movedx, [edx] 00DD8A3C8955 DCmov[ebp-24], edx 00DD8A3F834D FC FFordword ptr [ebp-4], FFFFFFFF 00DD8A43EB 11jmpshort 00DD8A56 00DD8A456A 01push1 00DD8A4758popeax 00DD8A48C3retn 00DD8A498B65 E8movesp, [ebp-18] 00DD8A4C834D FC FFordword ptr [ebp-4], FFFFFFFF 00DD8A508B7D 08movedi, [ebp+8] 00DD8A538B55 DCmovedx, [ebp-24] 00DD8A56A1 4C70DE00moveax, [DE704C] 00DD8A5B3190 88000000xor[eax+88], edx 00DD8A61A1 4C70DE00moveax, [DE704C] 00DD8A663190 88000000xor[eax+88], edx 00DD8A6CA1 4C70DE00moveax, [DE704C] 00DD8A718B88 90000000movecx, [eax+90] 00DD8A773348 2Cxorecx, [eax+2C] 00DD8A7A3348 18xorecx, [eax+18] 00DD8A7D030D 6470DE00addecx, [DE7064]; A_F_T_FR.00400000 00DD8A838B17movedx, [edi] 00DD8A8585D2testedx, edx 00DD8A8775 1Bjnzshort 00DD8AA4 00DD8A89FF77 18pushdword ptr [edi+18] 00DD8A8CFF77 14pushdword ptr [edi+14] 00DD8A8FFF77 10pushdword ptr [edi+10] 00DD8A928B90 90000000movedx, [eax+90] 00DD8A983350 40xoredx, [eax+40] 00DD8A9B3350 04xoredx, [eax+4] 00DD8A9E2BCAsubecx, edx 00DD8AA0FFD1callecx注意到这里; 真正的OEP到了,我们F7追进去.. 0060876055pushebp; 追进来后这就是入口了。 006087618BECmovebp, esp 0060876383C4 F0addesp, -10 00608766B8 C8816000moveax, 006081C8 0060876BE8 74E5DFFFcall00406CE4 0060877074 03jeshort 00608775 0060877275 01jnzshort 00608775 00608774E8 8D054080call80A08D06 0060877960pushad 0060877A00FFaddbh, bh 0060877CD07404 75salbyte ptr [esp+eax+75], 1 0060878002F4adddh, ah 00608782FFE8jmpfar eax; 非法使用寄存器 006087840C BForal, 0BF 00608786DFFFfistpedi; 非法使用寄存器 006087880000add[eax], al 现在可以用 LordPE DUMP了。完整转存后, 我们运行脱壳后的 看看无法运行。 所以我们要修复 所以我们要 修复IAT..用 ImportRECOEP处填208760这个地址就是自动搜索IAT 获取输入表 显示无效函数 当前输入函数信息: 0 (十进制:0) 1F5 (十进制:501) 输入函数增加: +1F5 (11 (十进制:17)无效指针(s)增加: +11 这里有无效指针,全部CUT掉。修复抓取文件 修复 好了。 这次在看看能不能运行OK脱壳 完成。。。 用PE 在查查壳 Borland Delphi 6.0 - 7.0 正明没有壳 了 脱壳成功。。 呵呵。。 然后大家就随便改吧 呵呵 。。。。 谢谢。。 希望大家以后有空多多来本站 捧场。。 88 祝 大家 私服 生意 财源滚滚。。。。

影片点播: