程序:

运行

弹出 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 实现跳转

此时的程序显示的是注册版本

最新文章

  1. 【原创】kafka producer源代码分析
  2. C#中this在扩展方法的应用
  3. Qt 程序和窗口添加图标
  4. js-- 一些题目
  5. Dim Loop 出现结果不同
  6. Java基础知识强化06:使用BigDecimal计算阶乘1+1/2!+1/3!+……
  7. [statsvn]-svn代码量统计
  8. layer 的一些知识
  9. HTML5头部标签中<meta>常用信息
  10. Exynos4412从SD卡启动的简单网络文件系统制作
  11. RxJava系列2(基本概念及使用介绍)
  12. 第一次c语言上机
  13. ASP.NET Core框架揭秘(持续更新中…)
  14. bean 装配
  15. 18,EasyNetQ-使用替代DI容器
  16. Redis 下载与安装(Windows版)
  17. ActiveMQ的发布者/订阅者模型示例
  18. kafka资料收集
  19. VS2012提示突然没有了
  20. pygame游戏开发-简介

热门文章

  1. JDK1.7之 HashMap 源码分析
  2. ffmpeg+EasyDSS流媒体服务器实现稳定的rtmp推流直播
  3. OPEN(SAP) UI5 学习入门系列之四:更好的入门系列-官方Walkthrough
  4. C++语言的url encode 和decode
  5. python 函数返回多个值
  6. 机器学习中的ground truth
  7. c语言符号常量与常变量的区别?
  8. BZOJ4518 Sdoi2016 征途 【斜率优化DP】 *
  9. 阿里云ECS 环境是CentOS 7.3安装mongodb3
  10. Sprint第一个冲刺(第七天)