吾爱破解脱壳练习------简单加密壳
一转眼我们的脱壳练习已经第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
**** Hidden Message ***** 现在我们又来开始说下断点的方法
这个是我单步跟来觉得最快的断点
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
**** Hidden Message ***** **** Hidden Message ***** **** Hidden Message ***** **** Hidden Message ***** **** Hidden Message ***** 吾爱专题脱壳练习----压缩壳练习
--------------------------------------------------------------------------------
【编写程序】: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/上传·窒í/唯ⅰ惝ר题脱壳痢は°---- **** Hidden Message *****
页:
[1]
2