CrackMe027:CD-CHECK(光盘检查)

下面是网上的160个CrackMe的部分逆向笔记,包括逆向思路、注册机实现和逆向中常用的知识整理

注意:逆向前一定要先操作一下软件,熟悉软件的运行现象;逆向一定要自己操作一遍,看是很难看会的(高手除外)


用PEiD查看这3个连续程序,都是用VC6.0编写,没有壳

在这里插入图片描述

1.程序信息

程序就一个有用的按钮,点击出现错误提示框,程序显示的是光盘检测

在这里插入图片描述

扩展:光盘检测

就是程序运行时有可能检查下面信息;若检测符合要求,才会执行正常的程序流程

  • 1.是否存在特定的磁盘?
  • 2.磁盘里存在特定的文件?
  • 3.检测特定文件的内容?

常用函数:

GetLogicalDriveStrings或GetLogicalDrives	//得到所有驱动器的列表
GetDriveType							   //函数检查每个驱动器
CreateFile或FindFirstFile				   //检查特定的文件是否存在,或者检查属性大小等

GetDriveTypeh函数返回值含义

在这里插入图片描述

2.按钮对应函数入口

因为函数入口找起来会有一点点麻烦,下面列举了2种方式,可以看到OD和IDA配合使用可以提高效率

  • 1.OD查找函数入口

OD加载程序,找到错误字符串被引用的地址0x4013A4

在这里插入图片描述

通过地址0x4013A4找到Check for CD按钮的处理函数,起始地址为:0x401207

在这里插入图片描述

小插曲:找到按钮的入口稍微浪费一点时间,因为函数入口不是常规的push ebp,不过操作几次就可以找到,不难

  • 2.IDA直接找函数入口

定位到错误字符串被引用的地址0x4013A4F5执行反编译,一步到位,直接找到函数入口

在这里插入图片描述

3.分析注册按钮

直接上IDA分析后的截图

在这里插入图片描述

逆向成功需要的处理流程:

  • 1.关键跳转1:遍历驱动器列表,找到一个非固定磁盘,比如U盘或者CD
  • 2.关键跳转2:非固定磁盘里要有一个文件名 + 后缀为CD_CHECK.DAT的文件

4.验证

直接在U盘里里新建一个文件名 + 后缀为CD_CHECK.DAT的文件),程序就可注册成功

由于手头暂时没有U盘,用ODIDA分析中的2个关键跳转改成nopjmp,间接验证一下IDA分析的是否正确

在这里插入图片描述

将修改保存到文件

在这里插入图片描述

执行被修改后的文件,直接被爆破成功

在这里插入图片描述

5.参考

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值