逆向-自校验绕过-2

上一种自校验校验的目的是为了防止程序被脱壳

但是程序在未脱壳的前提下也存在被破解的可能

所以这种自校验的目的是校验是否存在使用OD等直接修改程序数据的行为存在

该校验方式被称为重启自校验。

即在运行中先将正确的注册码等数据存储在文件或是注册表项等地方

等到重启时,将上次输入的注册码与正确的注册码进行比对,只有比对成功才能永久解锁。

 

 

 

所以,破解该类型程序的重点在于在程序刚重启时,在判断注册码之前修改部分代码,以达到完全破解的目标

所以我们要对GetStartupInfoA()函数下断点

该函数是初始化函数,会断在程序运行之前,该校验方式就会停到从注册表项中取内容的那一步上

然后F8向下隔不久之后就能够看见关键call,和test 或者是cmp之类的判断内容

至此,修改标志位或读取真注册表项即可得到软件使用权限。

程序载入OD   下断bp CreateFileA,F9运行   OD中断,ALT+F9执行到用户代码      下面就是F8单步跟踪了      程序在0048EE23处出现对话框,很明显,在0048EDF9处的跳转就是关键跳了   直接将0048EDF9  /7E 38        jle short dumped_.0048EE33   改成0048EDF9  /7E 38         jmp dumped_.0048EE33   保存下,运行成功   把脱好的程序载入ResScope,发现有非标准资源结构,那就用Fix Resource修正下资源,再次再入ResScope,这次可以修改资源了,但是问题又来了。。。   打开修正好的程序程序只是一闪而过就自动关闭了,看来还有校验,继续操起OD,再次载入程序   下断bp CreateFileA,F9运行   OD中断,ALT+F9执行到用户代码,继续F8单步走      0048EE5F出OD就会跑飞了,显然0048EE5D处的跳转又是关键跳啦,   把0048EE5D  /74 05        je short 1.0048EE64   改成0048EE5D  /74 05        jmp 1.0048EE64   就OK了,保存,运行一切正常   现在程序太大,我们再用CxLrb大侠汉化的Resource Binder V2.6处理一下!   挖塞,程序一下从154M缩小到1.13 MB,这样的结果还是让人满意的   但是一运行,程序又是一闪而过,还有校验,OK,继续   OD载入程序,这次可能会比较卡   下断bp CreateFileA,F9运行   OD中断,ALT+F9执行到用户代码,继续F8单步走      0048EE3F处OD跑飞,也很明显了0048EE3D处就是关键跳啦,   把0048EE3D  . /74 05       je short 2.0048EE44   改成0048EE3D  . /74 05       jmp 2.0048EE44   保存,运行成功,感觉048EE4A处的跳转应该也是个校验吧,只是没用到,程序处理到这里就差不多了,有是不妥之处还望大侠们指点!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值