【求助】PEBundle 2.0x - 2.4x-> Jeremy Collake [Overlay]脱壳后不能运行,请指教
现走比遍,看看小弟哪里错了,请指教
peid查壳为PEBundle 2.0x - 2.4x-> Jeremy Collake [Overlay]
od载入如下
0058D000 > 9C pushfd
0058D001 60 pushad
0058D002 E8 02000000 call 0058D009
0058D007 33C0 xor eax, eax
0058D009 8BC4 mov eax, esp
0058D00B 83C0 04 add eax, 4
0058D00E 93 xchg eax, ebx
0058D00F 8BE3 mov esp, ebx
0058D011 8B5B FC mov ebx, dword ptr [ebx-4]
0058D014 81EB 07204000 sub ebx, 00402007
0058D01A 87DD xchg ebp, ebx
---------------------------
按alt+m
找到 .rsrc处
按f2下断,f9运行,到这里
00541E81 8B0E mov ecx, dword ptr [esi]
00541E83 8B7E 10 mov edi, dword ptr [esi+10]
00541E86 0BC9 or ecx, ecx
00541E88 75 02 jnz short 00541E8C
00541E8A 8BCF mov ecx, edi
00541E8C 03CA add ecx, edx
00541E8E 03FA add edi, edx
00541E90 8B46 0C mov eax, dword ptr [esi+C]
00541E93 85C0 test eax, eax
00541E95 0F84 B3000000 je 00541F4E
00541E9B 03C2 add eax, edx
00541E9D 51 push ecx
------------------------------
按alt+m
找到 .rsrc处 上面有个upx0区段,地址是00410000(在此处按f2,再按f9运行)
到这里
005363FB 8807 mov byte ptr [edi], al
005363FD 47 inc edi
005363FE 01DB add ebx, ebx
00536400 75 07 jnz short 00536409
00536402 8B1E mov ebx, dword ptr [esi]
00536404 83EE FC sub esi, -4
00536407 11DB adc ebx, ebx
00536409 ^ 72 ED jb short 005363F8
0053640B B8 01000000 mov eax, 1
00536410 01DB add ebx, ebx
00536412 75 07 jnz short 0053641B
00536414 8B1E mov ebx, dword ptr [esi]
00536416 83EE FC sub esi, -4
---------------------------
f8单步走到这里(看到下边有个popad了)
在00536557处按f2,f9运行,按f2取消断点,按f8单步----激动人心的时刻到了,马上到oep了)
0053653B 57 push edi ; 哈哈.00533009
0053653C 48 dec eax
0053653D F2:AE repne scas byte ptr es:[edi]
0053653F 55 push ebp
00536540 FF96 1CED1300 call dword ptr [esi+13ED1C]
00536546 09C0 or eax, eax
00536548 74 07 je short 00536551
0053654A 8903 mov dword ptr [ebx], eax
0053654C 83C3 04 add ebx, 4
0053654F ^ EB D8 jmp short 00536529(这里这个跳不能往回跳)
00536551 FF96 20ED1300 call dword ptr [esi+13ED20]
00536557 61 popad(这里是出口)
00536558 - E9 15EBEDFF jmp 00415072(这里是oep的地址了)
0053655D 0000 add byte ptr [eax], al
0053655F 0000 add byte ptr [eax], al
00536561 0000 add byte ptr [eax], al
00536563 0000 add byte ptr [eax], al
00536565 0000 add byte ptr [eax], al
00536567 0000 add byte ptr [eax], al
00536569 0000 add byte ptr [eax], al
----------------------
跳转后到程序oep,来到了这里
00415072 55 push ebp
00415073 8BEC mov ebp, esp
00415075 6A FF push -1
00415077 68 E09B4500 push 00459BE0
0041507C 68 D6514100 push 004151D6 ; jmp 到 msvcrt._except_handler3
00415081 64:A1 00000000 mov eax, dword ptr fs:[0]
00415087 50 push eax
00415088 64:8925 0000000>mov dword ptr fs:[0], esp
0041508F 83EC 68 sub esp, 68
00415092 53 push ebx
00415093 56 push esi
00415094 57 push edi
00415095 8965 E8 mov dword ptr [ebp-18], esp
00415098 33DB xor ebx, ebx
0041509A 895D FC mov dword ptr [ebp-4], ebx
0041509D 6A 02 push 2
0041509F FF15 087A4500 call dword ptr [457A08] ; msvcrt.__set_app_type
004150A5 59 pop ecx
004150A6 830D 9CF14600 F>or dword ptr [46F19C], FFFFFFFF
004150AD 830D A0F14600 F>or dword ptr [46F1A0], FFFFFFFF
004150B4 FF15 0C7A4500 call dword ptr [457A0C] ; msvcrt.__p__fmode
vc的代码,好了可以dump了,按右键-dump出来拉,检查是Microsoft Visual C++ 6.0脱壳完毕
但是不能运行,还没有关闭od,打开importrec,选取进程,oep输入15072;点获得输入信息,选取无效函数,剪掉,修复dump出的那个文件,但是还是运行不了,郁闷了;那我用loadpe
那我重新来,打开loadpe,幸好还没有关闭od,那我就选取进程,点右键-完整转存,保存为dump.exe,这次更郁闷了,不能运行,经检测还是PEBundle 2.0x - 2.4x-> Jeremy Collake [Overlay]的壳
望大哥赐教
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)