首页
社区
课程
招聘
[原创]梦幻咖啡VIP v2.2.5 脱Armadillo 3.78壳
发表于: 2005-9-16 03:01 7808

[原创]梦幻咖啡VIP v2.2.5 脱Armadillo 3.78壳

2005-9-16 03:01
7808
【破文标题】:梦幻咖啡VIP v2.2.5 脱Armadillo 3.78壳

【破文作者】:KuNgBiM[DFCG]

【作者邮箱】:gb_1227@163.com

【软件名称】:梦幻咖啡VIP v2.2.5简体中文版

【软件大小】:911 KB

【下载地址】:67cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0t1I4z5g2)9J5k6e0p5#2x3#2)9J5k6e0m8Q4x3X3f1&6y4#2)9J5c8X3c8S2K9s2g2S2i4K6u0r3K9h3k6J5j5h3#2W2i4K6u0r3x3e0M7I4x3U0k6Q4y4h3k6V1L8%4N6F1i4K6u0r3x3U0l9H3y4g2)9J5c8U0l9&6i4K6u0r3N6$3M7&6z5e0W2Q4y4h3j5H3z5e0l9&6i4K6u0W2k6i4S2W2

【软件简介】:梦幻西游辅助外挂程序

【加密保护】:Armadillo 3.78 -> Silicon Realms Toolworks

【编译语言】:Microsoft Visual C++ 6.0

【调试环境】:WinXP、PEiD、Ollydbg、LordPE、ImportREC

【破解日期】:2005-09-14

【破解目的】:推广使用Ollydbg手动脱壳

【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

―――――――――――――――――――――――――――――――――
【脱壳过程】:

一、准备工作

侦壳:用PEiD查壳,Armadillo 3.78 -> Silicon Realms Toolworks 加壳

二、脱壳

1.寻找Magic Jump,避开IAT加密

由于该外挂程序没有使用双进程方式加密,所以我们就可以省去分离父进程的步骤了。

设置Ollydbg忽略所有其它异常选项。并且忽略:C000001E (INVALID LOCK SEQUENCE)

老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。

Ollydbg载入主程序:

0046C000 >  60              pushad                             // OD载入后停在这里
0046C001    E8 00000000     call coffee2_.0046C006
0046C006    5D              pop ebp
0046C007    50              push eax
0046C008    51              push ecx
0046C009    0FCA            bswap edx
0046C00B    F7D2            not edx
0046C00D    9C              pushfd
0046C00E    F7D2            not edx
0046C010    0FCA            bswap edx
0046C012    EB 0F           jmp short coffee2_.0046C023
0046C014    B9 EB0FB8EB     mov ecx,EBB80FEB
0046C019    07              pop es

命令栏下断:BP GetModuleHandleA+5 后,Shift + F9 运行:

7C80B52E    837D 08 00      cmp dword ptr ss:[ebp+8],0           // 断在这,注意看堆栈,F9继续!
7C80B532    74 18           je short kernel32.7C80B54C
7C80B534    FF75 08         push dword ptr ss:[ebp+8]
7C80B537    E8 682D0000     call kernel32.7C80E2A4
7C80B53C    85C0            test eax,eax
7C80B53E    74 08           je short kernel32.7C80B548
7C80B540    FF70 04         push dword ptr ds:[eax+4]
7C80B543    E8 F4300000     call kernel32.GetModuleHandleW
7C80B548    5D              pop ebp
7C80B549    C2 0400         retn 4

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

注意看BP GetModuleHandleA+5 时的堆栈变化:

0012CE44  /0012CE7C
0012CE48  |5D175394  返回到 5D175394 来自 kernel32.GetModuleHandleA
0012CE4C  |5D1753E0  ASCII "kernel32.dll"

0012CF04  /0012CF20
0012CF08  |77F45BD8  返回到 SHLWAPI.77F45BD8 来自 kernel32.GetModuleHandleA
0012CF0C  |77F4501C  ASCII "KERNEL32.DLL"

