注册机制的研究

实验目的

研究软件注册机制,利用OD等工具破解U盘监控器、Free Internet Window Washer,绕过或发现注册码,达到注册成功目的。

实验工具

OllyDBG、W32DASM、WinHex等。

实验思想

OllyDbg动态分析的基本流程如下:

1、通常拿到一个软件先试着运行软件,如果有帮助文档查阅帮助文档,熟悉软件的基本用法,接着尝试输入错误的注册码,观察错误提示。
2、如果没有输入注册码的地方,要考虑是否是读取注册表或Key文件(程序读取一个文件中的内容判断是否注册),这些可以用其他工具来辅助分析。
3、如果都不是,原程序只是一个功能不全的试用版,那要注册为正式版需要手动写代码完善。
4、如果需要输入注册码,如上图所示,则调用查壳软件检查程序是否加壳(如PeiD、FI),有壳的需要脱壳之后再调用OllyDbg分析调试,无壳的直接调用工具调试。

实验原理和步骤

U盘监控器注册破解

U 盘监控器需要注册才能使用全部功能,我们的任务是使得输入任何注册码均能注册成功 。通常在注册时,程序会读取注册码,然后对注册码进行判 断: 正确则显示注册成功,转到正常的程序运行状态:错误则显示注册失败 ,转到未注册运行状态。
1.1、运行软件,获得与破解有关的信息;
在这里插入图片描述
1.2、寻找注册失败字符串地址;
在这里插入图片描述
1.3、使用 OD 获取引用该字符串的指令在内存中的地址;
内存地址:0x0400000+0x81A79,跳转到0x00481A79得到
在这里插入图片描述
1.4、使用W32DASM获得判断语句的位置;
在这里插入图片描述
在这里插入图片描述
分析:红框处提示错误信息代码位置:00405CD2,找到该位置,这是个分支语句,jg:表示跳转,其相反指令是jl,将jg改为jl,使其判断条件相反。

1.5、使用OD修改指令字节码。
如果我们将判断转移条件更改一下,错误则转到正常的运行状态,反之则转到来注册的运行状态 。这样,如果我们输入了错误的注册号,程序也会像输入了正确的注册号 一样运行,流程 如图所示。
在这里插入图片描述
1.6、OD中找到jg指令所在位置00405CD2,选择使用NOP填充,将jg改为jl.即可成功注册
在这里插入图片描述

Free Internet Window Washer注册破解

2.1、运行安装软件FIWWSetup2.9.exe,找到安装文件夹;
在这里插入图片描述
2.2、查壳:使用PEID工具检验是否加壳;
打开安装目录,将Clearpch.exe放入OD查壳,发现程序是无壳的
在这里插入图片描述
2.3、注册,发现报错字符串;
在这里插入图片描述
2.4、输入错误注册码,调试跟踪,发现注册判断代码位置;
1)既然程序没有加壳,那么直接用OD载入,然后使用OD的插件查找,由于软件是用Delphi编写的,则搜索的时候选择ACSII方式查询。
(2)在查询的时候遇到困难,并没有找到“Registration is not valid,please try agin。”这样的注册失败信息。
(3)由于该程序支持多国语言,来到安装目录下发现一个名为WLan_English.ini的文件,打开得知这是英文显示语言包,尝试在该文件中搜索注册失败信息,结果如下图:
在这里插入图片描述
在WLan_English.ini中查找到“RES_Registration_Error = Registration is not valid, please try again.”这样一条信息,于是尝试在OD(以管理员身份运行)中查找RES_Registration_Error,果然找到了 一处,如下图所示:
在这里插入图片描述
(5)双击RES_Registration_Error信息,来到反汇编窗口进行爆破
(6)为了简单,一般会在这个函数的头部下断点来进行调试,根据OD中函数头部的提示,函数头部在004D3874处,按F2下断点,然后进行动态调试
在这里插入图片描述
(7)下好断点之后就可以运行程序进行动态调试了,按F9运行程序,程序运行后,重新打开FIWWSetup2.9.exe用假注册码进行注册,输入完成后,点击OK按钮,那么程序就会停止在我们下的断 点处,如下图所示,那么就可以进行动态调试了
(8)开始单步调试,按fn+F8进行单步调试,每一次按F8后注意寄存器和缓冲区值的变化,尤其是要关注注册码信息是否出现,当执行到004D389E时,出现假注册码
在这里插入图片描述
(9)出现我们输入的假注册码,此时要特别留意,一般注册算法会在这个附近出现。根据经验来看,一般注册算法会出现在004D348E后的第一个call指令处,而关键跳则是 出现在004D348E后的跳向注册失败信息的的跳转。为了验证这个想法,修改004D3498 处的跳转使其实现,跳过注册失败的信息,修改如下图所示:
在这里插入图片描述
(10)保存修改后的文件,然后打开注册,发现可以注册成功,爆破成功!

实验总结

经过这次实验,我学会了怎么使用OD等工具破解U盘监控器和Free Internet Window Washer,绕过或发现注册码,达到注册成功目的,查阅资料和老师给的指导书慢慢完成了实验,但其中也遇到一些问题,比如对OD操作不熟练,因为自己下载的是英文版的OD,加上自己英语不好,导致找一些操作的时候有些麻烦,下载汉化版会方便些,但以后还是要好好学习英语啊,然后就是在调式跟踪错误代码时,自己粗心大意没仔细看缓冲区的内容导致在找JP指令花了不少时间。总而言之,这次实验收获好多,以后有软件注册不成功可以尝试分析理解了。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值