Unpack CopyPod V6.00
下载地址: URL http://www.copypod.net/bin/CopyPod_v6.00.exe
软件大小: 877 KB
软件语言: 英文
软件类别: 国外软件 / 共享版 / 文件备份
应用平台: Win9x/NT/2000/XP
加入时间: 2005-03-23
软件简介: 用于备份你的iPod中的数据
调试环境:WinXPSP1, FlyODBG(2005-03-28), LordPE, ImportREC
前两天郁闷为什么我汉化的CopyPod v5上传到汉化新世纪上没有人理我,今天才发现原来他出新版了。
用PEiD侦测一下,显示是 Nothing Found*,通用脱壳机也不行,算了还是手脱吧,不过中途居然很幸运的发现了被它清空的区段名。
00634288 > E8 03000000 call 复件_Cop.00634290 //进入OD停在了这里
0063428D EB 01 jmp short 复件_Cop.00634290
0063428F E8 BB550000 call 复件_Cop.0063984F
00634294 00E8 add al, ch
00634296 0300 add eax, dword ptr ds:[eax]
00634298 0000 add byte ptr ds:[eax], al
0063429A EB 01 jmp short 复件_Cop.0063429D
0063429C C2 E88F retn 8FE8
先找OEP吧。下断点 bp CreateFileA,中断4次后打开内存映像的窗口,在00401000段上下个内存访问中断。
直达OEP:00401914。Borland C++程序,入口很完整。输入表:001FD120,大小:F9C,DisASM,cut掉扫描不出来的指针。就全了。
在这里如果你有什么还方法能让00140000段加入脱壳后的文件还能运行的话,就可以用你喜欢的东西dump了,记得要dump段00140000。还有记得也告诉我一下。。。。^_^
不过,现实情况是我不会。。。所以我要重来,防止它加密IAT,并把IAT改成直接跳转的形式塞到00140000中去。
记下第一个IAT的地址是005FD120,带回要用它来找加密的地方。重来。
在005FD120上下内存写入断点。F9
第1~4次:00635807 AA stos byte ptr es:[edi]
第5~11次:00635B22 F3:A4 rep movs byte ptr es:[edi], byte ptr ds:[esi]
第12次:
00636007 61 popad
00636008 5A pop edx
00636009 8902 mov dword ptr ds:[edx], eax ; WININET.InternetGetConnectedState
//断在了这里。大大的函数地址就在右边。
0063600B EB 1D jmp short 复件_Cop.0063602A
清除内存断点。F8单步走吧,后面有加密:
00636070 8D39 lea edi, dword ptr ds:[ecx]
00636072 3E:8B77 04 mov esi, dword ptr ds:[edi+4]
00636076 8932 mov dword ptr ds:[edx], esi //就是这里。nop它
00636078 2BC6 sub eax, esi
0063607A 83E8 05 sub eax, 5
0063607D C606 E9 mov byte ptr ds:[esi], 0E9
00636080 8946 01 mov dword ptr ds:[esi+1], eax
00636083 3E:8347 04 05 add dword ptr ds:[edi+4], 5
00636088 5E pop esi
00636089 5F pop edi
0063608A 59 pop ecx
0063608B 83C1 04 add ecx, 4
0063608E 83C2 04 add edx, 4
00636091 ^ E9 09FFFFFF jmp 复件_Cop.00635F9F
00636096 83C6 0C add esi, 0C
00636099 ^ E9 6BFEFFFF jmp 复件_Cop.00635F09
0063609E 33C0 xor eax, eax
信息窗口:
esi=001435A0
ds:[005FD120]=76175239 (WININET.InternetGetConnectedState)
然后去IAT的末尾005FE140下个内存写入断点。F9暂停后清除断点,再F4到0063609E。
。这时候,请在开启一个OD的窗口。不要nop那条加密指令,到达这里。
然后两个OD对照着运行,因为刚刚我们修改后会出现一些问题。
006360FF 33C3 xor eax, ebx
00636101 74 08 je short 复件_Cop.0063610B //这里
00636103 EB 01 jmp short 复件_Cop.00636106
两个OD给出了不同的条件,请按照第二个OD的EFL值修改第一个OD的EFL值。
改完后就可以关掉第二个OD了。在00401000段上下内存访问断点。直达OEP。
输入表的RVA和大小不变。获取后直接cut掉不用的指针就行了。
用LordPE纠正一下ImageSize就可以Dump了,再用ImportREC修复一下就可以运行了。
现在再来看看是在哪看见那些区段名的:
在005FD120上下内存写入断点。F9中断后取消断点,F4到下面的Retn,在返回几次后就可以看到:
00635337 42 inc edx
00635338 66:3E:3B57 06 cmp dx, word ptr ds:[edi+6] //这里
0063533D ^ 0F85 D4FDFFFF jnz 复件_Cop.00635117
看一下寄存器:ESI 004003C0 ASCII ".edata"
004002F0 00 00 00 00 00 00 00 00 2E 74 65 78 74 00 00 00 .........text...
00400300 00 30 17 00 00 10 00 00 00 80 0A 00 00 06 00 00 .0.....?....
00400310 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 C0 ............@..?
00400320 2E 64 61 74 61 00 00 00 00 70 08 00 00 40 17 00 .data....p..@.
00400330 00 A2 00 00 00 86 0A 00 00 00 00 00 00 00 00 00 .?..?.........
00400340 00 00 00 00 40 00 00 C0 2E 74 6C 73 00 00 00 00 ....@..?tls....
00400350 00 10 00 00 00 B0 1F 00 00 02 00 00 00 28 0B 00 ....?.....(.
00400360 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 C0 ............@..?
00400370 2E 72 64 61 74 61 00 00 00 10 00 00 00 C0 1F 00 .rdata......?.
00400380 00 02 00 00 00 2A 0B 00 00 00 00 00 00 00 00 00 ....*.........
00400390 00 00 00 00 40 00 00 C0 2E 69 64 61 74 61 00 00 ....@..?idata..
004003A0 00 40 00 00 00 D0 1F 00 00 12 00 00 00 2C 0B 00 .@...?.....,.
004003B0 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 C0 ............@..?
004003C0 2E 65 64 61 74 61 00 00 00 20 01 00 00 10 20 00 .edata... .. .
004003D0 00 44 00 00 00 3E 0B 00 00 00 00 00 00 00 00 00 .D...>.........
004003E0 00 00 00 00 40 00 00 C0 2E 72 73 72 63 00 00 00 ....@..?rsrc...
004003F0 00 10 02 00 00 30 21 00 00 08 02 00 00 82 0B 00 ...0!....?.
00400400 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 C0 ............@..?
00400410 2E 57 69 6E 64 53 6F 6C 00 F0 0A 00 00 40 23 00 .WindSol.?..@#.
00400420 34 2A 00 00 00 8A 0D 00 00 00 00 00 00 00 00 00 4*...?.........
8个段名一个不少。
第一次写脱壳文章,居然调了一个不认识的壳。应该是很弱的那种壳吧。
如果大家有什么更好的方法请告诉我。虚心学习中。。。。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课