逆向实战 3#解除程序重启验证
逆向实战 3#解除程序重启验证文章目录逆向实战 3#解除程序重启验证环境 & 工具常用系统API文本文件注册配置文件注册注册表注册感觉跟上一次做的破解验证比较像,但是使用到了更加丰富的API并且把注册验证的常用的API做了一个较为详细的梳理省流助手:啰嗦至极菜鸡学习笔记,多图警告环境 & 工具win xp 32位吾爱破解版ollydbg常用系统API文本文件CreateFile -
逆向实战 3#解除程序重启验证
感觉跟上一次做的破解验证比较像,但是使用到了更加丰富的API
并且把注册验证的常用的API做了一个较为详细的梳理
省流助手:啰嗦至极菜鸡学习笔记,多图警告
环境 & 工具
- win xp 32位
- 吾爱破解版ollydbg
常用系统API
-
文本文件
CreateFile -> WriteFile -> ReadFile->CloseHandle
-
ini文件
WritePrivateProfileStringA -> GetPrivateProfileStringA
-
注册表文件
RegCreateKey->RegOpenKey->RegSetValue(Ex)->RegQueryValue(Ex)
文本文件注册

找到关键字符串“重启验证一”,所在位置就是写入验证码的主函数,定位到该函数开头位置并下断


让程序运行至断点位置开始调试,调试期间使用enter步入,观察是否有有价值的call,主要观察的是否有有价值的系统API,一直到运行到0x0040275B处的call,发现了此处获取了输入框输入,说明程序在这里把我们输入的注册码读入了并返回了长度,并且在读入后判断了注册码是否为空

下方创建文件,并根据返回值确认文件是否创建成功,如果成功,则进行下一步


随后写入文件,然后退出程序


通过这个我们获知了验证文件名、保存地址和保存方式,所以现在可以去找读入验证文件的位置了,使用搜索字符串方法搜索文件名

双击跳转,并使用f4运行到相应位置

观察附近字段,找到关键API——确认文件是否存在

在下方找到了对应的验证通过字符串,观察验证通过上方的call,显然就是判断注册码有效性的函数,如果返回值为0,那么test eax eax就会让下方的je跳过验证通过

此处其实只需把je指令nop掉就可以了,但我们为了更完美的破解验证,进入验证call观察逻辑
发现程序是一个简单写死的strcmp,所以修改验证码

成功通过验证

配置文件注册
配置文件的注册其实与文本文件的注册同理
由于配置文件写入的API使用频率较低,所以这里直接把断点设置在WritePrivateProfileStringA处

随后跳出当前函数(目的,观察压入API的参数)
得知写入ini文件的注册码格式后,直接搜索52Pojie.ini并下断点,重载后向下运行到filename参数为52pojie.ini的GetFileAttributesA函数处,观察下方出现的验证通过字样上方的call

还是strcmp,属于是梅开二度

注册表注册
原理一样,不想写了,去打游戏,心情好了补上吧,可以评论区催更
本博文仅以学习交流为目的,侵删
更多推荐



所有评论(0)