【软件名称】: IceSword 1.18 【软件大小】: 689kb 【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov 【保护方式】: ASPack 2.12 【编写语言】: Microsoft Visual C++ 6.0 【使用工具】: Peid Ollyice RECImport 【操作平台】: Windows Xp Sp2 【软件介绍】: 无比强大的ANTIROOTKIT 的综合TOOLS -------------------------------------------------------------------------------- 【详细过程】 用PEID查看为ASPack 2.12 -> Alexey Solodovnikov,相信网上的文章和教程都粉多,而且此工具有脱壳机了
个人只是说一下简单脱壳的一点自己的东西,高手飘过 上篇脱破文生成器用堆栈平衡的技巧 这次我们就从
基础开始 嘿嘿(菜鸟就要慢慢从基础打起的 ~@#~@#~@)
现在言归正题 Action...
直接用Ollyice载入提示此软件已被压缩.点"取消"后来到此处:
00647001 > 60 pushad //看到pushad 是不是想到popad? 哈哈 别急 今天不讲这 00647002 E8 03000000 call 0064700A // CALL比较近 用F8 比较容易跑飞 直接用F7 向下走 00647007 - E9 EB045D45 jmp 45C174F7 0064700C 55 push ebp 0064700D C3 retn 0064700E E8 01000000 call 00647014 00647013 EB 5D jmp short 00647072 00647015 BB EDFFFFFF mov ebx, -13 0064701A 03DD add ebx, ebp 0064701C 81EB 00702400 sub ebx, 247000 00647022 83BD 22040000 0>cmp dword ptr [ebp+422], 0 00647029 899D 22040000 mov [ebp+422], ebx 0064702F 0F85 65030000 jnz 0064739A 00647035 8D85 2E040000 lea eax, [ebp+42E] 0064703B 50 push eax 0064703C FF95 4D0F0000 call [ebp+F4D] 00647042 8985 26040000 mov [ebp+426], eax
F7 向下走 到这里
0064702F /0F85 65030000 jnz 0064739A //这边有个JNZ跳转 注意啦 看地址0064739A 00647035 |8D85 2E040000 lea eax, [ebp+42E] 0064703B |50 push eax 0064703C |FF95 4D0F0000 call [ebp+F4D] 00647042 |8985 26040000 mov [ebp+426], eax 00647048 |8BF8 mov edi, eax 0064704A |8D5D 5E lea ebx, [ebp+5E] 0064704D |53 push ebx 0064704E |50 push eax 0064704F |FF95 490F0000 call [ebp+F49] 00647055 |8985 4D050000 mov [ebp+54D], eax 0064705B |8D5D 6B lea ebx, [ebp+6B] 0064705E |53 push ebx 0064705F |57 push edi 00647060 |FF95 490F0000 call [ebp+F49]
跳转未实现 0064739A=0064739A
Ctrl+g 跟进 0064739A
0064739A B8 6BA30200 mov eax, 2A36B //来到这里 0064739F 50 push eax 006473A0 0385 22040000 add eax, [ebp+422] 006473A6 59 pop ecx 006473A7 0BC9 or ecx, ecx 006473A9 8985 A8030000 mov [ebp+3A8], eax 006473AF 61 popad 006473B0 75 08 jnz short 006473BA 006473B2 B8 01000000 mov eax, 1 006473B7 C2 0C00 retn 0C
F2 下个断点
然后F9 运行一下 中断在这里
继续F7向下走
就快到光明顶了
0042A36B 55 push ebp //这里就是OEP了 哈哈 0042A36C 8BEC mov ebp, esp 0042A36E 6A FF push -1 0042A370 68 10584E00 push 004E5810 0042A375 68 AC9B4200 push 00429BAC 0042A37A 64:A1 00000000 mov eax, fs:[0] 0042A380 50 push eax 0042A381 64:8925 0000000>mov fs:[0], esp 0042A388 83EC 58 sub esp, 58 0042A38B 53 push ebx 0042A38C 56 push esi 0042A38D 57 push edi 0042A38E 8965 E8 mov [ebp-18], esp 0042A391 FF15 4CA34D00 call [4DA34C] ; kernel32.GetVersion
Microsoft Visual C++ 6.0 的产物 嘿嘿
然后点右键 Dump下来 Copy下OEP
然后用RECImport修复
把2A36B 复制到OEP 点自动查找IAT
获取输入表 修复转储文件
过程完毕 简单吧 。。。
本文为菜鸟所写 嘿 希望大家喜欢
【经验总结】 过程写的垃圾 只是用最原始的方法来脱ASPACK 相信大家都会 文章可能跟网络上有相似或相同方法的地方但出于对FST 论坛的扫肓 还算比较详细的写下来 |