upx脱壳
本帖最后由 晨曦照相 于 2020-3-17 21:59 编辑使用esp定律、单步到达了下列位置:
0046E7A8 E8 8C040000 call NOTEPAD.0046EC39
0046E7AD^ E9 57FDFFFF jmp NOTEPAD.0046E509
0046E7B2- FF25 34174000 jmp dword ptr ds: ; msvcrt._unlock
0046E7B8- FF25 38174000 jmp dword ptr ds: ; msvcrt.__dllonexit
0046E7BE- FF25 D8174000 jmp dword ptr ds: ; msvcrt._lock
我感觉快到oep了,但是为什么会有三个连起来的jmp?
感觉是作者为了保护程序设置的,如何规避?
jmp直接跳过,断点到jmp的下一行试试看?
或者你把壳发出来,看看什么问题 emmm大概这样就可以了吧 Hacker_Xi 发表于 2020-3-17 18:08
jmp直接跳过,断点到jmp的下一行试试看?
或者你把壳发出来,看看什么问题
好的,我这就把文件发一下https://pan.baidu.com/s/11k14LrbQBnuLNXmiw4yDyw 2333 0046E7A8 E8 8C040000 call NOTEPAD.0046EC39
0046E7AD^ E9 57FDFFFF jmp NOTEPAD.0046E509
0046E7B2- FF25 34174000 jmp dword ptr ds: ; msvcrt._unlock
0046E7B8- FF25 38174000 jmp dword ptr ds: ; msvcrt.__dllonexit
0046E7BE- FF25 D8174000 jmp dword ptr ds: ; msvcrt._lock
0046E7C4 68 1DE84600 push NOTEPAD.0046E81D
0046E7C9 64:FF35 0000000>push dword ptr fs:
0046E7D0 8B4424 10 mov eax,dword ptr ss:
0046E7D4 896C24 10 mov dword ptr ss:,ebp
0046E7D8 8D6C24 10 lea ebp,dword ptr ss:
0046E7DC 2BE0 sub esp,eax
0046E7DE 53 push ebx
0046E7DF 56 push esi
0046E7E0 57 push edi
0046E7E1 A1 F0CB4800 mov eax,dword ptr ds:
0046E7E6 3145 FC xor dword ptr ss:,eax
0046E7E9 33C5 xor eax,ebp
0046E7EB 50 push eax
0046E7EC 8965 E8 mov dword ptr ss:,esp
0046E7EF FF75 F8 push dword ptr ss: ; kernel32.7C816040
0046E7F2 8B45 FC mov eax,dword ptr ss:
0046E7F5 C745 FC FEFFFFF>mov dword ptr ss:,-0x2
0046E7FC 8945 F8 mov dword ptr ss:,eax
0046E7FF 8D45 F0 lea eax,dword ptr ss:
0046E802 64:A3 00000000mov dword ptr fs:,eax
0046E808 C3 retn
0046E809 8B4D F0 mov ecx,dword ptr ss:
0046E80C 64:890D 0000000>mov dword ptr fs:,ecx
0046E813 59 pop ecx ; kernel32.7C816037
0046E814 5F pop edi ; kernel32.7C816037
0046E815 5F pop edi ; kernel32.7C816037
0046E816 5E pop esi ; kernel32.7C816037
0046E817 5B pop ebx ; kernel32.7C816037
0046E818 8BE5 mov esp,ebp
0046E81A 5D pop ebp ; kernel32.7C816037
0046E81B 51 push ecx
0046E81C C3 retn
0046E81D 8BFF mov edi,edi
0046E81F 55 push ebp
0046E820 8BEC mov ebp,esp
0046E822 FF75 14 push dword ptr ss:
0046E825 FF75 10 push dword ptr ss:
0046E828 FF75 0C push dword ptr ss:
0046E82B FF75 08 push dword ptr ss: ; NOTEPAD.<ModuleEntryPoint>
0046E82E 68 C0E14600 push NOTEPAD.0046E1C0 ; ASCII ";\r鹚H"
0046E833 68 F0CB4800 push NOTEPAD.0048CBF0
0046E838 E8 F3FAFFFF call NOTEPAD.0046E330
0046E83D 83C4 18 add esp,0x18
0046E840 5D pop ebp ; kernel32.7C816037
0046E841 C3 retn
0046E842 8BFF mov edi,edi
0046E844 55 push ebp
0046E845 8BEC mov ebp,esp
0046E847 81EC 28030000 sub esp,0x328
0046E84D A3 F00A4900 mov dword ptr ds:,eax
0046E852 890D EC0A4900 mov dword ptr ds:,ecx
0046E858 8915 E80A4900 mov dword ptr ds:,edx ; ntdll.KiFastSystemCallRet
0046E85E 891D E40A4900 mov dword ptr ds:,ebx
0046E864 8935 E00A4900 mov dword ptr ds:,esi
0046E86A 893D DC0A4900 mov dword ptr ds:,edi
0046E870 66:8C15 080B490>mov word ptr ds:,ss
0046E877 66:8C0D FC0A490>mov word ptr ds:,cs
0046E87E 66:8C1D D80A490>mov word ptr ds:,ds
0046E885 66:8C05 D40A490>mov word ptr ds:,es
0046E88C 66:8C25 D00A490>mov word ptr ds:,fs
0046E893 66:8C2D CC0A490>mov word ptr ds:,gs
若是跳过那三个jmp 下面的代码就有很多retn了
并且向上跳转的jmp和向下跳转的jmp在一块,不好下断点也不好f4 004BAF90 >60 pushad
004BAF91 BE 00604800 mov esi,NOTEPAD.00486000
004BAF96 8DBE 00B0F7FF lea edi,dword ptr ds:
004BAF9C 57 push edi
004BAF9D 89E5 mov ebp,esp
004BAF9F 8D9C24 80C1FFFF lea ebx,dword ptr ss:
004BAFA6 31C0 xor eax,eax
004BAFA8 50 push eax
004BAFA9 39DC cmp esp,ebx
004BAFAB^ 75 FB jnz short NOTEPAD.004BAFA8
004BAFAD 46 inc esi
004BAFAE 46 inc esi
这是程序入口
在第二行用esp定律或者单步都能跟到前文所示的地方
新手12138 发表于 2020-3-17 18:37
emmm大概这样就可以了吧
你好,请问你是用的什么方法? 晨曦照相 发表于 2020-3-17 20:51
你好,请问你是用的什么方法?
就是esp定律啊 其实也就是pushf对应的popf 看到那些dll就应该是脱壳好了 我没去管跳过去那些call了 大多时候是不用管的吧 新手12138 发表于 2020-3-17 20:59
就是esp定律啊 其实也就是pushf对应的popf 看到那些dll就应该是脱壳好了 我没去管跳过去那些call了 大多 ...
好的,我试试 新手12138 发表于 2020-3-17 20:59
就是esp定律啊 其实也就是pushf对应的popf 看到那些dll就应该是脱壳好了 我没去管跳过去那些call了 大多 ...
直接在最后一个jmp下断是吗?
还是直接f4
遇到retn要管吗?
页:
[1]
2