vrwqq 发表于 2008-9-24 09:05:26

爆破WinISO的另一种思路

【破文标题】爆破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:,unpackde.004E>
00404B7B|. |8B95 B0FCFFFF MOV EDX,DWORD PTR SS:
00404B81|. |807A 27 00    CMP BYTE PTR DS:,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:            ;1._fmMainWnd
004103C7|. |8B31          MOV ESI,DWORD PTR DS:
004103C9|. |81C6 80060000 ADD ESI,680
004103CF|. |833E 00       CMP DWORD PTR DS:,0
004103D2|. |74 04         JE SHORT 1.004103D8
004103D4|. |8B06          MOV EAX,DWORD PTR DS:
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:            ;1._fmMainWnd
004103E4|. |8B1A          MOV EBX,DWORD PTR DS:
004103E6|. |81C3 C0060000 ADD EBX,6C0
004103EC|. |833B 00       CMP DWORD PTR DS:,0
004103EF|. |74 04         JE SHORT 1.004103F5
004103F1|. |8B03          MOV EAX,DWORD PTR DS:
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:            ;1._fmMainWnd
00410401|. |8B02          MOV EAX,DWORD PTR DS:
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则会提示
保存成文件,既完成了此次爆破过程。


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

leewee 发表于 2008-9-24 10:04:45

学习一下,谢谢楼主

sr880828 发表于 2008-9-24 14:53:53

学习了。。。/:good /:good

Nirvana_Crystal 发表于 2008-9-24 14:54:17

不错不错。学习/:017

jackzkm 发表于 2008-9-24 20:32:57

学习学习 ,谢谢楼主

老海 发表于 2008-9-26 06:23:02

支持一下,不过可以考虑标志位暴破,一般标志位暴破是比较完善的。

vrwqq 发表于 2008-9-28 17:16:18

多谢各位的支持!

sqcsl 发表于 2008-9-28 17:19:57

不错 能用没问题就可以了 要求没有那么高

wqphhx 发表于 2008-9-28 19:46:55

学习了,写的很好,谢谢!

lixy8888 发表于 2008-9-29 08:59:46

这样是不是麻烦了一点点/:014
页: [1] 2
查看完整版本: 爆破WinISO的另一种思路