用bpx hmemcpy设断点,然后再用BPR断点监视你输入的注册码,它将你输入的注册码字符串转换成整数之后,
就到了如下的地方,要装到浮点寄存器中去了(又是浮点数!):
5187:9067 53 PUSH BX
5187:9068 90 NOP
5187:9069 DD06C00D FLD REAL8 PTR [0DC0] //装入到浮点寄存器中去
5187:906D E86807 CALL 97D8
5187:9070 5B POP BX
5187:9071 58 POP AX
5187:9072 803ED00D1A CMP BYTE PTR [0DD0],1A
5187:9077 7504 JNZ 907D
5187:9079 883ED00D MOV [0DD0],BH
5187:907D E8A4F0 CALL 8124
5187:9080 CD3D INT 3D
5187:9082 5F POP DI
5187:9083 C3 RET
5187:9084 55 PUSH BP
5187:9085 8BEC MOV BP,SP
5187:9087 56 PUSH SI
5187:9088 B42C MOV AH,2C
5187:908A 9AD9884701 CALL KERNEL!DOS3CALL
单步跟踪,发现最终在如下FCOMPP的地方进行注册码的比较。此时ST1寄存器中放的是你输入的假注册码,
ST0中存放的是另外一个数。它会把你的假注册码和好几个数相比,这些数中有一个是真正的注册码,
其它的数不能用,否则启动的时候它会说你的文件被破坏了 :-)
只需要在如下的FCOMPP处插入INT 3指令即可,这里应为VB3比较两个数的地方。
4B57:3C00 FFE0 JMP AX
4B57:3C02 90 NOP
4B57:3C03 D9C9 FXCH ST(1)
4B57:3C05 90 NOP
4B57:3C06 DED9 FCOMPP //比较注册码
4B57:3C08 90 NOP
4B57:3C09 DFE0 FSTSW AX
4B57:3C0B CD3D INT 3D
4B57:3C0D 9E SAHF
4B57:3C0E C3 RET
4B57:3C0F 2800 SUB [BX+SI],AL
4B57:3C11 B82600 MOV AX,0026
4B57:3C14 B8A600 MOV AX,00A6
4B57:3C17 E8E8FF CALL 3C02
4B57:3C1A B80000 MOV AX,0000
4B57:3C1D 7501 JNZ 3C20
4B57:3C1F 48 DEC AX
4B57:3C20 50 PUSH AX
4B57:3C21 26AD LODSW ES:
4B57:3C23 FFE0 JMP AX
一个可用的cowsense.INI文件:
[Registration]
SerialNumber=W401-9900558
UserName=zhuxiaohua
UserCompany=zhuchen
Key=80467949
OptionKey=850780
DataEntryMode=False
Chronid=313500
Version=
[File Parameters]
DataPath=
DataFileName=
[Settings]
TabStyle=Mac
ReportTitle=Cow Sense Sample Herd
ReportingYear=2000
[Options]
SystemDB=C:\temp\vb3\SYSTEM.MDA
VB3程序破解再总结
1、 用字符比较
- 开始运行VB3程序,输入假的序列号:
- 切换到softice下,bpx hmemcpy 设断点
- 按F5键返回应用程序,按注册确定键,将被softice中断
- S 0030:0 L FFFFFFFF 8B,CA,F3,A6,74,01,9F92,8D,5E,08,E8,06
- 在返回地址设断如: bpx 0030:807019ef do “d si”
- 按F5将落在比较代码处
: 8BCA mov cx, dx
: F3A6 repz cmpsb ;<- 这里字符串被比较
: 7401 je 8CB6 ;
: 9F lahf
: 92 xchg ax,dx
: 8D5E08 lea bx, [bp+08]
- 如发现输入的假序列号则下d es:di查看序列号
- 没有发现继续按F5
2、 用数值比较
- 开始运行VB3程序,输入假的序列号:
- 切换到softice下,bpx hmemcpy 设断点
- 下WF开浮点监视窗
- 按F5键返回应用程序,按注册确定键,将被softice中断
- S 0030:0 L FFFFFFFF 90,DE,D9,90DF,E0,CD,3D,9E,C3
- 在返回地址设断如: bpx 0030:805B5CA5
- 按F5将至此
4B57:3C05 90 NOP
4B57:3C06 DED9 FCOMPP //比较注册码
4B57:3C08 90 NOP
4B57:3C09 DFE0 FSTSW AX
4B57:3C0B CD3D INT 3D
4B57:3C0D 9E SAHF
4B57:3C0E C3 RET
在浮点监视窗中将会出现注册码
- 如没有继续按F5
相关视频
相关阅读 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破解如何给软件脱壳基础教程
查看所有0条评论>>