飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5542|回复: 19

[分享] 爆破WinISO的另一种思路

[复制链接]

该用户从未签到

发表于 2008-9-24 09:05:26 | 显示全部楼层 |阅读模式
【破文标题】爆破WinISO的另一种思路
【破文作者】NightSprit
【作者邮箱】vrwqq@sina.com.cn
【作者主页】
破解工具】OD+Peid0.94
【破解平台】WinXP SP2
【软件名称】WinISO v5.3
【软件大小】
【原版下载】http://www.winiso.com
【保护方式】UPX
【软件简介】一款功能强大的ISO制作、提取工具。
【破解声明】纯属个人爱好,请不要用于商业目的
------------------------------------------------------------------------
【破解过程】此程序是一个注册验证的程序,程序启动时未注册版有提示窗口,未注册版在提取文件时文件的大小不能超过3M(有消息框提示),破解思路如下:
1.用OD或者通用脱壳机脱壳
1)OD载入
2)F8运行
3)ESP定律:下硬件断点
hr 0012FFA4
删除硬件断点
F8单步执行
用OD的脱壳插件进行脱壳
2.去启动窗口
1)OD载入脱壳后的软件
2)查字符串参考,发现如下信息
超级字串参考+        ,项目 160
地址=00406919
反汇编=MOV EDX,unpackde.004C6E91
文本字串= (购买只要30元)
双击"(购买只要30元)",进入反汇编窗口
F8单步执行,来到如下位置:
00404B6F  |. /75 2C         JNZ SHORT unpackde.00404B9D
00404B71  |. |C785 B0FCFFFF>MOV DWORD PTR SS:[EBP-350],unpackde.004E>
00404B7B  |. |8B95 B0FCFFFF MOV EDX,DWORD PTR SS:[EBP-350]
00404B81  |. |807A 27 00    CMP BYTE PTR DS:[EDX+27],0
00404B85  |. |0F95C1        SETNE CL
00404B88  |. |83E1 01       AND ECX,1
00404B8B  |. |84C9          TEST CL,CL
00404B8D  |. |75 0E         JNZ SHORT unpackde.00404B9D
00404B8F  |. |6A 01         PUSH 1                                   ; /Arg3 = 00000001
00404B91  |. |6A 00         PUSH 0                                   ; |Arg2 = 00000000
00404B93  |. |6A 00         PUSH 0                                   ; |Arg1 = 00000000
00404B95  |. |E8 22390200   CALL unpackde.004284BC                   ; \启动窗口
发现当执行  CALL unpackde.004284BC 时启动窗口出现,去掉此窗口的思路如下:
I)NOP掉此行语句
II)顺着此行语句向上查找,可看到有两处JNZ的目的地址相同,而且如果实现的话都可一跳过此句,因此可以把JNZ改成JMP,
00404B6F  |. /75 2C         JNZ SHORT unpackde.00404B9D
改成
00404B6F  |. /75 2C         JMP SHORT unpackde.00404B9D
或把
00404B8D  |. |75 0E         JNZ SHORT unpackde.00404B9D
改成
00404B8D  |. |75 0E         JMP SHORT unpackde.00404B9D
然后,点右键复制到可执行文件既可以
3  去掉提取文件大小的限制
1)载入去掉启动窗口后的文件
运行,打开一个ISO文件,当提取的文件大于3M时,会有消息框提示,因此可考虑下如下断点:
bp MessageBoxA
2)重新载入,下断点bp MessageBoxA,F9运行,程序断在如下位置:
77D507EA >  8BFF            MOV EDI,EDI                              ; 1.0052538A
F2取消断点,Alt+F9返回程序领空,点击确定按钮返回OD,可发现如下代码:
004103B5  |. /75 68         JNZ SHORT 1.0041041F                     ;  未注册时判断提取的文件是否超过3M,大于3M则会提示
004103B7  |. |81FF 00003000 CMP EDI,300000
004103BD  |. |76 60         JBE SHORT 1.0041041F
004103BF  |. |6A 10         PUSH 10
004103C1  |. |8B0D 00134E00 MOV ECX,DWORD PTR DS:[4E1300]            ;  1._fmMainWnd
004103C7  |. |8B31          MOV ESI,DWORD PTR DS:[ECX]
004103C9  |. |81C6 80060000 ADD ESI,680
004103CF  |. |833E 00       CMP DWORD PTR DS:[ESI],0
004103D2  |. |74 04         JE SHORT 1.004103D8
004103D4  |. |8B06          MOV EAX,DWORD PTR DS:[ESI]
004103D6  |. |EB 05         JMP SHORT 1.004103DD
004103D8  |> |B8 41BD4C00   MOV EAX,1.004CBD41
004103DD  |> |50            PUSH EAX
004103DE  |. |8B15 00134E00 MOV EDX,DWORD PTR DS:[4E1300]            ;  1._fmMainWnd
004103E4  |. |8B1A          MOV EBX,DWORD PTR DS:[EDX]
004103E6  |. |81C3 C0060000 ADD EBX,6C0
004103EC  |. |833B 00       CMP DWORD PTR DS:[EBX],0
004103EF  |. |74 04         JE SHORT 1.004103F5
004103F1  |. |8B03          MOV EAX,DWORD PTR DS:[EBX]
004103F3  |. |EB 05         JMP SHORT 1.004103FA
004103F5  |> |B8 40BD4C00   MOV EAX,1.004CBD40
004103FA  |> |50            PUSH EAX
004103FB  |. |8B15 00134E00 MOV EDX,DWORD PTR DS:[4E1300]            ;  1._fmMainWnd
00410401  |. |8B02          MOV EAX,DWORD PTR DS:[EDX]
00410403  |. |E8 2C930600   CALL 1.00479734
00410408  |. |50            PUSH EAX                                 ; |hOwner
00410409  |. |E8 60440B00   CALL <JMP.&USER32.MessageBoxA>           ; \MessageBoxA-未注册时的提示
向上可看到有一句可跳过提示的条件转移代码:
004103B5  |. /75 68         JNZ SHORT 1.0041041F                     ;  未注册时判断提取的文件是否超过3M,大于3M则会提示
把JNZ改成JMP即完成破解
004103B5  |. /75 68         JMP SHORT 1.0041041F                     ;  未注册时判断提取的文件是否超过3M,大于3M则会提示
保存成文件,既完成了此次爆破过程。


