发新话题
打印

MZD(5.6正式版)无盘破解分析已更新

MZD(5.6正式版)无盘破解分析已更新

MZD 5.6正式版以前的破解版本网上很多,本人只试过一次,觉得很垃圾。因为它加有三层壳,特别是加了老王的壳,
因为这个壳是通过注入壳的DLL到explorer里,严重影响explorer的安全,造成系统极不稳定,因此在WIN2003SP1上不
能稳定运行。其次,如果系统img是3G,那么每台机工作时的文件包(即fix文件)也是3G大小。如果有100台机,你算算要300G空间给它们用还不够!100台机同时读写300G文件,性能有多好呢?晕啊!!哈哈!MZD 5.6正式版带壳破解本人早就知道了,可以说是秒杀。只不过我没有公开在网上。因为我的朋友们没有一个人用。所以不在深研。MZD 5.6正式版加有二层壳,第一层是:EncryptPE V2.2004.8.10-V2.2005.3.14 -> WFS *     第二层是:  ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov (实际是 ASProtect v1.23 RC1 ) 前几天本人把它完美脱壳了。这二层壳都没有脱壳机直接脱得了,所以只能手脱啊!补了35个区段10处自校验,总算搞好,真晕!破解就很简单了。"衣服"都给你脱光了,你想怎么样都可以了,哈哈!想要学破解方法的可以跟贴,本人慢慢地告诉你方法。附上已经脱壳的文件,你们想怎破它都非常容易了。靠壳来保护自己的软件实在是……,而且加的是“出名”的壳,研究它的人多如牛毛,你看Mainsoft的软件有多少个有壳啊?普通人你想破它,没门!
脱壳详细过程在下面这个地址:
http://bbs.pediy.com/showthread.php?t=69311   

在OD中载入已经脱壳的MZD.exe程序
.......
   004FFD54   55   PUSH EBP              这里下F2断点

下断之后输入任意字符注册跟进,暴破也好,想完美注册也好,实在太简单。
......
004FFE83  83F8 04  CMP EAX,4         EAX=0 (注册成功)
                       
......
【详细过程】

(一) 脱第一层壳:
    在下面这句F2下断,然后F7跟进,按网上方法脱老王的壳。可参考fly的EncryptPE V2.2005.3.14试炼Service保护方式:   http://bbs.pediy.com/showthread.php?threadid=13726 这篇破文就可以了。
    009C32C1    FFD3           CALL EBX
    F7 跟进之后要下硬件执行断点。
    711E4677    8D4D D8         lea ecx,dword ptr ss:[ebp-28]         这里下硬件执行断点
    .......
    711E4687    837D D8 00      cmp dword ptr ss:[ebp-28],0         这里下硬件执行断点
    就获得加壳前文件的PE头、OEP等信息了。
    .......
    其它的略过。

(二) 脱第二层壳过程:
(1) 利用脚本处理IAT,到达Stolen OEP'Start
    00401000 >  68 01A09200     PUSH MZD.0092A001            ; OD入口处
    00401005    E8 01000000     CALL MZD.0040100B
    0040100A    C3              RETN
    0040100B    C3              RETN
    0040100C    F659 47         NEG BYTE PTR DS:[ECX+47]
    0040100F    51              PUSH ECX

      运行Volx大侠的Aspr2.XX_IATfixer_v2.2s.osc脱壳脚本停在伪OEP了。
   
    02510225    55              PUSH EBP                      ; 000520824
    02510226    BD D6FD4800     MOV EBP,48FDD6
    0251022B    83CD C7         OR EBP,FFFFFFC7
    0251022E    C1C5 3F         ROL EBP,3F                    ; 移位常量超出 1..31 的范围
    02510231    036C24 18       ADD EBP,DWORD PTR SS:[ESP+18]
    02510235    8D6C24 5F       LEA EBP,DWORD PTR SS:[ESP+5F]
    02510239    8D6C25 A1       LEA EBP,DWORD PTR SS:[EBP-5F]
    0251023D    E9 D4010000     JMP 02510416
    Alt+l,   查看硬件断点1位于0135E834。
             iatstartaddr: 00834294
             iatstart_rva: 00434294
             iatsize: 00000958
    02510225   断点位于 02510225
             OEP_rva: 00120824
   
    OEP=000520824-400000=00120824
    RVA=00834294-400000=00434294

    现在用LordPE完全脱壳出数据,Address=00400000、Size=005C2000,存为dumped.exe
    运行ImportRec,填入RVA=00434294、Size=00000958,获取输入表,函数都是有效的。修改OEP RVA=00120824修复dumped.exe保存为   

