您的位置:首页精文荟萃破解文章 → rufeng教程 第三章 破解windows 95软件的方法

rufeng教程 第三章 破解windows 95软件的方法

时间:2004/10/15 1:00:00来源:本站整理作者:蓝点我要评论(0)

 

一.可注册 windows 95软体.
特徵是当未注册时, 一进去会有延迟画面, 可能有时效限制(30天後不能用之类),在某个地方有个注册功能, 打开之後是个对话框, 要求输入密码, 有时还有姓名和公司名称.


程式如何判断注册与否?
通常两种方式:
1. 在程式码的某一处, 藏有 "注册印记". 如00表未注册, 01为已注册. 当然也有很奇怪的数字, 如 f8 03 表已注册.
2. install 时程式开 *.ini, 或写入 win.ini, 把资料存在那里.


程式如何保护:
最通常是用你的name当作key, 经过复杂演算法, 算出注册码。但也有一些并不是用你的name当作key算注册码的,而是name与注册码无关,注册码是固定,name是随便输入就可以了。对于前者,较容易可算出注册码,而后者要算注册码就不是一件容易的事了。关于两者的具体处理方法,会在下面文章详细介绍。
注册处理:


1. 当输入name, company, password 後, 立即比对, 正确的话立即做注册处理, 以後再也不判断, 不正确要求再输入. 不输入 name 的话, 保持 shareware 版.
2. 同1, 但以後一执行程式还是会判断.
3. 输入时不比对, 只写入资料於 *.ini, 程式执行时再比对.
对于第一种情况,是最容易破解的了,因为只要找到软件注册时的比较失败窗口的call,在向上找一找,就可以找到一个可以跳过这个call的jz或jnz,只要把这个jz改为jmp,就可以随便注册了,因为它们的只进行一次性的比较,所以只要在注册时强行使它们注册成功,则以后就不用管了。
它们的一般形式为:
xxxx:xxxxxxxx call 比较注册码的call
xxxx:xxxxxxxx test eax , eax
xxxx:xxxxxxxx jnz (或jz) xxxxxxxx 只要把这个jnz 改为jmp 就可以了


xxxx:xxxxxxxx call 比较失败的窗口的call
对于第二,第三种情况,就不能这么简单地破解了,而要追进比较注册码的call里去,如果可以算出注册码的,就万事大吉了,如果不能,就比较地麻烦了,只有按下面介绍的方法进行crack了,要知软件始终不是你写的,所以不可能所有的软件都可以crack的,只能各凭功力了。对于不能简单地算出注册码的软件,我们的唯一的方法是先在比较注册码的call里,设一个断点,然后再重新运行软件,如果软件被中断的,那么这个软件就有八成可以破解了,只要在比较注册码的call里找到那些jz或jnz会导致eax的值变化,把这些指令改为nop或jmp(视具体情况而定),则一般都可以迎韧而解了。
对于第一种情况的破解实例:
Hex32bit
这是一个多功能的编辑软件,有很强大的功能,是一个很好用的32位工具软件。
1.输入Registeration code:48484848(随意)
2.按CTRL-D 进入WIN S-ICE
3.下S 30:0 LFFFFFFF '48484848' 得一地址30:XXXXXXXX
4.下BPM 30:XXXXXXXX R
5.按F5 退出
6.用鼠标击Register
7.程序被WIN S-ICE 中断
8.按F12回到Hworks32的天空
9.直按F10至以下程式:
0137:0041635F CALL 00426A70 比较密码的CALL
0137:00416364 ADD ESP , 04
0137:00416367 MOV [EBP-10] , EAX
0137:0041636A CMP DWORD PTR [ EBP-10 ] , 00
0137:0041636E JZ 004163ED 错误时跳,只要改为nop…………就OK了
:
:
0137:004163E8 JMP 00416440
:
:
0137:0041640D CALL 004354EE 出现注册失败窗口的CALL
所以下code on 抄下机器代码,打开Hworks32.exe
找0f8479000000
改909090909090
OK!!!完工。


