一教育软件tkedit.exe用PEID0.93标准检测为vfp&exeNc V5.00 -> Wang JianGuo
flyODBG载入tkedit.exe,OD设置忽略所有导常,脱壳过程如下;
0042E3F4 > 60 pushad
0042E3F5 E8 00000000 call tkedit.0042E3FA
0042E3FA 5D pop ebp
0042E3FB 81ED 06104000 sub ebp,tkedit.00401006
0042E401 8D85 56104000 lea eax,dword ptr ss:[ebp+401056]
0042E407 50 push eax
0042E408 64:FF35 0000000>push dword ptr fs:[0]
0042E40F 64:8925 0000000>mov dword ptr fs:[0],esp
0042E416 CC int3
0042E417 90 nop
0042E418 64:8F05 0000000>pop dword ptr fs:[0] :F2下断,F9运行到此,取消断点
0042E41F 83C4 04 add esp,4
0042E422 74 05 je short tkedit.0042E429
0042E424 75 03 jnz short tkedit.0042E429
0042E426 EB 07 jmp short tkedit.0042E42F
0042E428 59 pop ecx
0042E429 8D9D 00104000 lea ebx,dword ptr ss:[ebp+401000]
0042E42F 53 push ebx
0042E430 5F pop edi
0042E431 2BFA sub edi,edx
0042E433 57 push edi
0042E434 8A03 mov al,byte ptr ds:[ebx]
0042E436 3007 xor byte ptr ds:[edi],al
0042E438 43 inc ebx
0042E439 47 inc edi
0042E43A ^ E2 F8 loopd short tkedit.0042E434
0042E43C 58 pop eax :F4步过
0042E43D 894424 1C mov dword ptr ss:[esp+1C],eax ; tkedit.0042D001
0042E441 61 popad
0042E442 FFE0 jmp eax :跳到0042D001 pushad
0042D001 60 pushad
0042D002 E8 03000000 call tkedit.0042D00A :变形JMP ,F7步过
0042D007 - E9 EB045D45 jmp 459FD4F7
0042D00C 55 push ebp
0042D00D C3 retn
0042D00E E8 01000000 call tkedit.0042D014
0042D013 EB 5D jmp short tkedit.0042D072
0042D015 BB EDFFFFFF mov ebx,-13
0042D01A 03DD add ebx,ebp
0042D01C 81EB 00D00200 sub ebx,2D000
0042D00D C3 retn
0042D00E E8 01000000 call tkedit.0042D014 :变形JMP ,F7步过
0042D013 EB 5D jmp short tkedit.0042D072
0042D015 BB EDFFFFFF mov ebx,-13
0042D01A 03DD add ebx,ebp
0042D01C 81EB 00D00200 sub ebx,2D000
0042D022 83BD 22040000 0>cmp dword ptr ss:[ebp+422],0
0042D029 899D 22040000 mov dword ptr ss:[ebp+422],ebx
0042D02F 0F85 65030000 jnz tkedit.0042D39A
0042D035 8D85 2E040000 lea eax,dword ptr ss:[ebp+42E]
0042D03B 50 push eax
0042D0F9 E8 6E050000 call tkedit.0042D66C
0042D0FE B3 01 mov bl,1
0042D100 80FB 00 cmp bl,0
0042D103 75 5E jnz short tkedit.0042D163
0042D105 FE85 EC000000 inc byte ptr ss:[ebp+EC]
0042D10B 8B3E mov edi,dword ptr ds:[esi]
0042D10D 03BD 22040000 add edi,dword ptr ss:[ebp+422]
0042D113 FF37 push dword ptr ds:[edi]
0042D115 C607 C3 mov byte ptr ds:[edi],0C3
0042D118 FFD7 call edi :EDI=00401000 ; tkedit.00401000
0042D11A 8F07 pop dword ptr ds:[edi]
0042D11C 50 push eax
0042D11D 51 push ecx
0042D11E 56 push esi
0042D11F 53 push ebx
0042D120 8BC8 mov ecx,eax
0042D122 83E9 06 sub ecx,6
0042D12B 33DB xor ebx,ebx
0042D12D 0BC9 or ecx,ecx
0042D12F 74 2E je short tkedit.0042D15F
0042D131 78 2C js short tkedit.0042D15F
0042D133 AC lods byte ptr ds:[esi]
0042D134 3C E8 cmp al,0E8
0042D136 74 0A je short tkedit.0042D142
0042D138 EB 00 jmp short tkedit.0042D13A
0042D13A 3C E9 cmp al,0E9
0042D13C 74 04 je short tkedit.0042D142
0042D13E 43 inc ebx
0042D13F 49 dec ecx
0042D140 ^ EB EB jmp short tkedit.0042D12D
0042D142 8B06 mov eax,dword ptr ds:[esi] :F4步过
0042D152 8906 mov dword ptr ds:[esi],eax
0042D154 83C3 05 add ebx,5
0042D157 83C6 04 add esi,4
0042D15A 83E9 05 sub ecx,5
0042D15D ^ EB CE jmp short tkedit.0042D12D :回跳
0042D15F 5B pop ebx :F4步过
0042D187 F3:A4 rep movs byte ptr es:[edi],byte ptr ds:[esi]
0042D189 5E pop esi
0042D18A 68 00800000 push 8000
0042D18F 6A 00 push 0
0042D191 FFB5 52010000 push dword ptr ss:[ebp+152]
0042D197 FF95 51050000 call dword ptr ss:[ebp+551]
0042D19D 83C6 08 add esi,8
0042D1A0 833E 00 cmp dword ptr ds:[esi],0
0042D1A3 ^ 0F85 1EFFFFFF jnz tkedit.0042D0C7 :回跳
0042D1A9 68 00800000 push 8000
0042D1AE 6A 00 push 0 :F4步过
0042D36B 53 push ebx
0042D36C 8D85 C6040000 lea eax,dword ptr ss:[ebp+4C6]
0042D372 50 push eax
0042D373 57 push edi
0042D374 EB 4A jmp short tkedit.0042D3C0
0042D376 8907 mov dword ptr ds:[edi],eax
0042D378 8385 49050000 0>add dword ptr ss:[ebp+549],4
0042D37F ^ E9 32FFFFFF jmp tkedit.0042D2B6 :回跳
0042D384 8906 mov dword ptr ds:[esi],eax :F4步过
0042D386 8946 0C mov dword ptr ds:[esi+C],eax
0042D389 8946 10 mov dword ptr ds:[esi+10],eax
0042D38C 83C6 14 add esi,14
0042D38F 8B95 22040000 mov edx,dword ptr ss:[ebp+422] ; tkedit.00400000
0042D395 ^ E9 EBFEFFFF jmp tkedit.0042D285 :回跳
0042D39A B8 43050200 mov eax,20543 :F4步过
0042D39F 50 push eax
0042D3A0 0385 22040000 add eax,dword ptr ss:[ebp+422]
0042D3A6 59 pop ecx
0042D3A7 0BC9 or ecx,ecx
0042D3A9 8985 A8030000 mov dword ptr ss:[ebp+3A8],eax
0042D3AF 61 popad :
0042D3B0 75 08 jnz short tkedit.0042D3BA
0042D3B2 B8 01000000 mov eax,1
0042D3B7 C2 0C00 retn 0C
0042D3BA 68 00000000 push 0
0042D3BF C3 retn :返回到00420543
0042D3C0 8B85 26040000 mov eax,dword ptr ss:[ebp+426]
0042D3C6 8D8D 3B040000 lea ecx,dword ptr ss:[ebp+43B]
0042D3CC 51 push ecx
0042D3CD 50 push eax
00420539 06 push es
0042053A 8187 100B8D61 0>add dword ptr ds:[edi+618D0B10],60E17708
00420544 E8 00000000 call tkedit.00420549
00420549 5D pop ebp
0042054A 81ED 06104000 sub ebp,tkedit.00401006
00420550 8D85 56104000 lea eax,dword ptr ss:[ebp+401056]
00420556 50 push eax
00420557 64:FF35 0000000>push dword ptr fs:[0]
0042055E 64:8925 0000000>mov dword ptr fs:[0],esp
00420565 CC int3 :中断检测
00420566 90 nop
00420567 64:8F05 0000000>pop dword ptr fs:[0] :F2下断,F9运行到此,取消断点
0042056E 83C4 04 add esp,4
00420571 74 05 je short tkedit.00420578
00420573 75 03 jnz short tkedit.00420578
00420575 EB 07 jmp short tkedit.0042057E
00420577 59 pop ecx
00420578 8D9D 00104000 lea ebx,dword ptr ss:[ebp+401000]
0042057E 53 push ebx
0042057F 5F pop edi
00420580 2BFA sub edi,edx
00420582 57 push edi
00420583 8A03 mov al,byte ptr ds:[ebx]
00420585 3007 xor byte ptr ds:[edi],al
00420587 43 inc ebx
00420588 47 inc edi
00420589 ^ E2 F8 loopd short tkedit.00420583
0042058B 58 pop eax :F4步过
0042058C 894424 1C mov dword ptr ss:[esp+1C],eax
00420590 61 popad
00420591 FFE0 jmp eax :跳向0041F3C8 飞向光明之巅?
0041F3C8 55 push ebp :OD插件DUMP
0041F3C9 8BEC mov ebp,esp
0041F3CB B9 08000000 mov ecx,8
0041F3D0 6A 00 push 0
0041F3D2 6A 00 push 0
0041F3D4 49 dec ecx
0041F3D5 ^ 75 F9 jnz short tkedit.0041F3D0
0041F3D7 53 push ebx
0041F3D8 56 push esi
0041F3D9 57 push edi
0041F3DA B8 38F34100 mov eax,tkedit.0041F338
0041F3DF E8 1871FEFF call tkedit.004064FC
0041F3E4 33C0 xor eax,eax
0041F3E6 55 push ebp
0041F3E7 68 64024200 push tkedit.00420264
运行ImportREC 1.6,选择这个进程。把OEP改为001F3C8,点IT AutoSearch
点获取输入表提示指针00021030为分假
FThunk: 00021030 NbFunc: 00000002
RVA: 00021030 ? PTR: 00402108
RVA: 00021034 ? PTR: 00402298
请问如何修复.
软件下载链接:
http://free.ys168.com/?biosdiy shell目录中20041WYGmn.rar
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)