能力值:
( LV2,RANK:10 )
|
-
-
2 楼
手脱二:
壳名:PEBundle 2.0x - 2.4x-> Jeremy Collake [Overlay]
可以用SFX跟踪,直接到OEP
00416E82 55 push ebp ; SFX 代码真实入口点
00416E83 8BEC mov ebp,esp
00416E85 6A FF push -1
00416E87 68 706B4600 push XXXX.00466B70
此壳是自解压DLL PEBundle 2.0x - 2.4x-> Jeremy Collake [Overlay]
倒出后无法运行,顺便请教一下各位老师
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
手脱三:双壳
第一层壳名:PECompact 2.x -> Jeremy Collake //到脱壳下载区有专用工具Unpecomp2.exe
第二层壳名:PEncrypt 3.1 Final -> junkcode //练习手壳吧,不练没机会了
1,OD载入使用esp定律
一次到达OEP入口
0041B27E > $ 55 PUSH EBP
0041B27F ? 8BEC MOV EBP,ESP
0041B281 ? 6A FF PUSH -1
0041B283 . 68 48744400 PUSH UnPacked.00447448
0041B288 ? 68 34074200 PUSH UnPacked.00420734 ; 入口地址
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
呵呵.
你的脱壳级别和我差不多..
我也是脱壳新手呢..只知道用esp定律和code段法。
不过我比较钟情于脱壳机
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
手脱四:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
PEID:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
使用ESP定律:硬件断点->DUMP->ok
peid:查壳 Microsoft Visual C++ 6.0 SPx Method 1
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo 另一种脱壳方法:
在OD载入停止处如下:
0040E8C0 > $ 60 PUSHAD //发现有pushad 相对应的应该有一个popad
0040E8C1 . BE 15B04000 MOV ESI,UPX.0040B015
0040E8C6 . 8DBE EB5FFFFF LEA EDI,DWORD PTR DS:[ESI+FFFF5FEB]
0040E8CC . 57 PUSH EDI
0040E8CD . 83CD FF OR EBP,FFFFFFFF
查找命令->输入popad->查找到的行下断F2->F9->F8单步到OEP
004010CC 55 PUSH EBP
004010CD 8BEC MOV EBP,ESP
004010CF 83EC 44 SUB ESP,44
004010D2 56 PUSH ESI
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
这个软件的 自动脱壳机 都有了 呵呵
挑战一下 别的新壳吧 ...
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
Themida|WinLicense V1.0.0.5 - V1.9.x.x (Modify) *
//手工脱壳失败,强壳,传说中的虚拟机,做个标记,会有一天把他脱光的。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
手脫 -- PECompact 2.x -> Jeremy Collake
PEID: PECompact 2.x -> Jeremy Collake
脱壳工具下载有专用的脱壳工具,这里做为练手。
OD载入加了壳的程序.
入口点: --- 这里很怪如果你F8走, 走到00401016 就会飞
1.先忽略所有异常.
2. F8 行两步 , 这里可以用ESP定律
00401000 > B8 DC2B4100 MOV EAX,rcrawler.00412BDC
00401005 50 PUSH EAX
00401006 64:FF35 0000000>PUSH DWORD PTR FS:[0]
0040100D 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
00401014 33C0 XOR EAX,EAX
00401016 8908 MOV DWORD PTR DS:[EAX],ECX
00401018 50 PUSH EAX
00401019 45 INC EBP
0040101A 43 INC EBX
0040101B 6F OUTS DX,DWORD PTR ES:[EDI] ; I/O 命令
0040101C 6D INS DWORD PTR ES:[EDI],DX ; I/O 命令
0040101D 70 61 JO SHORT Adler32C.00401080
ESP定律之後 -- 取消断点 -- 就到了这里
7C968F86 3B45 F8 CMP EAX,DWORD PTR SS:[EBP-8]
7C968F89 72 05 JB SHORT ntdll.7C968F90
7C968F8B 3B45 F4 CMP EAX,DWORD PTR SS:[EBP-C]
7C968F8E 72 64 JB SHORT ntdll.7C968FF4
7C968F90 50 PUSH EAX
7C968F91 E8 FDFDFFFF CALL ntdll.7C968D93
7C968F96 84C0 TEST AL,AL
7C968F98 74 5A JE SHORT ntdll.7C968FF4
7C968F9A F605 FAB6997C 8>TEST BYTE PTR DS:[7C99B6FA],80
7C968FA1 ^ 0F85 7AFDFFFF JNZ ntdll.7C968D21
ALT+M 到内存找到CODE段 下段 再F9
来到这里 >
00412BF1 C602 E9 MOV BYTE PTR DS:[EDX],0E9
00412BF4 83C2 05 ADD EDX,5
00412BF7 2BCA SUB ECX,EDX
00412BF9 894A FC MOV DWORD PTR DS:[EDX-4],ECX
00412BFC 33C0 XOR EAX,EAX
00412BFE C3 RETN
F8 几步就到了这里 > 这里可以再用ESP定律
7C923F17 64:8B25 0000000>MOV ESP,DWORD PTR FS:[0]
7C923F1E 64:8F05 0000000>POP DWORD PTR FS:[0]
7C923F25 8BE5 MOV ESP,EBP
7C923F27 5D POP EBP
7C923F28 C2 1400 RETN 14
就到了这里 > 先取消断点 > 下面就看到OEP入口點
00412C0F 53 PUSH EBX
00412C10 51 PUSH ECX
00412C11 57 PUSH EDI
00412C12 56 PUSH ESI
00412C13 52 PUSH EDX
00412C14 8D98 57120010 LEA EBX,DWORD PTR DS:[EAX+10001257]
00412C1A 8B53 18 MOV EDX,DWORD PTR DS:[EBX+18]
00412C1D 52 PUSH EDX
00412C1E 8BE8 MOV EBP,EAX
00412C20 6A 40 PUSH 40
00412C22 68 00100000 PUSH 1000
00412C27 FF73 04 PUSH DWORD PTR DS:[EBX+4]
00412C2A 6A 00 PUSH 0
00412C2C 8B4B 10 MOV ECX,DWORD PTR DS:[EBX+10]
00412C2F 03CA ADD ECX,EDX
00412C31 8B01 MOV EAX,DWORD PTR DS:[ECX]
00412C33 FFD0 CALL EAX
00412C35 5A POP EDX
00412C36 8BF8 MOV EDI,EAX
00412C38 50 PUSH EAX
00412C39 52 PUSH EDX
00412C3A 8B33 MOV ESI,DWORD PTR DS:[EBX]
00412C3C 8B43 20 MOV EAX,DWORD PTR DS:[EBX+20]
00412C3F 03C2 ADD EAX,EDX
00412C41 8B08 MOV ECX,DWORD PTR DS:[EAX]
00412C43 894B 20 MOV DWORD PTR DS:[EBX+20],ECX
00412C46 8B43 1C MOV EAX,DWORD PTR DS:[EBX+1C]
00412C49 03C2 ADD EAX,EDX
00412C4B 8B08 MOV ECX,DWORD PTR DS:[EAX]
00412C4D 894B 1C MOV DWORD PTR DS:[EBX+1C],ECX
00412C50 03F2 ADD ESI,EDX
00412C52 8B4B 0C MOV ECX,DWORD PTR DS:[EBX+C]
00412C55 03CA ADD ECX,EDX
00412C57 8D43 1C LEA EAX,DWORD PTR DS:[EBX+1C]
00412C5A 50 PUSH EAX
00412C5B 57 PUSH EDI
00412C5C 56 PUSH ESI
00412C5D FFD1 CALL ECX
00412C5F 5A POP EDX
00412C60 58 POP EAX
00412C61 0343 08 ADD EAX,DWORD PTR DS:[EBX+8]
00412C64 8BF8 MOV EDI,EAX
00412C66 52 PUSH EDX
00412C67 8BF0 MOV ESI,EAX
00412C69 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4]
00412C6C 83C0 04 ADD EAX,4
00412C6F 2BF0 SUB ESI,EAX
00412C71 8956 08 MOV DWORD PTR DS:[ESI+8],EDX
00412C74 8B4B 0C MOV ECX,DWORD PTR DS:[EBX+C]
00412C77 894E 14 MOV DWORD PTR DS:[ESI+14],ECX
00412C7A FFD7 CALL EDI
00412C7C 8985 3F130010 MOV DWORD PTR SS:[EBP+1000133F],EAX
00412C82 8BF0 MOV ESI,EAX
00412C84 8B4B 14 MOV ECX,DWORD PTR DS:[EBX+14]
00412C87 5A POP EDX
00412C88 EB 0C JMP SHORT rcrawler.00412C96
00412C8A 03CA ADD ECX,EDX
00412C8C 68 00800000 PUSH 8000
00412C91 6A 00 PUSH 0
00412C93 57 PUSH EDI
00412C94 FF11 CALL DWORD PTR DS:[ECX]
00412C96 8BC6 MOV EAX,ESI
00412C98 5A POP EDX
00412C99 5E POP ESI
00412C9A 5F POP EDI
00412C9B 59 POP ECX
00412C9C 5B POP EBX
00412C9D 5D POP EBP
00412C9E FFE0 JMP EAX
看到这个地址就知到啦 跳去 >> OEP 入口 F8吧
好这里就是OEP了 -- DUMP出来
00408BC8 55 PUSH EBP
00408BC9 8BEC MOV EBP,ESP
00408BCB 83C4 F0 ADD ESP,-10
00408BCE 53 PUSH EBX
00408BCF B8 708B4000 MOV EAX,rcrawler.00408B70
00408BD4 E8 8FB9FFFF CALL rcrawler.00404568
友情提示:用此方法脱过壳后会有一个无效指针,修复无效指针的函数名是GetProcAddress 模块:kernel32.dll
1 000492E0 kernel32.dll 00F1 FreeLibrary
0 000492E4 ? 0000 003A0148 //此处为无效指针
1 000492E8 kernel32.dll 01DF GetVersionExA
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
受打击了,又碰到一个壳! 标记一下!
Xtreme-Protector 1.05
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
很想知道新手需要脱什么难度的壳才能获得邀请码,是不是非得强壳之一呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
Themida|WinLicense V1.0.0.5 - V1.9.x.x (Modify) *
脱不了!
|