- UID
- 54417
注册时间2008-8-31
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【破文标题】爆破WinISO的另一种思路
【破文作者】NightSprit
【作者邮箱】[email protected]
【作者主页】
【破解工具】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则会提示
保存成文件,既完成了此次爆破过程。
------------------------------------------------------------------------
【破解总结】本文的破解是不完善的,如关于对话框仍然显示试用版,程序的窗口上显示未注册版等信息,但是却有注册版的全部功能,本文只是给出一种思路,其余的留给追求完美者解决!
这是本人的第一篇文章,不足之处敬请谅解。
------------------------------------------------------------------------
【版权声明】版权归原作者,仅把此程序献给那些囊中羞涩的人们。 |
评分
-
查看全部评分
|