找回密码
 注册
搜索
热搜: 回贴

手动脱壳入门第十六篇 MoleBox 2.x(图),手动脱壳,脱壳技术

2010-1-30 18:25| 发布者: admin| 查看: 79| 评论: 0|原作者: 仙之剑缘


手动脱壳入门第十六篇 MoleBox 2.x(图),手动脱壳,脱壳技术
2008年06月23日 星期一 下午 07:30
手动脱壳入门第十六篇 MoleBox 2.x
【脱文标题】 手动脱壳入门第十六篇 MoleBox 2.x
【脱文作者】 weiyi75[Dfcg]
【作者邮箱】 weiyi75@sohu.com
【作者主页】 Dfcg官方大本营
【使用工具】 Peid,Ollydbg,ImportREC1.6f,Loadpe
【脱壳平台】 Win2K/XP
【软件名称】 IMCaster ICQ E-Marketer
【软件简介】 IMCaster ICQ E-Marketer是一个强大的ICQ即时信息查找工具。你可以根据不同的条件(如:性别、年龄、国家或者职业等等)搜索在线ICQ用户,向他们发送信息以提高你网站或企业的知名度。
【软件大小】 2.61M
【加壳方式】 MoleBox 2.x.x -> Mole Studio [Overlay]
【保护方式】 MoleBox压缩壳
【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)


--------------------------------------------------------------------------------
【脱壳内容】
首先Peid查壳,为MoleBox 2.x.x -> Mole Studio [Overlay],OD载入运行,无任何异常,判断其为压缩壳。
004CD61C > 60 pushad //外壳入口,和Upx等查不多。当我们脱壳上一个台阶后,普通壳就不用慢慢跟踪了。

004CD61D E8 4F000000 call imcast.004CD671 //F8单步到这里,看Esp=0012FFA4

004CD622 2120 and dword ptr ds:[eax], esp

004CD624 76 41 jbe short imcast.004CD667

004CD626 B4 13 mov ah, 13

004CD628 3B63 51 cmp esp, dword ptr ds:[ebx 51]

004CD62B 38CA cmp dl, cl

004CD62D D8ACD0 BBB52910 fsubr dword ptr ds:[eax edx*8 1029B5BB]

004CD634 9F lahf

004CD635 A7 cmps dword ptr ds:[esi], dword ptr es:[e>

004CD636 9B wait

004CD637 BD B2BB61F4 mov ebp, F461BBB2

004CD63C B4 C9 mov ah, 0C9

004CD63E 17 pop ss

004CD63F BB 652286EE mov ebx, EE862265

004CD644 97 xchg eax, edi

004CD645 2AED sub ch, ch

004CD647 30DD xor ch, bl

004CD649 BB A64DED09 mov ebx, 9ED4DA6

004CD64E 5D pop ebp

004CD64F FC cld

004CD650 B7 01 mov bh, 1

004CD652 C01A AD rcr byte ptr ds:[edx], 0AD

004CD655 DFEF fucomip st, st(7)

004CD657 FD std

004CD658 ED in eax, dx

004CD659 A7 cmps dword ptr ds:[esi], dword ptr es:[e>

004CD65A 6A 38 push 38

004CD65C CE into

............................................................................

启用Esp定律。
dd 12ffa4
下硬件访问-Dword断点。
F9运行
硬件中断。
004CD5D0 61 popad // 关键字

004CD5D1 - FFE0 jmp eax // 断在这里,往上看到Popad关键字
0048636F 55 push ebp //F8到达Oep,Loadpe直接脱壳。

00486370 8BEC mov ebp, esp

00486372 6A FF push -1

00486374 68 E0144900 push imcast.004914E0

00486379 68 2C654800 push imcast.0048652C ; jmp to MSVCRT._except_handler3

0048637E 64:A1 00000000 mov eax, dword ptr fs:[0]

00486384 50 push eax

00486385 64:8925 0000000>mov dword ptr fs:[0], esp

0048638C 83EC 68 sub esp, 68

0048638F 53 push ebx

00486390 56 push esi

00486391 57 push edi

00486392 8965 E8 mov dword ptr ss:[ebp-18], esp

00486395 33DB xor ebx, ebx

00486397 895D FC mov dword ptr ss:[ebp-4], ebx

0048639A 6A 02 push 2

0048639C FF15 C4984800 call dword ptr ds:[4898C4] ; MSVCRT.__set_app_type

004863A2 59 pop ecx

004863A3 830D B42C4A00 F>or dword ptr ds:[4A2CB4], FFFFFFFF

004863AA 830D B82C4A00 F>or dword ptr ds:[4A2CB8], FFFFFFFF

004863B1 FF15 C8984800 call dword ptr ds:[4898C8] ; MSVCRT.__p__fmode

............................................................................
脱壳后发现程序不能运行,这时需要用Imprec修复引入函数表(Import Table)
在Oep处填8636F,点IT自动搜索,然后点获输入信息,有9个指针没有修复。
千万别用等级1修复,看看如图,等级修复的些什么,这些假东西保存程序肯定无法运行的。

呵呵,用跟踪等级3为我们修复3个,剩下6个就靠我们自己了。
我以 00089100 处 004D48A8 处的指针修复举个例子。
右键-反汇编/16进制显示
004D48BF call [4D80F0] // = kernel32.dll/001F/CloseHandle //这里最先看到CloseHandle就是我们要修复的指针。
其余的方法一样,注意并不是所有的脱壳程序都可以用这个方法,如Asprotect 1.23rc4无法修复的指针就可以用这个办法修复,切勿过于依赖,每个加密壳处理方法都不相同。
于是我们手动填入 CloseHandle
同理修复。
00089120 004D4793
为CreateFileA
0008912C 004D498A
为GetFileAttributesA
00089148 004D4BC9
为UnmapViewOfFile
0008914C 004D4B8A
为MapViewOfFile
0008915C 004D49B0
为CreateFileMappingA


全部指针修复,修复抓取文件,正常运行。


破解 龙岱客已经分析的很清楚。


最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 19:17 , Processed in 0.394946 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部