MZD.exe

(2) 手动修复stolen code,采用补区段的方法很适合我们菜鸟,用lordpe区域转存,dump出程序中stolen code和VM区段,如果不清楚那些是  

  stolen code和VM区段,一看OEP部分在哪个区段,二看壳用到哪几个区段,不妨多dump些区段备用。下面是我找回偷窃代码区段的地址:
   
    VM Address          Size
    ===========================================================
    01320000           54000    <-ASProtect 解密 CODE 区段     
    01380000           14000    <-ASProtect 资料 DATA 区段
    02510000            2000    <-OEP  Stolen Code
    02670000            1000    <-Delphi DATA 区段
    02680000            1000    <-Delphi DATA 区段
    02690000            1000    <-Delphi DATA 区段
    026B0000            1000    <-M01   Stolen Code
    026C0000            1000    <-M02   Stolen Code
    026D0000            1000    <-M03   Stolen Code
    026E0000            1000    <-M04   Stolen Code
    026F0000            1000    <-M05   Stolen Code
    02700000            1000    <-M06   Stolen Code
    02710000            1000    <-M07   Stolen Code
    02720000            1000    <-M08   Stolen Code
    02730000            1000    <-M09   Stolen Code
    02740000            1000    <-M10   Stolen Code
    02750000            1000    <-M11   Stolen Code
    02760000            1000    <-M12   Stolen Code
    02770000            1000    <-M13   Stolen Code
    02780000            1000    <-M14   Stolen Code
    02790000            1000    <-M15   Stolen Code
    027A0000            1000    <-M16   Stolen Code
    027B0000            1000    <-M17   Stolen Code
    027C0000            1000    <-M18   Stolen Code
    027D0000            1000    <-M19   Stolen Code
    027E0000            1000    <-M20   Stolen Code
    027F0000            1000    <-M21   Stolen Code
    02800000            1000    <-M22   Stolen Code
    02810000            1000    <-M23   Stolen Code
    02820000            1000    <-M24   Stolen Code
    02830000            1000    <-M25   Stolen Code
    02840000            1000    <-M26   Stolen Code
    02850000            1000    <-M27   Stolen Code
    02860000            1000    <-M28   Stolen Code
    02870000            1000    <-M29   Stolen Code
    02880000            1000    <-M30   Stolen Code
    02890000            1000    <-M31   Stolen Code
    028A0000            1000    <-M32   Stolen Code
    028B0000            1000    <-M33   Stolen Code
    028C0000            1000    <-M34   Stolen Code
    03710000            1000    <-M35   Stolen Code
    ===========================================================
   
    这里提醒一下,把dump出的区段附加在MZD.exe后面时,所有VM Address要减去基址,如:
    01320000-400000=F20000。
    把dump出的区段附加完成后,用lordpe修复PE Header。
   
(3) 重新在OD中载入MZD.exe程序,开始处理壳的自校验。
   
    Route CHECK,算是壳的自我校验。
    01344CEF    8B73 30         MOV ESI,DWORD PTR DS:[EBX+30]
    01344CF2    8B7B 14         MOV EDI,DWORD PTR DS:[EBX+14]
    01344CF5    A1 D02B3601     MOV EAX,DWORD PTR DS:[1362BD0]
    01344CFA    8B40 34         MOV EAX,DWORD PTR DS:[EAX+34]   从这里开始修改。
    01344CFD    FFD0            CALL EAX
    01344CFF    2945 0C         SUB DWORD PTR SS:[EBP+C],EAX
    01344D02    8B45 0C         MOV EAX,DWORD PTR SS:[EBP+C]
    01344D05    2B43 18         SUB EAX,DWORD PTR DS:[EBX+18]
    01344D08    2B43 68         SUB EAX,DWORD PTR DS:[EBX+68]
    01344D0B    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
   
    二进制
    90 90 8B 44 24 58 83 E8 05 90 90
   
    修改后的代码,保存文件。
    01344CEF    8B73 30         MOV ESI,DWORD PTR DS:[EBX+30]
    01344CF2    8B7B 14         MOV EDI,DWORD PTR DS:[EBX+14]
    01344CF5    A1 D02B3601     MOV EAX,DWORD PTR DS:[1362BD0]
    01344CFA    90              NOP
    01344CFB    90              NOP
    01344CFC    8B4424 58       MOV EAX,DWORD PTR SS:[ESP+58]
    01344D00    83E8 05         SUB EAX,5
    01344D03    90              NOP
    01344D04    90              NOP
    01344D05    2B43 18         SUB EAX,DWORD PTR DS:[EBX+18]
    01344D08    2B43 68         SUB EAX,DWORD PTR DS:[EBX+68]
    01344D0B    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX

