小生我怕怕 发表于 2008-9-27 00:10

吾爱破解脱壳练习------简单加密壳

一转眼我们的脱壳练习已经第4期啦,在这其中我相信许多的朋友也学习到了东西
本次放出简单的一个加密壳给大家练手,此壳只要大家积累以上几个压缩壳之精华
必能脱掉此壳
本期考核主题为:AT4RE Protector
请大家在回复中注意以下几点:
1.脱壳后的文件大家以千脑形式上传,目的是为了便于隐藏文件和节约论坛空间
2.脱壳后的文件,请大家以脱文附带脱壳后程序打包压缩传于千脑网盘
3.对于回帖过程中千万不要出现灌水,否则BAN了ID
4.对于有优秀脱文或优秀脱壳方法的朋友,给于适当威望奖励
5.鉴于此练习是针对论坛的所有人,请大家踊跃参加,如果不是脱了壳教作业的,请不要顶帖子,方便管理查阅,及时给出评分
6.以下为需要设置威望的格式
7.脱壳一以周期计算,(周期=等于三天)
8.脱壳周期一结束,就开始公布答案让大家能有更充分的学习环境,让不懂脱的朋友去寻找你失误的地方争取早日赶上论坛的积极份子
9.我们要的是脱文,并不是脱壳机去脱的,如果用脱机脱了别拿来,请一定附带上脱文
10.对本次参加加密壳脱壳练习的,给出脱文全部给予10CB奖励!



练习一:(结果已经公布)
http://www.52pojie.cn/thread-10496-1-1.html

练习二:(结果已经公布)
http://www.52pojie.cn/thread-10607-1-1.html

练习三:(结果已经公布)
http://www.52pojie.cn/thread-10688-1-1.html



小生我怕怕 发表于 2008-9-27 00:20

**** Hidden Message *****

小生我怕怕 发表于 2008-9-27 00:21

现在我们又来开始说下断点的方法
这个是我单步跟来觉得最快的断点
bp GetProcAddress
━━━━━━━━━━━━━━━━━━━━━━━━━━
00401000 >60pushad //OD载入,程序停于此处
0040100181C0 5735821F add eax,1F823557 //在命令栏输入:bp GetProcAddress
0040100760pushad
0040100861popad
0040100981E8 5735821F sub eax,1F823557
0040100F61popad
004010106A 00 push 0
0040101287F1xchg ecx,esi
━━━━━━━━━━━━━━━━━━━━━━━━━━
7C80ADA0 >8BFFmov edi,edi //shift+f9运行9次
7C80ADA255push ebp//运行9次之后,ait+b取消断点
7C80ADA38BECmov ebp,esp //取消断点后,ait+f9返回程序领空
7C80ADA551push ecx
7C80ADA651push ecx
7C80ADA753push ebx
7C80ADA857push edi
7C80ADA98B7D 0C mov edi,dword ptr ss:
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040991B83EC 04 sub esp,4//ait+f9返回后停在此处
0040991E50push eax //向下拉到断尾
0040991F33DBxor ebx,ebx
004099218B45 00 mov eax,dword ptr ss:
004099248B8418 00004000 mov eax,dword ptr ds:
0040992BA9 00000080 test eax,80000000
0040993074 07 je short UnPackMe.00409939
0040993225 FFFF0000 and eax,0FFFF
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040999B55push ebp //这里即是断尾
0040999C83EC FC sub esp,-4
0040999F83EC E0 sub esp,-20
004099A2C3retn //在此f2下断,shift+f9运行到此
004099A30000add byte ptr ds:,al //停在上面的retn处后,f8单步走
004099A50000add byte ptr ds:,al
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040998A60pushad //程序即会向上返回到这里
0040998BE8 05000000 call UnPackMe.00409995 //这里单步F7步入
0040999083B40D 6A18EB05>xor dword ptr ss:,41
00409998F6F9idiv cl
━━━━━━━━━━━━━━━━━━━━━━━━━━
00409995 /EB 05 jmp short UnPackMe.0040999C//这里开始f8单步走
00409997 |41inc ecx
00409998 |F6F9idiv cl
0040999A |2Fdas
0040999B |55push ebp
0040999C \83EC FC sub esp,-4
0040999F83EC E0 sub esp,-20
004099A2C3retn //这里又在此返回
━━━━━━━━━━━━━━━━━━━━━━━━━━
004070000F31rdtsc //程序停在这里,把这里nop掉
0040700233C9xor ecx,ecx //NOP掉上面一句,开始f8单步
0040700403C8add ecx,eax //因为那一句不NOP掉程序就会跑飞
00407006EB 58 jmp short UnPackMe.00407060
00407008E8 DD000000 call UnPackMe.004070EA
0040700D894D FC mov dword ptr ss:,ecx
0040701089F2mov edx,esi
━━━━━━━━━━━━━━━━━━━━━━━━━━
004070600F31rdtsc //还是老规矩NOP掉这一句
004070622BC1sub eax,ecx //nop掉上面一句,开始f8单步走
004070643D FF0F0000 cmp eax,0FFF//因为不nop掉程序就会跑飞
004070690F83 A3000000 jnb UnPackMe.00407112
0040706FE9 84000000 jmp UnPackMe.004070F8
━━━━━━━━━━━━━━━━━━━━━━━━━━
004070F8B8 00174000 mov eax,UnPackMe.00401700 //注意这里已经出现我们的OEP
004070FD33F6xor esi,esi //即解码已经完成
004070FF33DBxor ebx,ebx
004071018A1C06mov bl,byte ptr ds:
0040710480EB FF sub bl,0FF
00407107881C06mov byte ptr ds:,bl
0040710A46inc esi
0040710B83FE 32 cmp esi,32
0040710E^ 75 F1 jnz short UnPackMe.00407101
00407110FFE0jmp eax //单步走到此处即飞向我们的OEP
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040170055push ebp//此处即为我们的OEP
004017018BECmov ebp,esp //运行lordPE把程序dump,在运行lmportRCE修复即可
004017036A FF push -1
0040170568 00254000 push UnPackMe.00402500
0040170A68 86184000 push UnPackMe.00401886 ; jmp to msvcrt._except_handler3
0040170F64:A1 00000000mov eax,dword ptr fs:
0040171550push eax
0040171664:8925 0000000>mov dword ptr fs:,esp





