- UID
- 7230
注册时间2006-1-19
阅读权限20
最后登录1970-1-1
以武会友
 
TA的每日心情 | 怒 2022-1-22 22:38 |
---|
签到天数: 16 天 [LV.4]偶尔看看III
|
小儿垂钓教第一课的作业==四种方法脱作业一的壳
学员 小儿垂钓 教 第一课的作业
四种方法脱作业一的壳
=================================================================
查壳:
用Peid查壳为:ASPack 2.12 -> Alexey Solodovnikov
步骤:将目标程序 作业1 用鼠标左键托到Peid上,显示为:
ASPack 2.12 -> Alexey Solodovnikov
=================================================================
脱壳:我会四种方法!!
方法一 用ESP定律脱壳。
步骤:用OD载入程序,停在:
00405001 > 60 pushad
00405002 E8 03000000 call 作业1.0040500A
00405007 - E9 EB045D45 jmp 459D54F7
0040500C 55 push ebp
0040500D C3 retn
0040500E E8 01000000 call 作业1.00405014
用F8单步跟踪!(按一次ESP的值突现)
在Command中下断点 : dd 12ffa4
在内存框中
0012FFA4 7C930738 ntdll.7C930738 <--- 右键--硬件访问word
0012FFA8 FFFFFFFF
0012FFAC 0012FFF0
0012FFB0 0012FFC4
0012FFB4 7FFDA000
0012FFB8 7C92EB94 ntdll.KiFastSystemCallRet
然后再F8 单步跟踪来到
004053B0 /75 08 jnz short 作业1.004053BA
004053B2 |B8 01000000 mov eax,1
004053B7 |C2 0C00 retn 0C
004053BA \68 28114000 push 作业1.00401128
004053BF C3 retn <--返回程序的入口点
F8 单步跟踪来到
00401128 68 541C4000 push 作业1.00401C54 ; SFX 代码真实入口点 右键脱壳在当前进程!
0040112D E8 F0FFFFFF call 作业1.00401122 ; jmp to msvbvm60.ThunRTMain
00401132 0000 add byte ptr ds:[eax],al
00401134 0000 add byte ptr ds:[eax],al
00401136 0000 add byte ptr ds:[eax],al
00401138 3000 xor byte ptr ds:[eax],al
0040113A 0000 add byte ptr ds:[eax],al
脱壳后的文件可以运行!为Microsoft Visual Basic 5.0 / 6.0 所写的程序!
=================================================================
方法二:用Q-unpack
打开文件 --- 检测----脱壳就ok了,真的很简单唉!!!
=================================================================
方法三用od单步跟踪!
00405001 > 60 pushad
00405002 E8 03000000 call 作业1.0040500A <--用F7过,否则跑飞了!
00405007 - E9 EB045D45 jmp 459D54F7
0040500C 55 push ebp
0040500D C3 retn
0040500E E8 01000000 call 作业1.00405014
00405013 EB 5D jmp short 作业1.00405072
然后
0040500A 5D pop ebp ; 作业1.00405007
0040500B 45 inc ebp
0040500C 55 push ebp
0040500D C3 retn
00405008 /EB 04 jmp short 作业1.0040500E
0040500A |5D pop ebp
0040500B |45 inc ebp
0040500C |55 push ebp
0040500D |C3 retn
0040500E \E8 01000000 call 作业1.00405014 <--用F7过,否则跑飞了!
00405014 5D pop ebp ; 作业1.00405013
00405015 BB EDFFFFFF mov ebx,-13
0040501A 03DD add ebx,ebp
0040501C 81EB 00500000 sub ebx,5000
00405022 83BD 22040000 00 cmp dword ptr ss:[ebp+422],0
00405029 899D 22040000 mov dword ptr ss:[ebp+422],ebx
0040513C /74 04 je short 作业1.00405142
0040513E |43 inc ebx
0040513F |49 dec ecx
00405140 ^|EB EB jmp short 作业1.0040512D
00405142 \8B06 mov eax,dword ptr ds:[esi] 断点 运行到所选
00405144 EB 00 jmp short 作业1.00405146
0040515A 83E9 05 sub ecx,5
0040515D ^ EB CE jmp short 作业1.0040512D
0040515F 5B pop ebx 断点 运行到所选
00405160 5E pop esi
004053AF 61 popad
004053B0 75 08 jnz short 作业1.004053BA
004053B2 B8 01000000 mov eax,1
004053B7 C2 0C00 retn 0C
004053BA 68 00000000 push 0
004053BF C3 retn 返回程序入口点
F8 就ok了
然后dump!
=================================================================
方法四
直达入口法ctrl+F 输入 popad
004053AF 61 popad
004053B0 75 08 jnz short 作业1.004053BA
004053B2 B8 01000000 mov eax,1
004053B7 C2 0C00 retn 0C
004053BA 68 00000000 push 0
004053BF C3 retn 返回程序入口点
然后就和上面的一样了,呵呵!!
程序语言为 :Microsoft Visual Basic 5.0 / 6.0
==================================================================================================================================
最后疑问:
用od很方便
但是用w32dasm分析时,怎么复制代码呀?有谁知道呀?给我指点指点!!
qq:380269307(飘云阁学员)
如果对以上有疑问请加qq或者在飘云阁的学员群讨论!
[ 本帖最后由 小儿垂钓 于 2006-3-15 10:40 编辑 ] |
|