逆向实战 2#去除程序注册、正版校验,绕过联网校验

逆向实战 2#去除程序注册、正版校验,绕过联网校验


慢慢难起来了,直接猛男落泪

在国家包吃包住的路上又艰难迈进一小步【doge】

省流助手:啰嗦至极菜鸡学习笔记,多图警告

环境 & 工具

  • win xp 32位
  • 吾爱破解版ollydbg

去除注册

行为分析

首先拖进PEiD查壳,发现未加壳

image-20220105154946831

点击注册,出现“未注册版本”。

可以输入注册码,随便输入一串字符然后点击确认,软件退出,没有特殊提示。

随后自动再次打开,仍为未注册版本

过程分析

既然目前为“未注册版本”,那么自然有“已注册版本”或者“注册版”,所以,而且这个提示应该是在软件已经确认注册码有效之后才会出现,所以不妨从已确认的结果向前反推认证的过程,所以首先在OD中搜索“注册”字符串,找到程序判断注册是否成功的位置

image-20220105185215307

image-20220105185300824

双击跳转到相关代码,发现在将“已注册版本”压入寄存器中操作前,存在着一个跳转,直接跳过了赋值语句

image-20220105185521705

那么显而易见地,想要使得程序成功注册,我们就需要让上述跳转不执行,而关键的判断就是变量ds:0x579F24的值是否为0,所以这里我们搜索与这个地址有关的赋值和判断语句(右键->查找->所有常量)

在Reference窗口中可以看见相关的搜索结果,保险起见,我们把相关的语句全部下一个断点,然后重载并运行函数

image-20220105194203405

第一个在0x541650处的断点被触发,观察代码,发现该语句给目标地址赋值为1,而我们的目的是让目标地址不被赋值为0,与目标相符。

再仔细查看赋值语句是否有前后文跳转关系,结果发现了一个跳转,使得mov dl, 0x1的语句被跳过,所以为了目标地址被顺利赋值为1&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值