下雪天 发表于 2008-9-27 01:24

**** Hidden Message *****

wgz001 发表于 2008-9-27 09:09

**** Hidden Message *****

lqiulu 发表于 2008-9-27 11:28

**** Hidden Message *****

傻人有傻福 发表于 2008-9-27 11:39

**** Hidden Message *****

wgz001 发表于 2008-9-27 15:35

**** Hidden Message *****

fox2006 发表于 2008-9-27 15:57

吾爱专题脱壳练习----压缩壳练习

--------------------------------------------------------------------------------
【编写程序】:Microsoft Visual C++ v6.0
【调试环境】:WinXP、OllyDbg、PEiD、LordPE、ImportREC
【程序查壳】:查不到壳
―――――――――――――――――――――――――――――――

00401000 > 60 pushad ; OD载入挺在这里,ALT+M,00404000下内存断点,F9
00401001 81C0 5735821F add eax, 1F823557
00401007 60 pushad
00401008 61 popad
00401009 81E8 5735821F sub eax, 1F823557
0040100F 61 popad
00401010 6A 00 push 0

7C9322DD 66:8B50 0C mov dx, word ptr ; 到这里后,ALT+M,00401000下内存断点,F9
7C9322E1 66:8955 B4 mov word ptr , dx
7C9322E5 8D70 10 lea esi, dword ptr
7C9322E8 8975 94 mov dword ptr , esi
7C9322EB 8B55 0C mov edx, dword ptr
7C9322EE 66:F742 02 FFFF test word ptr , 0FFFF
7C9322F4 75 11 jnz short 7C932307
7C9322F6 0FB755 B4 movzx edx, word ptr
7C9322FA 8D34D6 lea esi, dword ptr
7C9322FD 8975 94 mov dword ptr , esi
7C932300 0FB740 0E movzx eax, word ptr

00407101 8A1C06 mov bl, byte ptr ; 到这里后,F8
00407104 80EB FF sub bl, 0FF
00407107 881C06 mov byte ptr , bl
0040710A 46 inc esi
0040710B 83FE 32 cmp esi, 32
0040710E ^ 75 F1 jnz short 00407101
00407110 FFE0 jmp eax ; F4到这里,F8一下就跳到OEP了
00407112 A3 64324000 mov dword ptr , eax
00407117 61 popad
00407118 FF35 64324000 push dword ptr
0040711E 8F00 pop dword ptr
00407120 C740 04 0000000>mov dword ptr , 0
00407127 C742 24 E00000E>mov dword ptr , E00000E0
0040712E 8B46 14 mov eax, dword ptr
00407131 0346 10 add eax, dword ptr
00407134 68 00020000 push 200
00407139 50 push eax

00401700 55 push ebp ; ----这里就是OEP啦,dump吧
00401701 8BEC mov ebp, esp
00401703 6A FF push -1
00401705 68 00254000 push 00402500
0040170A 68 86184000 push 00401886 ; jmp 到 msvcrt._except_handler3
0040170F 64:A1 00000000 mov eax, dword ptr fs:
00401715 50 push eax
00401716 64:8925 0000000>mov dword ptr fs:, esp
0040171D 83EC 68 sub esp, 68
00401720 53 push ebx






[url=http://www.禁止使用网挣网盘/space/show/fox2006/上传·窒í/唯ⅰ惝ר题脱壳痢は°----

unpack 发表于 2008-9-27 16:05

**** Hidden Message *****
页: [1] 2
查看完整版本: 吾爱破解脱壳练习------简单加密壳