使用x32dbg破解VB6编译的软件时间限制

使用x32dbg破解VB6编译的软件时间限制

有些VB6编译的软件有时间限制,可以通过x32dbg调试软件进行修改,达到软件无期限使用权的目的。

使用VB6编程设计年份期限,有2种形式,使用字符串和数字条件,代码如下:

1、使用数值判断
Private Sub Form_Load()
YearStr = Left(Date$, 4) ‘取得计算机当前年
If Val(YearStr) > 2020 Then End ‘年份超过2020则结束程序
End Sub

2、使用字符串判断
Private Sub Form_Load()
YearStr = Left(Date$, 4)
If YearStr > “2020” Then End
End Sub
编译此代码,进行无期限破解测试。

一、字符串搜索破解条件:
运行x32dbg调试软件,打开某软件,搜索字符串后查找2020,如图:

如果搜索字符串存在2020,如下图:2020字符串在程序40163C

双击2020行,到达此汇编代码,代码指向40163C的字符串2020,在此代码上右键,在内存串口中转到40163C,在内存1中可以看到ASCII字符2020:
简单的破解就是修改2020字符为2120年过期,修改后创建补丁,即可形成破解程序。

在内存1中ASCII字符2020的第二个0的16进制30修改为31,即字符串修改为2120,即可延长期限到2120年,

无期限破解:在指向字符串代码40163C汇编语句的下面,有这三句代码,401A98代表程序执行VB6结束程序过程,将汇编语言条件语句je 工程3.401A9E修改为jmp 工程3.401A9E无条件跳转,软件即可达到无年份期限。
00401A96 74 06 je 工程3.401A9E
00401A98 FF15 10104000 call dword ptr ds:[<&__vbaEnd>]
00401A9E 8975 FC mov dword ptr ss:[ebp-4],esi

在401A96汇编语句上右键汇编,将je修改为jmp无条件跳转。然后继续创建补丁,完成破解。

二、匹配特征搜索破解条件:
当进行字符串搜索无法搜索到2020期限,说明软件代码中条件为数值,这是要进行匹配特征搜索,在匹配特征中搜索16进制 FF 15:

匹配特征中搜索16进制 FF 15,搜索到如下代码:
地址 反汇编
004019CD call dword ptr ds:[<&rtcGetDateBstr>]
004019D8 call dword ptr ds:[<&__vbaStrMove>]
004019F8 call dword ptr ds:[<&rtcLeftCharVar>]
00401A04 call dword ptr ds:[<&__vbaVarMove>]
00401A18 call dword ptr ds:[<&__vbaFreeVar>]
00401A26 call dword ptr ds:[<&__vbaStrVarVal>]
00401A2D call dword ptr ds:[<&rtcR8ValFromBstr>]
00401A33 call dword ptr ds:[<&__vbaFpR8>]
00401A5D call dword ptr ds:[<&__vbaEnd>]
00401A71 call dword ptr ds:[<&__vbaFreeStr>]
00401A81 call dword ptr ds:[<&__vbaFreeVarList>]
00401A8E call dword ptr ds:[<&__vbaFreeVar>]

代码段显示rtcGetDateBstr 代表获得计算机时间,vbaEnd代表结束程序。这2个代码段构成条件判断,双击00401A5D vbaEnd 代码段,如上面字符串方式无期限破解一样,修改汇编语言je为jmp无条件跳转,即可完成程序破解。

简单程序破解实例,旨在抛砖引玉,学习汇编语言,复杂的程序破解不过是代码搜索和分析耗时而已。

完整文档和附图见附件
https://download.csdn.net/download/zyyujq/14929499
学习整理 1/25/2021

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中游鱼

获取完整源代码,提高工作效率

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值