shark恒破解笔记4-API断点GetPrivateProfileStringA
2024-09-01 11:01:33
这小节是通过断在GetPrivateProfileStringA,然后找到注册码的。
1.运行程序
输入假码111111,提示重启。通过这判断这是一个重启来验证的,那么它是如何来验证的呢?观察程序目录下会发现有一个名为“config.ini"的文件
那么判断是通过读取ini文件来进行验证的。所以可以在GetPrivateProfileStringA处下断点,在它读取了ini中的注册码后,必然会与真码进行比较,那么我们就可以找到真码了。载入OD
下API断点:GetPrivateProfileStringA。这次是在这里设置断点:
运行程序,断下来
此时,就位于了GetPrivateProfileStringA函数里面。这里记录一下,我们利用这个断点,是因为这个软件是有壳,我们为了进入用户领空进行操作,所以利用了这个断点。
现在我们要脱离系统领空,进入程序领空,就用不到这个函数断点了。
所以Alt+F9返回到用户代码去。
观察汇编代码
从系统空间返回程序了,可是这里没什么关键跳,也没再寄存器窗口里看到可疑的字符串。只好一路F8直到retn。
跳出了上个call后,还是没发现什么。只好继续F8了。不久,就又断在了GetPrivateProfileStringA处,还是老办法Alt+F9返回到用户代码去。
返回用户空间后,只好继续F8。F8的过程中,观察堆栈和寄存器,不久就会出现这个:
可疑字符串出现了,感觉都复制出来,一一试验一下。
经测试我们找到了真码
最新文章
- 引用类型-Array类型
- Linux(二)__文件目录、常用命令
- MySQL 使用笔记
- Linux常用命令总结--分布式应用部署与监控
- android 弹幕效果demo
- SharePoint自动化系列——Add/Remove “Hold” from items
- JAVA IO流的简单总结+收集日志异常信息
- VIM 语法检查
- 彻底解决TAP(点透)提升移动端点击响应速度
- C#中字符串的处理,对象的引用及继承(Tenth day)
- 「七天自制PHP框架」第三天:PHP实现的设计模式
- JavaScript 创建一个 form 表单并提交
- 简单RPC框架-业务线程池
- Django的admin.py注册流程
- Error RZ3007: Targeted tag name cannot be null or whitespace
- linux命令之:yum
- CSS/Xpath 选择器 第几个子节点/父节点/兄弟节点
- 【HDU1846】Brave Game(博弈论)
- [总结]web前端常用JavaScript代码段及知识点集锦
- kdbg安装使用教程(kali)