0012D718  /0012D780
0012D71C  |004517C3  返回到 coffee2_.004517C3 来自 kernel32.GetModuleHandleA
0012D720  |00000000

00128CB4  /0012CF48
00128CB8  |00AEFE91  返回到 00AEFE91 来自 kernel32.GetModuleHandleA
00128CBC  |00B03D68  ASCII "kernel32.dll"
00128CC0  |00B04F30  ASCII "VirtualAlloc"

00128CB4  /0012CF48
00128CB8  |00AEFEAE  返回到 00AEFEAE 来自 kernel32.GetModuleHandleA
00128CBC  |00B03D68  ASCII "kernel32.dll"
00128CC0  |00B04F24  ASCII "VirtualFree"

00128A2C  /00128CB8
00128A30  |00AD9537  返回到 00AD9537 来自 kernel32.GetModuleHandleA
00128A34  |00128B6C  ASCII "kernel32.dll"         ★注意!在这里Alt+F9返回程

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

当堆栈如上变化后,就可以Alt+F9返回程序代码了。

00AD9537    8B0D C890B000   mov ecx,dword ptr ds:[B090C8]         // 返回到这里,取消所有断点
00AD953D    89040E          mov dword ptr ds:[esi+ecx],eax
00AD9540    A1 C890B000     mov eax,dword ptr ds:[B090C8]
00AD9545    393C06          cmp dword ptr ds:[esi+eax],edi
00AD9548    75 16           jnz short 00AD9560
00AD954A    8D85 B4FEFFFF   lea eax,dword ptr ss:[ebp-14C]
00AD9550    50              push eax
00AD9551    FF15 E4E0AF00   call dword ptr ds:[AFE0E4]                      ; kernel32.LoadLibraryA
00AD9557    8B0D C890B000   mov ecx,dword ptr ds:[B090C8]
00AD955D    89040E          mov dword ptr ds:[esi+ecx],eax
00AD9560    A1 C890B000     mov eax,dword ptr ds:[B090C8]
00AD9565    393C06          cmp dword ptr ds:[esi+eax],edi
00AD9568    0F84 AD000000   je 00AD961B                    ★ Magic Jump ★  // 改为 :jmp 00AD961B
00AD956E    33C9            xor ecx,ecx
00AD9570    8B03            mov eax,dword ptr ds:[ebx]
00AD9572    3938            cmp dword ptr ds:[eax],edi
00AD9574    74 06           je short 00AD957C
00AD9576    41              inc ecx
00AD9577    83C0 0C         add eax,0C
00AD957A  ^ EB F6           jmp short 00AD9572
00AD957C    8BC1            mov eax,ecx
00AD957E    C1E0 02         shl eax,2
00AD9581    50              push eax
00AD9582    E8 993C0200     call 00AFD220                                   ; jmp to msvcrt.operator new

―――――――――――――――――――――――――――――――――
2、第2区段内存断点大法,直达OEP

Alt+M 查看内存,在401000区段上下“内存访问断点”,F9运行,直接中断在OEP处:

