【脱文标题】 计算机资料大全 3.0 Overlay 反脱壳分析+Ctrl+F8 智取NAG
【破文作者】 weiyi75[Dfcg]
【作者邮箱】 weiyi75@sohu.com
【作者主页】 Dfcg官方大本营
【使用工具】 Peid,UpxShell,olldbg,winhex
【破解平台】 WinNT/2000/XP
【软件名称】 计算机资料大全 3.0
【下载页面】 http://downloads.daqing.net/
【软件大小】 13.23M
【软件限制】 Nag,3次试用
【软件简介】 本软件是上网时下载的精彩文章,内容涉及到电脑技巧精彩文章、黑客手册、手机类、实用软件超级技巧、网络超级技巧、笑话等方面的知识,让您在轻松学习时候,不知不觉的增长知识!全方位、非商业而且有自己独特风格的文摘。《计算机资料大全》1.0版是免费软件,您可以任意传播,复制,但不得修改任何内容!这个软件我看没有终结版,欢迎大家给我提供资料,如果侵犯了哪位前辈的权利,来信通知我,立即纠正.
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解分析】
首先Peid 查壳,为 UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo [Overlay],注意到[Overlay],然后用Upxshell轻松脱壳,正常运行。
幸运的是它是个普通Upx壳,我们假设它是一个变形Upx壳。
004A1430 > 60 PUSHAD //Upx外壳入口 004A1431 BE 00804600 MOV ESI,《计算机.00468000 004A1436 8DBE 0090F9FF LEA EDI,DWORD PTR DS:[ESI+FFF99000] 004A143C C787 10270800 1>MOV DWORD PTR DS:[EDI+82710],F82C9510 004A1446 57 PUSH EDI 004A1447 83CD FF OR EBP,FFFFFFFF 004A144A EB 0E JMP SHORT 《计算机.004A145A 004A144C 90 NOP .........................................................
直接Ctrl+F 向下找Popad
004A159A 61 POPAD 004A159B ^ E9 64DEFDFF JMP 《计算机.0047F404 //直接F4下来。
0047F404 55 PUSH EBP //到达Oep,Loadpe脱壳。 0047F405 8BEC MOV EBP,ESP 0047F407 83C4 F0 ADD ESP,-10 0047F40A 53 PUSH EBX 0047F40B B8 A4F14700 MOV EAX,《计算机.0047F1A4 0047F410 E8 CF76F8FF CALL 《计算机.00406AE4 0047F415 33C0 XOR EAX,EAX 0047F417 55 PUSH EBP 0047F418 68 53F54700 PUSH 《计算机.0047F553 0047F41D 64:FF30 PUSH DWORD PTR FS:[EAX] 0047F420 64:8920 MOV DWORD PTR FS:[EAX],ESP 0047F423 E8 146CFEFF CALL 《计算机.0046603C 0047F428 BA 143E4800 MOV EDX,《计算机.00483E14 0047F42D B8 68F54700 MOV EAX,《计算机.0047F568 ; ASCII "XSEI.NATC" 0047F432 E8 216EFEFF CALL 《计算机.00466258 0047F437 833D 143E4800 0>CMP DWORD PTR DS:[483E14],0 0047F43E 74 04 JE SHORT 《计算机.0047F444 .................................................................
运行ImportREC,选择这个进程。把OEP改为7F404,点IT AutoSearch,点“Get Import”,看到输入表全部有效针,FixDump。
运行前看到加壳程序13.2M,脱壳程序668KB,肯定是无法运行的,这个是因为加壳程序尾部的数据没有复制到脱壳程序里面。
用Winhex打开加壳程序。
我们看到尾部数据从偏移量987开始。在987处点右键选块开始。
然后滚动条拉到底,到偏移量13889591为止,在13889591处点右键选块结束。
Crtl+C 复制选定内容。
然后打开脱壳文件,直接滚动条到尾部偏移量684031处,点右键-编辑-剪贴板数据写入,确定两次,原理搞清楚就不犹豫,保存文件,运行正常。
短短的三次试用一会就过期了,先前没有用RegSnap给这个程序照相。
破解NAG吧。
下断点
Bp MessageBoxA
无法中断NAG,没办法
OD载入程序
0047F404 > $Content$nbsp; 55 PUSH EBP //入口点。 0047F405 . 8BEC MOV EBP,ESP 0047F407 . 83C4 F0 ADD ESP,-10 0047F40A . 53 PUSH EBX 0047F40B . B8 A4F14700 MOV EAX,《计算机.0047F1A4 0047F410 . E8 CF76F8FF CALL 《计算机.00406AE4 0047F415 . 33C0 XOR EAX,EAX 0047F417 . 55 PUSH EBP .................................................
这里想起风飘雪老师的加密和解密的实战功略里面对付NAG的方法。
那就是必杀Ctrl+F8
简单解释一下,Ctrl+F8自动步过,遇到Call中Call,然后Nag调用运行。
所以遇到Call停止后就下断点,不断Ctrl+F2 和 F9 Ctrl+F8 三键灵活使用。
0045A5D8 . E8 0396FAFF CALL 《计算机.00403BE0 //这个Call要调用两次。
0047F51A . E8 9125FEFF CALL 《计算机.00461AB0 //第一次 NAG,下断点重启再次中断,F7跟进,Ctrl+F8 到下一个Call NAG出现。
00461AB0 $Content$nbsp; 55 PUSH EBP //跟进这里,Ctrl+F8 00461AB1 . 8BEC MOV EBP,ESP 00461AB3 . 51 PUSH ECX 00461AB4 . 53 PUSH EBX 00461AB5 . 56 PUSH ESI 00461AB6 . 57 PUSH EDI 00461AB7 . 894D FC MOV DWORD PTR SS:[EBP-4],ECX 00461ABA . 8BDA MOV EBX,EDX 00461ABC . 8BF0 MOV ESI,EAX 00461ABE . 8BC3 MOV EAX,EBX
00461AE1 . FF57 2C CALL DWORD PTR DS:[EDI+2C] //第二次 NAG,下断点重启再次中断,F7跟进
0045A464 $Content$nbsp; 55 PUSH EBP //跟进这里,Ctrl+F8 0045A465 . 8BEC MOV EBP,ESP 0045A467 . 81C4 ECFEFFFF ADD ESP,-114 0045A46D . 53 PUSH EBX 0045A46E . 33DB XOR EBX,EBX 0045A470 . 899D ECFEFFFF MOV DWORD PTR SS:[EBP-114],EBX 0045A476 . 84D2 TEST DL,DL 0045A478 . 74 08 JE SHORT 《计算机.0045A482 0045A47A . 83C4 F0 ADD ESP,-10 0045A47D . E8 0697FAFF CALL 《计算机.00403B88 0045A482 > 8BD9 MOV EBX,ECX
0045A5D8 . E8 0396FAFF CALL 《计算机.00403BE0 //第三次 NAG,下断点重启再次中断,F7跟进
0047BA46 . E8 2D200000 CALL 《计算机.0047DA78 //第四次 NAG,下断点重启再次中断,F7跟进
0047DD13 . E8 F8D1FBFF CALL 《计算机.0043AF10 //第五次 NAG,向上找到Magic jmp
[1] [2] 下一页 |