OD 实验(八) - 对一个程序的逆向
2024-10-19 07:27:42
程序:
运行
弹出 NAG 窗口,提示要花 20 美元注册
然后会进入主窗口
提示剩余 5 天的使用时间
点击,菜单栏 -> Help -> About
显示未注册版本
逆向:
用 OD 打开程序
首先把剩余 5 天的字符串作为切入点
先按 F9 运行一下程序
右键 -> 查找 -> 所有参考文本字串
右键 -> 查找文本
要把整个范围勾选上
继续查找看看,按 Ctrl+L
这个和第一个是一样的
双击第一个查找到的结果,跳到该字符串所在的位置
这个地方的上一条语句是一个 jnz 跳转
如果跳转实现,就会跳过该字符串
在 jnz 跳转指令处下一个断点,重新跑一下程序
程序停在该指令处,此时的程序还没有弹窗和主界面
此时的 jnz 跳转指令不会进行跳转
将 ZF 置 0,让 jnz 实现跳转,再按 F9 运行
程序主界面提示剩余天数的字符串没了
接着去除 About 上显示的未注册版本
跟上面的操作差不多,先搜索字符串
找到一个
双击查看该字符串所在的位置
上面也有一个 jnz 跳转指令,在该指令处下一个断点
如果 jnz 执行跳转的话,将会跳过显示该字符串
在该字符串处也下一个断点
往上拉一点
在这个过程的入口处也下一个断点
重新跑一下程序
点击,菜单栏 -> Help -> About
OD 将停在程序入口的断点处
继续往下走
走到 jnz 处,停下
此时的 jnz 不会跳转,把 ZF 置 0 实现跳转
此时的程序显示的是注册版本
最新文章
- 【原创】kafka producer源代码分析
- C#中this在扩展方法的应用
- Qt 程序和窗口添加图标
- js-- 一些题目
- Dim Loop 出现结果不同
- Java基础知识强化06:使用BigDecimal计算阶乘1+1/2!+1/3!+……
- [statsvn]-svn代码量统计
- layer 的一些知识
- HTML5头部标签中<;meta>;常用信息
- Exynos4412从SD卡启动的简单网络文件系统制作
- RxJava系列2(基本概念及使用介绍)
- 第一次c语言上机
- ASP.NET Core框架揭秘(持续更新中…)
- bean 装配
- 18,EasyNetQ-使用替代DI容器
- Redis 下载与安装(Windows版)
- ActiveMQ的发布者/订阅者模型示例
- kafka资料收集
- VS2012提示突然没有了
- pygame游戏开发-简介