什么是重启验证:
重启验证顾名思义就是在程序启动时验证注册信息。
执行流程:
- 基本的执行流程:注册信息输入–>给出提示–>程序重启同时执行验证机制–>正常执行
- 扩展的执行流程:注册信息输入–>执行部分验证机制/执行假验证机制–>程序重启–>执行真验证机制–>正常执行
对于有经验的作者来说,可以在注册信息输入和程序重启之间加入假的验证机制,假的验证机制一般比较简单,比如说只是当单纯的明码比较,当我们输入这个假的注册码的,程序一般会提示注册成功,此时程序就会知道我们是逆向者,在程序重启时就会假装注册成功,在执行程序功能时就会报错或是无反应,这就是所谓的暗桩。
重启验证的类型:
根据写入信息位置的不同分类:一类是将注册信息写入文件中,一类是将注册信息写入注册表中。
定位关键代码:
- 字符串定位
通过OD字符串插件扫描敏感字符串,一般出现的文件路径或是注册表路径都可能是验证信息的保存位置 - 监控工具定位
通过procmon等监控工具监控注册信息的写入位置 - API定位
通过定位CreateFile,RegCreateKey等API来获取注册信息的写入位置
重启验证一:写入信息进txt
输入“123456”,点击重启验证一,会在该文件夹下生成txt文件。存储的是刚刚输入的注册码。