1. 用PEiD查看软件无壳
2. 用Olldbg打开到
00401030 E9 68570100 jmp Zotob.0041679D
00401035 42 79 44 77 6>ascii "ByDwing@",0
0040103E 00 db 00
0040103F 00 db 00
00401040 50 45 00 ascii "PE",0
00401043 00 db 00
00401044 4C db 4C
F8 调转到
0041679D BE 88014000 mov esi,Zotob.00400188
004167A2 AD lods dword ptr ds:[esi]
004167A3 8BF8 mov edi,eax
004167A5 95 xchg eax,ebp
004167A6 AD lods dword ptr ds:[esi]
004167A7 91 xchg eax,ecx
004167A8 F3:A5 rep movs dword ptr es:[edi],dword ptr ds:[esi]
004167AA AD lods dword ptr ds:[esi]
004167AB B5 1C mov ch,1C
004167AD F3:AB rep stos dword ptr es:[edi]
004167AF AD lods dword ptr ds:[esi]
004167B0 50 push eax
004167B1 97 xchg eax,edi
004167B2 51 push ecx
004167B3 58 pop eax
004167B4 8D5485 5C lea edx,dword ptr ss:[ebp+eax*4+5C]
004167B8 FF16 call dword ptr ds:[esi]
004167BA 72 57 jb short Zotob.00416813 <=========这里
004167BC 2C 03 sub al,3
3. 将光标移动到004167BC这一行,F4执行到这里,然后继续找下一个call用F4执行到call后的第一条指令
当执行到下面的call处(1)时,在下一条指令(0041696c)处按F4, 发现程序执行起来了
00416943 46 inc esi
00416944 AD lods dword ptr ds:[esi]
00416945 85C0 test eax,eax
00416947 - 0F84 BD0EFFFF je Zotob.0040780A <=============关键跳转
0041694D 56 push esi
0041694E 97 xchg eax,edi
0041694F FF53 FC call dword ptr ds:[ebx-4]
00416952 95 xchg eax,ebp
00416953 AC lods byte ptr ds:[esi]
00416954 84C0 test al,al
00416956 ^ 75 FB jnz short Zotob.00416953
00416958 3806 cmp byte ptr ds:[esi],al
0041695A ^ 74 E7 je short Zotob.00416943
0041695C 8BC6 mov eax,esi
0041695E 79 05 jns short Zotob.00416965
00416960 46 inc esi
00416961 33C0 xor eax,eax
00416963 66:AD lods word ptr ds:[esi]
00416965 50 push eax
00416966 55 push ebp
00416967 FF13 call dword ptr ds:[ebx]
00416969 AB stos dword ptr es:[edi] <=============(1)
0041696A ^ EB E7 jmp short Zotob.00416953
0041696C 50 push eax <=============(2)
5. 从(1)处向上看程序,发现有一个长跳转je 0040780a, 重新执行程序,在(00416947)处用F2下个短点,
按F9 九次时跳转实现,F8跳转到
0040780A 55 db 55 ; CHAR 'U'
0040780B 8B db 8B
0040780C EC db EC
0040780D 6A db 6A ; CHAR 'j'
0040780E FF db FF
0040780F 68 db 68 ; CHAR 'h'
00407810 60 db 60 ; CHAR '`'
00407811 82 db 82
00407812 40 db 40 ; CHAR '@'
6. Dump程序
7. 用ImportRec 修复导入表。
8. 脱壳完成。
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!