LOCK98 V1.00.28 脱壳 —— 反编译专家UnFoxAll 2.10版
下载页面: http://secrecy.ayinfo.ha.cn/soft/110.htm
软件大小: 1M
【软件简介】:可以完整的从FOX所有版本(FoxBase,FoxPro2.x for DOS/Windows,Visual FoxPro 3.0,Visual FoxPro 5.0,Visual 6.0)开发的EXE,.APP,.FOX,.SPX,.MPX,.QPX,.PJT及其他文件中完整反编译出所有 源程序及其他文件。是反编译工作的又一利器。
【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【调试环境】:WinXP、Ollydbg1.09、PEiD、LordPE
—————————————————————————————————
【脱壳过程】:
这个版本的UnFoxAll是以前从白菜乐园下载的,看雪也有,不清楚是否也是加的这种壳。
LOCK98 V1.00.28 现在很少见了,看说明是软盘加密的程序,但是这个unfoxall.exe用FI看显示是“LOCK98 v1.00.28 keenvim _LOCK98_”,偶不清楚啦,姑且当其是这个壳吧,手脱试试。用PEID看却显示“UPX 0.80-0.84”,晕,可能是加了2层壳,刚开始的代码不是典型的UPX,而最后的入口方式倒是UPX的典型POPAD、JMP。
用Ollydbg手动脱壳,老规矩:载入后弹出“是压缩代码——要继续进行分析吗?”,点“否”。
005FE0A0 55 push ebp
====>进入OD后断在这!
如果一步步走的话会有数十个LOOP循环用SMC来还原程序的代码,很长。这段可能就是LOCK98代码。
偶们没必要这样费时跟踪。:-) 下断:BP LoadLibraryA F9运行,断下!然后取消断点
77E605D8 837C24 04 00 cmp dword ptr ss:[esp+4],0
====>断在这!CTRL+F9执行到返回
77E605DD 53 push ebx
77E605DE 56 push esi
77E605DF 74 19 je short kernel32.77E605FA
77E605E1 68 9C5BE777 push kernel32.77E75B9C ; ASCII "twain_32.dll"
77E605E6 FF7424 10 push dword ptr ss:[esp+10]
77E605EA FF15 9013E477 call dword ptr ds:[<&ntdll._strcmpi>] ; ntdll._stricmp
77E605F0 85C0 test eax,eax
77E605F2 59 pop ecx
77E605F3 59 pop ecx
77E605F4 0F84 76AF0100 je kernel32.77E7B570
77E605FA 6A 00 push 0
77E605FC 6A 00 push 0
77E605FE FF7424 14 push dword ptr ss:[esp+14]
77E60602 E8 B1FFFFFF call kernel32.LoadLibraryExA
77E60607 5E pop esi
77E60608 5B pop ebx
77E60609 C2 0400 retn 4
====>返回到 005F7128
————————————————————————
005F7110 74 3A je short unfoxall.005F714C
005F7112 8B5F 04 mov ebx,dword ptr ds:[edi+4]
005F7115 8D8430 8C881F00 lea eax,dword ptr ds:[eax+esi+1F888C]
005F711C 01F3 add ebx,esi
005F711E 50 push eax
005F711F 83C7 08 add edi,8
005F7122 FF96 68891F00 call dword ptr ds:[esi+1F8968]
====>这个CALL KERNEL LoadLibraryA
005F7128 92 xchg eax,edx
005F7129 8A07 mov al,byte ptr ds:[edi]
005F712B 47 inc edi
005F712C 08C0 or al,al
005F712E 74 DC je short unfoxall.005F710C
005F7130 52 push edx
005F7131 89F9 mov ecx,edi
005F7133 57 push edi
005F7134 48 dec eax
005F7135 F2:AE repne scas byte ptr es:[edi]
005F7137 52 push edx
005F7138 FF96 6C891F00 call dword ptr ds:[esi+1F896C]
====>这个CALL KERNEL GetProcAddress
005F713E 5A pop edx
005F713F 09C0 or eax,eax
005F7141 74 07 je short unfoxall.005F714A
005F7143 8903 mov dword ptr ds:[ebx],eax
005F7145 83C3 04 add ebx,4
005F7148 EB DF jmp short unfoxall.005F7129
====>注意这个循环!向上找发现005F7110可以跳下去!
005F714A 61 popad
005F714B C3 retn
005F714C 8D5E FC lea ebx,dword ptr ds:[esi-4]
====>这里设断 F9断在此处
005F714F 83C7 04 add edi,4
005F7152 31C0 xor eax,eax
005F7154 8A07 mov al,byte ptr ds:[edi]
005F7156 47 inc edi
005F7157 09C0 or eax,eax
005F7159 74 22 je short unfoxall.005F717D
005F715B 3C EF cmp al,0EF
005F715D 77 11 ja short unfoxall.005F7170
005F715F 01C3 add ebx,eax
005F7161 8B03 mov eax,dword ptr ds:[ebx]
005F7163 86C4 xchg ah,al
005F7165 C1C0 10 rol eax,10
005F7168 86C4 xchg ah,al
005F716A 01F0 add eax,esi
005F716C 8903 mov dword ptr ds:[ebx],eax
005F716E EB E2 jmp short unfoxall.005F7152
====>注意这个循环!向上找发现005F7159可以跳下去!
005F7170 24 0F and al,0F
005F7172 C1E0 10 shl eax,10
005F7175 66:8B07 mov ax,word ptr ds:[edi]
005F7178 83C7 02 add edi,2
005F717B EB E2 jmp short unfoxall.005F715F
005F717D 61 popad
====>这里设断 F9断在此处
005F717E E9 49DFEAFF jmp unfoxall.004A50CC
====>飞向光明之巅!
————————————————————————
004A50CC 55 push ebp
====>在这儿用LordPE完全DUMP这个进程
004A50CD 8BEC mov ebp,esp
004A50CF 83C4 F4 add esp,-0C
004A50D2 53 push ebx
004A50D3 B8 144E4A00 mov eax,unfoxall.004A4E14
004A50D8 E8 E314F6FF call unfoxall.004065C0
004A50DD 8B1D B4894A00 mov ebx,dword ptr ds:[4A89B4]
004A50E3 8B03 mov eax,dword ptr ds:[ebx]
004A50E5 E8 DA4BFAFF call unfoxall.00449CC4
———————————————————————
运行ImportREC,选择这个进程。把OEP改为000A50CC,点IT AutoSearch,点“Get Import”,所有的函数都是有效的。FixDump,正常运行! 629K ->2.01M 用FI看脱壳后的程序是Delphi编写,可以跨平台运行,能够正常反编译其他VF的例子。如果不是LOCK98,还请大家谅解。 :-)
—————————————————————————————————
, _/
/| _.-~/ _ , 青春都一饷
( /~ / ~-._ |
`\ _/ ~ ) 忍把浮名
_-~~~-.) )__/;;,. _ //'
/'_, --~ ~~~- ,;;___( (.-~~~-. 换了破解轻狂
`~ _( ,_..-- ( ,;'' / ~-- /._`
/~~//' /' `~ ) /--.._, )_ `~
" `~" " `" /~'` `\~~
" " "~' ""
Cracked By 巢水工作坊——fly [OCN][FCG]
2003-10-28 15:35