好友
阅读权限10
听众
最后登录1970-1-1
|
1.调试环境构建
1.1 笔记本电脑
1.2软件调试环境对象版本:exifpro2.1调试工具:OllyDbg操作系统:Windows xp
2.调试过程122.1 软件爆破2.1.1 前期分析ExifPro 是一款适用于显示、操作和浏览图像的工具。用户可以通过它来查看图像,并且可以进行复制、更改大小、裁切等调整操作。我们可以通过点击help按钮,enter serial number的按钮来进行注册操作,在点击之后我们需要输入邮箱和serialnumber我们此时随便输入一个值便会有弹框信息提示我们serial number有错误。方案一:这里我们更改注册的验证逻辑,将生成的验证码替换为我们已知的验证码,从而完成注册。方案二:强行绕过逻辑,使软件直接到达验证成功的代码从而完成软件的解锁
2.1.2 具体方案分析首先打开软件,找到help,打开后点击第二项即可进行注册。
我们当然不知道正确的邮箱与序列号,随便输入后出现如下对话框 此时,想到找到这条语句,应该就能找到验证的附近,就进入od搜索该语句
点击进入该地址,发现在其上面一点有一个跳转,触发成功即可跳出这一段,那么验证一定是在跳转上面,则在段首设下断点重新运行,一步一步走,遇到阻碍的跳转就改变标志位继续走,此时看出验证部分的实际验证方法(见注释)即前22位数相加除以100的余数若与23位乘以10加上24位相等则合法
这里直接改标志位跳过,找到了一个call看名字就知道其关键,是将用户名转换成数字的,直接步入看看 找到一个循环,应该就是转换用户名和序列号的过程,循环后面两个mov应该就是保存结果的为了看到将转换结果存储到了哪里,这里用ctrl+F9返回到调用这个call的地方,然后看到两个存储的位置,看到计算的结果然后在内存变量处下内存访问断点然后跟踪,发现程序再次调用00FAF538内存存储的数值,应该是要对序列号进行校验操作找到最后进行校验计算的两个数值的地方,序列号和用户名转化成的数值将这两个东西进行异或运算,将得出的结果跟0x2753进行求余运算,将得出的结果与 0x200进行比较如果相等则完成软件的注册。
2.1.3 注册方法这里选择注册方法是通过反向构造得出可以用于注册序列号数值和用户名数值,将这两个数值在进入验证环节之前替换正常注册流程中的数值,由此便可以完成注册。选择用户名数值为0x100、序列号数值为0x300将这两个数值输入,这样就满足余数为0x200的条件 随便输入邮箱和合法的序列号最后打开发现注册成功 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|