Ollydbg使用教程学习总结(四)
解密系列之OD使用教程13——迷途
程序:XoftSpy41._96.exe
用PEID查看,是VC6编写的程序,用OD载入
获取文本框输入内容API:GetWindowTextA
API下断方法:
a.右键=>查找=>所有模块间的调用,直接输入API,找到后右键该行=>在每个调用到GetWindowTextA
上设置断点;
b.Ctrl+N,找到后右键=>在每个参考上设置断点;
按F9运行程序,删除输入注册码之前就触发的断点,最后输入注册信息之后,在如下位置断下
继续按F8浏览程序,在有跳转处仔细判断是否应该使之实现,来到下面地址处,查看该跳转后所在位置,可知应使其实现,上面有关键call,下断重新运行程序并跟进分析,仔细浏览下面的程序,发现还有与这段完全相同的程序段
可知程序可能在多处地方都存在验证注册代码,跟进后可看到这个子程序有2个返回点,在第1个返回点附近有mov al,1这条指令,猜测是成功的标志;在第2个返回点有xor al,al指令,猜测是失败的标志;按F8单步运行,遇到跳转时修改ZF标志位使其从第1个返回点返回,最终提示“恭喜注册成功”的信息,但是点击确定后发现并没有注册成功!这就是“迷途”!
解密系列之OD使用教程14——知返
程序:XoftSpy41._96.ex.
上一讲用获取编辑框内容的方法并不能实现破解,这次换个思路,采用字符串查找法。
双击高亮这行,来到
发现关键call,继续往上浏览,在子程序开始处下断,发现切换到主程序界面就会触发该断点
跟进关键call,发现子程序只有1个返回点,继续按F8单步执行,来到
根据栈顶所示,推测这个call是验证算法call。继续往下看,如果注册成功的话,会执行以下2句指令
mov bl, 1
mov al, bl
因此,将第2句指令改为mov al, 1即可,保存到可执行文件,测试成功。
解密系列之OD使用教程15——inline patch “内嵌补丁”
程序:DVDMen.Studio.exe
运行程序,有NAG窗口,有30天的试用期,将系统日期调至提前1年,发现软件过期不可用了,再重新将系统的日期调回,但软件还是过期不可用,说明程序在某个地方写入了是否过期的标志。
用PEID查看为VC6编写的程序,用OD载入程序,输入注册信息并点击确定,发现程序并不会断下。输入完注册信息后先不点击OK按钮,在OD中按下Ctrl+N,输入KillTimer
,并在每个参考上设置断点,然后返回软件点击OK,程序断下(此处KillTimer
是break
的作用,构成switch case
语句)。根据分析程序提示信息,得到eax必须等于4才可实现破解成功,如图
选中cmp eax, 4
这行,下面提示“跳转来自004DC1A0
”,右键=>转到jnz来自004DC1A0
,最终找到switch case
语句的开始处
在该子程序头部下断,按F9运行程序,输入注册信息,最后断下,单步执行,发现eax的值来源于上图高亮这行,直接修改为mov eax, 1
,但是修改后会覆盖后面2条指令,因此需要采用“内嵌补丁”的方式进行修补,补丁所在位置为005E47D0
,即程序后面填补为0的区域。
在004DBD9E
处右键=>Bookmark
=>Insert Bookmark
插入书签,对该句指令进行修改如下
同样,在5E47D0处进行修改如下,最后跳转回004DBDA3(即转到下一句继续执行)
将所做的修改保存到可执行文件,打开程序测试,发现程序进入死循环,这是为什么呢?继续载入未修改的程序进行分析,发现把eax的值修改为4后,程序并不能跳出switch case
语句,而把eax的值改为0B
后即可正常跳出。(此处解释有点牵强,但事实却是如此,还需深究原因)
解密系列之OD使用教程16——“堆栈法”
程序:DVDMenuStudiX.ex.
运行程序,先产生主窗口,再出现NAG窗口。用OD载入,按F9运行,NAG窗口出现后,按下暂停键,在打开堆栈窗口如下
双击最后一行,来到
004DC0D1 . E8 77FD0C00 call 005ABE4D
在该行下断,并在该子程序开始处下断
004DBD80 . 55 push ebp
004DBD81 . 8BEC mov ebp, esp
重新载入,按F9,来到断点处,按F8单步执行发现
004DBDBE . 83B8 64010000>cmp dword ptr [eax+164], 1
004DBDC5 . 75 1F jnz short 004DBDE6
004DBDC7 . 8BCF mov ecx, edi
如果上面跳转实现的话,就会004DC0D1
处的call而调出NAG窗口,因此NOP掉该条指令,保存,即可破解。
Ollydbg使用教程学习总结(四)相关推荐
- Ollydbg使用教程学习总结(二)
解密系列之OD使用教程4 程序1:RegisterMe.exe 把程序跑一遍之后我们发现程序有两个NAG,一个是在程序界面启动前出现,另一个是在程序关闭后出现的. 去掉第一个Nag方法如下: ①jmp ...
- Ollydbg使用教程学习总结(五)
解密系列之OD使用教程17--inline patch 程序:ReverseMe. NAGs.exe 新内容:硬件断点 用PEID打开,看到程序是用VC6.0写的,用OD载入,按F9运行后,出现NAG ...
- Ollydbg使用教程学习总结(三)
解密系列之OD使用教程9 程序:MrBills.exe 点击注册,输入邮箱和序列号后提示如下 突破口:该提示窗口中的字符串,查找如下 双击来到反汇编窗口,有个关键跳转,往上查看影响跳转的语句是test ...
- Ollydbg使用教程学习总结(一)
解密系列之OD使用教程1 使用例子程序为Hello.exe OD基本快捷键及功能 从系统DLL领空返回到程序领空,Alt+F9 通过OD将程序的标题"Hello world"改为& ...
- SQL基础教程学习第六站:数据更新
仅用于记录学习,欢迎批评指正,共同交流,共同进步,大神勿喷 系列文章 SQL基础教程学习第一站:PostgreSQL下载安装以及如何创建并登录数据库: SQL基础教程学习第二站:数据库基本知识: SQ ...
- OllyDBG完美教程(超强入门级)
OllyDBG 视频教程:https://www.bilibili.com/video/av6889190 动态调试工具之OllyDbg(OD)教程:https://www.bilibili.com/ ...
- 一站式SpringBoot for NoSQL Study Tutorial 开发教程学习手册
SpringBoot2.0 + NoSQL使用教程,项目名称:"SpringBoot2NoSQL" 项目地址: https://gitee.com/475660/SpringBoo ...
- OllyDbg完全教程
OllyDbg完全教程 目录 第一章概述..................................................................1 第二章组件....... ...
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer...
MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.5 Adding a raster layer 一.前言 MapServer不仅支持 ...
最新文章
- 如何防止批处理文件执行后自动关闭控制台
- 【杂文】企业数字化转型展望—角色转型
- unix grep命令的大致实现
- Extension spartacussampledata doesnt specify a path and no scanned extension was matching the name
- java enumeration 排序_Java如何对java.util.Enumeration进行排序?
- 时隔两年,盘点ECCV 2018影响力最大的20篇论文
- 英特尔预计第12代酷睿H系列处理器将有超过100款设备采用
- 设计模式--策略模式(C++实现)
- RCP中如何使用代码安装、运行plugins
- linux 测试udp端口是否打开,udp端口如何打开?UDP端口测试介绍
- python的基本函数图像_python绘制基本初等函数图像
- UML统一建模语言习题一
- Mac终端打开VsCode
- SpringBoot 系列教程(七十七):SpringBoot整合ehcache缓存
- 微信公众号考试成绩查分系统
- 一对同居男女同一天的日记对比
- 英语长句分析经典100句
- linux下挂载硬盘!
- ubuntu快捷键设置后 无效问题
- 开源无国界?vue-cli、node-ipc被投毒事件分析
热门文章
- EasyMock教程–入门
- JavaFX 2.0布局窗格– HBox和VBox
- 为什么线程池里的方法会执行两次_面试官问你java都有哪些线程池,自己是否自定义过线程池...
- 两个数相乘积一定比每个因数都大_人教版五年级数学:因数、倍数与分数的整理与复习...
- xgboost简单介绍_好文干货|全面理解项目中最主流的集成算法XGBoost 和 LightGBM
- java中读取单个字符_如何使用Java中的Scanner类读取单个字符?
- html怎么设置数据条的颜色,jQuery EasyUI 数据网格 – 条件设置行背景颜色 | 菜鸟教程...
- html a标签去掉下划线_如何用HTML基本元素制作表格
- mysql数据库杀掉堵塞_Mysql解决USE DB堵塞详解
- mysql排插问题_MySQL一次数据插入故障记录