(4) 处理文件 CRC 自校验

    1. 004F805F    0BFF            OR EDI,EDI
       004F8061    0F84 21000000   JE MZD.004F8088      修改JE-->JMP
       .....   
       004F8134   /0F84 8E040000   JE MZD.004F85C8      NOP
    2. 004F8A7A    0BFF            OR EDI,EDI
       004F8A7C    0F84 1B000000   JE MZD.004F8A9D      修改JE-->JMP
       .....
       004F8B47   /0F84 70050000   JE MZD.004F90BD      NOP
    3. 004FA3CD    0BF6            OR ESI,ESI
       004FA3CF    0F84 1D000000   JE MZD.004FA3F2      修改JE-->JMP
       .....
       004FA4A5   /75 09           JNZ MZD.004FA4B0     修改JNZ-->JMP
    4. 004FC7D7    0BF6            OR ESI,ESI
       004FC7D9    0F84 1C000000   JE MZD.004FC7FB      修改JE-->JMP
       .....
       004FC8A2   /0F84 F6040000   JE MZD.004FCD9E      NOP
    5. 004FCF3E    85FF            TEST EDI,EDI
       004FCF40    0F84 1F000000   JE MZD.004FCF65      修改JE-->JMP
       .....
       004FD006   /0F84 21010000   JE MZD.004FD12D      NOP
    6. 004FDD84    85F6            TEST ESI,ESI
       004FDD86    0F84 1F000000   JE MZD.004FDDAB      修改JE-->JMP
       .....
       004FDE53   /74 4B           JE MZD.004FDEA0      NOP
    7. 004FEBBF    0BFF            OR EDI,EDI
       004FEBC1    0F84 19000000   JE MZD.004FEBE0      修改JE-->JMP
       .....
       004FEC8B   /75 0A           JNZ MZD.004FEC97     修改JNZ-->JMP
    8. 00501127    0BF6            OR ESI,ESI
       00501129    0F84 1A000000   JE MZD.00501149      修改JE-->JMP
       .....
       005011F8   /75 07           JNZ MZD.00501201     修改JNZ-->JMP
    9. 005058F3    85F6            TEST ESI,ESI
       005058F5    0F84 1D000000   JE MZD.00505918      修改JE-->JMP
       .....
       005059CA   /0F84 C1010000   JE MZD.00505B91      NOP
    10.00520899    0BF6            OR ESI,ESI
       0052089B    0F84 18000000   JE MZD.005208B9      修改JE-->JMP
       .....
       00520975   /75 07           JNZ MZD.0052097E     修改JNZ-->JMP
   
    F9,运行很畅快,脱壳过程算是结束了。
附件: 您所在的用户组无法下载或查看附件

TOP

楼主,真正的强人!
专业无盘网吧(锐起、BXP无盘)安装、调试、维护。远程教授无盘制作。联系电话:13123100156  QQ:78600395 +需要无盘

TOP

不用MZD,一直用BXP和锐起,不过
楼主是强人,该
顶!!!!!

TOP

dddddddd

dddddddddddddd

TOP

又见LZ大作的了  哈哈

TOP

顶一个老大,觉得无盘还是用BXP的好

TOP

顶,想向您学习下!

TOP

第二存我不会补区断,难道还有第三层?可否加我QQ,探讨一下:7 7 5 2 9 5 5 7

[ 本帖最后由 oemxp 于 2008-7-4 12:56 编辑 ]

TOP

强人又出手了,支持!

TOP

老大,发个脱壳录像吧,,我用OD,,结果被他给关了,郁闷呀

TOP

发新话题