0041C090    55              push ebp                              // 在这儿用LordPE纠正ImageSize后完全Dump这个进程
0041C091    8BEC            mov ebp,esp
0041C093    6A FF           push -1
0041C095    68 60FD4100     push coffee2_.0041FD60
0041C09A    68 F4C14100     push coffee2_.0041C1F4                          ; jmp to msvcrt._except_handler3
0041C09F    64:A1 00000000  mov eax,dword ptr fs:[0]
0041C0A5    50              push eax
0041C0A6    64:8925 0000000>mov dword ptr fs:[0],esp
0041C0AD    83EC 68         sub esp,68
0041C0B0    53              push ebx
0041C0B1    56              push esi
0041C0B2    57              push edi
0041C0B3    8965 E8         mov dword ptr ss:[ebp-18],esp
0041C0B6    33DB            xor ebx,ebx
0041C0B8    895D FC         mov dword ptr ss:[ebp-4],ebx
0041C0BB    6A 02           push 2
0041C0BD    FF15 64E34100   call dword ptr ds:[41E364]                      ; msvcrt.__set_app_type
0041C0C3    59              pop ecx
0041C0C4    830D B4B44300 F>or dword ptr ds:[43B4B4],FFFFFFFF
0041C0CB    830D B8B44300 F>or dword ptr ds:[43B4B8],FFFFFFFF
0041C0D2    FF15 9CE34100   call dword ptr ds:[41E39C]                      ; msvcrt.__p__fmode
0041C0D8    8B0D A8B44300   mov ecx,dword ptr ds:[43B4A8]
0041C0DE    8908            mov dword ptr ds:[eax],ecx
0041C0E0    FF15 2CE34100   call dword ptr ds:[41E32C]                      ; msvcrt.__p__commode

三、脱壳文件修复及优化

运行ImportREC 1.6,选择这个进程。把OEP改为0001C090,点IT AutoSearch,某些函数无效,点Show Invalid,鼠标右键选择Trace Level1(Disasm),CUT无效函数后,函数全部有效。FixDump,正常运行!

优化:用LordPE删除区段“.text1”、“.data1”、“.pdata”然后“重建PE”!程序由脱壳后的924 KB变为321 KB!嘿嘿~~!!

--------------------------------------------------------------------------------------------

版权所有(C)2005 KuNgBiM[DFCG]         Copyright (C) 2005 KuNgBiM[DFCG]

--------------------------------------------------------------------------------------------
          UnPacked By KuNgBiM[DFCG]

                2005-09-14

                18:09:35 AM

附件:UnPacked.coffee.VIP.v2.2.5.rar

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 217
活跃值: (116)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
学习
2005-9-16 07:34
0
雪    币: 671
活跃值: (738)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
3
K兄的破文批量生产的啊!现在转产脱文了,收下来学习一下!
2005-9-16 08:04
0
雪    币: 136
活跃值: (220)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
4
hehe呵呵恭喜你又一篇  希望你能学习李白斗酒诗百篇, 你能一宿脱百篇!!!!!!!
2005-9-16 08:13
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
GOOD!
2005-9-17 04:53
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
KuNgBiM ,有没有代码着色器的下载地址啊,
2005-9-17 05:08
0
雪    币: 269
活跃值: (51)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
学习并收藏了.
2005-9-17 09:13
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
脱文真漂亮,我怎么摆不整齐?
2005-9-17 14:51
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
9
最初由 pendan2001 发布
KuNgBiM ,有没有代码着色器的下载地址啊,


推荐一个~

附件:colorcode2005.rar
2005-9-17 17:38
0
雪    币: 300
活跃值: (417)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
10
看到脱壳就头疼,学习
2005-9-17 22:06
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
11
KuNgBiM ,已下载,多谢
2005-9-18 00:41
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
支持并学习!
2005-9-18 09:52
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
Armadillo 3.78 trick -> unpack file PEID (Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks)...?
2005-9-19 23:27
0
雪    币: 805
活跃值: (556)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
学习!!!!
2005-9-20 00:23
0
雪    币: 227
活跃值: (164)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
是Armadillo 3.75c
2005-9-21 09:32
0
雪    币: 271
活跃值: (196)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
学习学习!
2005-9-22 12:46
0
雪    币: 217
活跃值: (116)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
看来Armadillo的壳,会脱的人多了,文章也不加精,不知道是不是这样?
2005-9-23 16:43
0
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
18
对于新手和老兵,文章的标准有所不同
Armadillo普通标准壳对于常在论坛的兄弟来说已经不算难
不推荐老兵们做简单的重复劳动
重点把时间放在掌握新的技术上面,这样才能不断进步
2005-9-23 17:56
0
游客
登录 | 注册 方可回帖
返回