对于第二种情况的破解实例:
FLMASK3.00
1. 用WINSOFT-ICE载入FLMASK32.EXE
2. 输入Your Name :Ru Feng(随意)
Registration Key : 48484848(随意)
3. 按CTRL-D进入WINSOFT-ICE ,下S 30:0 LFFFFFFFF '48484848'得一地址30:XXXX
4. 下BPM 30:XXXX R
5. 按F5退出
6. 确定Registration
7. 程序被WINSOFT-ICE中断
8. 按F12跳到FLMASK32的天空
9. 按F10直到以下程式:
0137:00452D1F CALL 00443118 比较注册码CALL
0137:00452D24 TEST AL , AL
0137:00452D24 JZ 00452E89 不正确时就跳
:
:
0137:00452E89 MOV DX , 0030
0137:00452E8D MOV EAX , 00001CFC
0137:00452E92 CALL 00443A54 出现错误窗口
10. 所以我们追进0137:00452D1F CALL 00443118中去
一直走下支会见到以下程式:
0137:00443145 CALL 00403BCC
0137:0044314A CMP EAX , 08 比较注册码是否8个数字
0137:0044314D JNZ 00443209 不等则跳,跳就失败
:
:
0137:004431BF CALL 004076A4 比较注册码是否正确
0137:004431BF CMP ESI , EAX
0137:004431C6 JNZ 00443209 不正确则跳
所以由汇编知识可知,只要把CMP ESI,EAX改为MOV EAX,ESI
把JNZ 00443209 改为NOP NOP
把JNZ 00443209 改为NOP NOP
则随意输入数字都可以注册了。
赶快下CODE ON指令抄下程序代码:
码0F85B6000000
改909090909090
码3BF07541
改8BC69090
用ULTRAEDIT32改FLMASK32.EXE就行了。
对于第三种情况的破解实例:
winzip6.3
1. 输入Name:Ru Feng(随意)
2. 输入Registeration:48484848(随意)
3. 按CTRL—D 进入WIN S-ICE
4. 下S 30:0 LFFFFFFF '48484848' 得一地址30:XXXXXXXX
5. 下BPM 30:XXXXXXXX R
6. 按F5 退出
7. 用鼠标击Ok
8. 程序被WIN S-ICE 中断
9. 按F12回到WINZIP的天空
10. 直按F10至以下程式:
0137:00409D89 CALL 004096EA 比较注册码的CALL
0137:00409D8E TEST EAX,EAX 注册码不正确时EAX=00000000
0137:00409D90 JNZ 00409DD3 当注册码正确就跳
:
:
0137:00409DA8 CALL 004230FD 弹出注册失败的窗口
11.追进CALL 004096EA 按F10一直走,会见到以下程式
0137:004097FC PUSH EAX
0137:004097FD CALL 004465D0 比较注册码的CALL
0137:00409802 POP ECX
0137:00409803 POP ECX
0137:00409804 NEG EAX
0137:00409806 SBB EAX,EAX
0137:00409808 INC EAX
0137:00409809 MOV [004728F8],EAX 当EAX=00000001时注册码正确
0137:0040980E CMP DWORD PTR [004728F8] , 00
0137:00409815 JNZ 004098A6 正确时跳
12.追进CALL 004465D0 按F10一直走,会见到以下程式
0137:004465EC OR AL,AL
0137:004465EE JZ 0044661E
0137:004465F0 MOV AL,[ESI] 在此下D DS:ESI可看到所填写的注册码‘48484848’
0137:004465F2 INC ESI
0137:004465F3 MOV AH,[EDI] 在此下D DS:EDI 可看到正确的注册码‘8A0A07ab’
0137:004465F5 INC EDI
0137:004465F6 CMP AH,AL 比较注册码地方
0137:004465F8 JZ 004465EC
你用Ru Feng作名字可找到‘8A0A07ab’这组注册码。
而对于那些注册码是固定的软件,破解就不是那么有规律了,只能各凭技巧了,具体情况具体分析了。
例:
winplay3 2.0
1. 输入Your Name:Ru Feng(随意)
2. 输入Registeration code:48484848(随意)
3. 按CTRL—D 进入WIN S-ICE
4. 下S 30:0 LFFFFFFF '48484848' 得一地址30:XXXXXXXX
5. 下BPM 30:XXXXXXXX R
6. 按F5 退出
7. 用鼠标击Register
8. 程序被WIN S-ICE 中断
9. 按F12回到WINPLAY3的天空
10. 直按F10至以下程式:
2C6F:XXXX CALL 2F17: 3D72 比较注册码
2C6F:XXXX OR DX,AX
2C6F:XXXX JNZ C632 不跳则显示成功窗口

2C6F:C632 PUSH 21
2C6F:C634 PUSH 0000FFFF
2C6F:C63A CALL 2C6F: 22AE 出现错误窗口
11. 按F8追进去CALL 2F17: 3D72

2F17:3E76 CALL 2F17: 357E
再追进去

2F17:35C6 PUSH DWORD PTR [BP+06]
2F17:35CA CALL 2F17: 340E
追进去至以下比较程式:
2F17:346F XOR AX,AX
REPNZ SCASB
NOT CX
DEC CX
CMP CX,12 表示正确注册码有18个数字
JNZ 3554 不等就跳,一跳就完了,所以改为四个NOP。
CMP BYTE PTR ES:[SI+06], 2D 说明正确注册码的格式为:
XXXXXX-XXXXXX-XXXX
JNZ 354E 不等就跳,一跳就完了,所以改为四个NOP。
CMP BYTE PTR ES:[SI+0D],2D
JNZ 354E 不等就跳,一跳就完了,所以改为四个NOP。
…………….
…………….
CALL 30F7: 25C0 比较注册码
ADD SP , 02
CMP AX , SI
JZ 34F6 相等就跳,所以改为JMP 34F6
……………..
……………..
CALL 30F7: 25C0
ADD SP , 02
MOV SI , AX
CMP SI, [1D36]
JGE 3522 跳则正确,不跳则错误,所以改为JMP 3522
…………….
…………….
12. 下CODE ON 把所有要改的机器码都抄下来,用ULTRAEDIT32在L3AUDIO.DLL中
修改。
机器码 改
0F85D700 90909090
0F85C800 90909090
0F85BF00 90909090
83C4023BC67406 83C4023BC6EB06
8BF03B36361D7D06 8BF03B36361D7D06


    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程