------------------------------------------------------------------------
【破解总结】本文的破解是不完善的,如关于对话框仍然显示试用版,程序的窗口上显示未注册版等信息,但是却有注册版的全部功能,本文只是给出一种思路,其余的留给追求完美者解决!
这是本人的第一篇文章,不足之处敬请谅解。
------------------------------------------------------------------------
【版权声明】版权归原作者,仅把此程序献给那些囊中羞涩的人们。

评分

参与人数 1飘云币 +80 收起 理由
Nisy + 80 PYG有你更精彩!

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2008-9-24 10:04:45 | 显示全部楼层
学习一下,谢谢楼主
PYG19周年生日快乐!

该用户从未签到

发表于 2008-9-24 14:53:53 | 显示全部楼层
学习了。。。/:good /:good
PYG19周年生日快乐!

该用户从未签到

发表于 2008-9-24 14:54:17 | 显示全部楼层
不错不错。学习/:017
PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 1383 天

    [LV.10]以坛为家III

    发表于 2008-9-24 20:32:57 | 显示全部楼层
    学习学习 ,谢谢楼主
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-5-9 01:01
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2008-9-26 06:23:02 | 显示全部楼层
    支持一下,不过可以考虑标志位暴破,一般标志位暴破是比较完善的。
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2008-9-28 17:16:18 | 显示全部楼层
    多谢各位的支持!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-9-28 17:19:57 | 显示全部楼层
    不错 能用没问题就可以了 要求没有那么高
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2024-4-9 10:11
  • 签到天数: 42 天

    [LV.5]常住居民I

    发表于 2008-9-28 19:46:55 | 显示全部楼层
    学习了,写的很好,谢谢!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-9-29 08:59:46 | 显示全部楼层
    这样是不是麻烦了一点点/:014
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表