160个CrackMe_逆向 1/160

文件名:Acid burn

一、打开软件,查看基本信息

进主界面之前有个MessageBox,也就是neg,先把它去掉,虽然这个不去掉对程序没什么影响

一路F7/F8,找到弹窗的函数,前面有个JE,改成JMP无条件跳转,过掉弹窗函数

过掉neg就可以继续下面的分析了

 

 

很明显属于常见的注册码-用户名之类的软件,这种软件一般能用查找字符串的方法找到关键点

二、在OD中加载

1、使用插件-中文搜索引擎-搜索ASCII,找到关键字符串

2、双击字符串,就可以跳到字符串所在的代码

关键字符串所在的函数一般都是关键函数,所以可以在函数开始的地方按F2下断点,之后就可以开始动态调试了

3、按F9让程序运行起来,在文本框中随便输入一些字符串,点击Check it Baby

 

很明显,这是提示不是关于验证序列号正确性的,而是关于序列号格式错误,而且验证序列号正确性的函数中断点也没有断下来,说明程序没有进入到那个函数中。

4、继续使用插件查看字符串,找到刚才提示的字符串,双击进入到代码处

在函数开始处下断点,重新点击按钮,程序断下来,F8单步步过

上面是在处理Name

出现了一个比较,EAX的值就是之前求出来name的长度,也就是说如果name的长度小于4,那么就会提示错误。

上面这个函数运行完的时候EAX的值是7,一般函数的返回值都是放在EAX中,这个值刚好就是name的值,所以可以知道这个函数是计算name的长度的

这里注意看EDX和EAX的值,分别是用输入的,跟系统内部的一个字符串,函数运行完之后就出现了提示正确的字符,所以这个函数是一个字符串比较函数,如果正确,零标志位ZF = 1,也就是两个字符串相等,那么就会提示正确,否则就会跳到错误的地方。

第二个比较的地方,这里是在比较serial

因为输入的序列号跟用户名都不对,所以跳到了提示错误的地方。

三、破解程序

破解分两种,一种是暴力破解,也就是直接改跳转,让程序直接跳到走向正确的流程,还有一种就是找到正确的序列号。

正确的serial和name通过上面的比较已经知道了。

正确的name:CW-4018-CRACKED

正确的序列号:CW-5494-CRACKED

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值