逆向---03.mov、test等汇编指令、EAX、关键Call、OD调试技巧
上一篇:逆向---02.je & jmp & jnz 、OD调试
基础知识:(栗子中也会说的)栗子:链接: https://pan.baidu.com/s/1qZbbTvQ 密码: ifup
1.寄存器的知识:(C里面的一些基础,一般用32位的比较多)
2.关于运行后搜索中文字符串的说明:没壳怎么都行,有时候有壳不一定要脱壳再OD调试,直接带壳破解也是可以的(下节课说下带壳用中文搜索)
3.快速找跳转的技巧,右击来自xxx的跳转,转到xxx
4.寄存器窗口看不见了,点击寄存器窗口的内容部分(不松手),右拉
5.关于程序不知道执行到哪或者调试过程中误操作的说明:双击EIP回到当前执行到的代码处
6.汇编中比较命令cmp&test:cmp属于加减运算的范畴,而test属于逻辑运算的范畴
7.调试快捷键扩充:F2下断点,F7进Call,F8单步,F9运行,Shift+F9 忽略异常运行(后面有案例),ALT+F9 从系统领空返回到程序领空(后面会说)
8.关键跳说明:跳过了成功到达了失败,反之亦可
9.关键Call举例说明:Call类似于方法,比如这个地方,直接该je跳转了,那么这个条件判断算pass了,但可能还有千千万万的判断,如果改了关键call就一劳永逸了
(举个栗子:登录验证,有些页面必须登录才能进入,你只改那个页面的判断,那么那个页面可以进了,其他页面呢?要是直接pass掉登录验证,那什么页面不能进?)
之前说过了nop,je,jnz,jmp之类的,这次说下mov 赋值指令,这几个基本上是最常见的指令了。下篇文章起就有点难度了,这次栗子就详细演示一下,也算是对前2课来个复习
OD载入程序(发送到OD,直接拖到OD窗口都可以),F9运行
1.自己摸索摸索软件,发现了有个提示,我们就以 “注册” 当做关键词,来中文搜索一下
2.右击反汇编窗口,中文搜索
3.搜索一下,Ctrl+F
搜注册的时候发现了这个
4.关键跳出现了,F2下个断(下面我们来用之前讲的方法来爆破这个程序)【关键跳:跳过了成功或者失败的跳】
4.快速找跳转的技巧,右击来自xxx的跳转,转到xxx
5.我们继续点注册的时候发现~~断下来了
6.你决定怎么跳转,之前讲过je,jnz,jmp,nop和Z标志位
(还是复习一下抽象图吧)
这边是调试,我们就先该Z标志位(至少得知道结果是不是才去修改啊,不然改一大堆不是白改了?说不定还把程序搞塌了)
7.F8单步跟踪看看,发现的确是我们想要的(重启验证之类的回头再详细说)
8.重复上面步骤,到断点处,修改下指令,nop也行,我这边就用jnz了(推荐新手用Nop)
好处不多说,编过程序的应该知道,乱nop会引发一下不必要的异常(当然了,一般情况下没问题的)
(比如这个,瞎Nop可能就让程序业务逻辑乱套了,出现异常也就很正常了)
9.任意选定一些行数,包含你修改的行就行,复制到可执行程序,选择(所以修改也行,毕竟我们也没修改其他东西)
10.到了一个其他窗口,不用管它,右击保存文件
12.运行破解版程序
13.按照以往情况肯定已经破解了,但是这个程序不行,我们继续来一遍,点<<重新载入
运行》中文搜索关键词“注册”》关键Call处下断(一般都是关键跳的上面一个Call),点注册按钮
Call类似于方法,比如这个地方,直接该je跳转了,那么这个条件判断算pass了,但可能还有千千万万的判断,如果改了关键call就一劳永逸了
(举个栗子:登录验证,有些页面必须登录才能进入,你只改那个页面的判断,那么那个页面可以进了,其他页面呢?要是直接pass掉登录验证,那什么页面不能进?)
test al,al 比较上面Call的返回值,je根据上面比较的返回值来决定跳与不跳,来一个Gif的演示(注意,修改寄存器窗口的值不能保存,这边只是用来调试用的)
AL是EAX的低位(看GIF的时候,可以直接看看Z标志位,1则红箭头,je跳,EAX这时候是0,Z为0,EAX这时候是1)
知道了关键,下面我们来修改汇编代码,进Call按F7或者
点注册,在Call断下的时候我们F7进Call,修改一下Call的内容:mov al,1 (手动给al赋值)retn 返回
15.保存一下所有修改
打开Crack文件,发现不弹框了==》重启验证被灭了
看看注册内容,我们啥也没写,一样注册成功(以后要是写注册码之类的,可以写诸如11111111,2222222等等,调试的时候方便看见)
逆向---03.mov、test等汇编指令、EAX、关键Call、OD调试技巧的更多相关文章
- 逆向---02.je & jmp & jnz 、OD调试
上一篇:逆向---01.Nop.中文字符串搜索.保存修改后程序 OD调试基础:(01.02篇练手工具:https://pan.baidu.com/s/1kW2qlCz) nop是删除跳转,你别问我,我 ...
- x86汇编指令脚本虚拟机
简介 这是一个可以直接解释执行从ida pro里面提取出来的x86汇编代码的虚拟机. 非常精简,整体架构上不能跟那些成熟的虚拟机相比,主要目标是够用.能用.轻量就行,如果觉得代码架构设计的不是很好的话 ...
- Windows内核 基本汇编指令
1)用VS2010新建Win32 Console Application,工程名为ACECore,工程建立完成后得到打开文件ACECore.cpp,代码如下: #include "stdaf ...
- go语言调度器源代码情景分析之五:汇编指令
本文是<go调度器源代码情景分析>系列 第一章 预备知识的第4小节. 汇编语言是每位后端程序员都应该掌握的一门语言,因为学会了汇编语言,不管是对我们调试程序还是研究与理解计算机底层的一些运 ...
- 基础汇编指令(16bit 32bit 64bit)
(zz from http://blog.luoyuanhang.com/) ##常见寄存器 寄存器 16位 32位 64位 累加寄存器 accumulator AX EAX RAX 基址寄存器 ba ...
- 汇编 指令lodsb,lodsw,lodsd
知识点: 汇编指令 lodsb,lodsw,lodsd 一.汇编指令LODSB //scasb scasw scasd //stosb stosw stosd 1. __asm lodsb //作用 ...
- 1.汇编指令介绍(arm)
本文作为本人学习过程中的记录及时不时的突发奇想偶记.鄙人菜鸟一只,文中如有错误或疏漏,若读者肯不吝赐教,在下感激零涕.文章一直不断更新中 一.汇编语言 汇编语言是一种应用计算机.微处理器.微控制器或其 ...
- 实验1 查看CPU和内存,用机器指令和汇编指令编程
·实验任务 (1)使用Debug,用E命令和A命令以两种方式将指令写入内存 机器码 汇编指令 b8 20 4e mov ax,4e20h 05 16 14 add ax,14 ...
- 浅析VS2010反汇编 VS 反汇编方法及常用汇编指令介绍 VS2015使用技巧 调试-反汇编 查看C语言代码对应的汇编代码
浅析VS2010反汇编 2015年07月25日 21:53:11 阅读数:4374 第一篇 1. 如何进行反汇编 在调试的环境下,我们可以很方便地通过反汇编窗口查看程序生成的反汇编信息.如下图所示. ...
随机推荐
- Excel 中批量处理数据(改成 json 格式)
如下excel: 需要处理成下面的效果: 方法: 在 C2 中输入公式: ="{"""&"code"&"" ...
- item 5: 比起显式的类型声明,更偏爱auto
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 啊,简单愉快的代码: int x; 等等,讨厌!我忘了初始化x,所 ...
- SKINNY加密算法详解(无代码,仅加密)
原作者论文请参考<The SKINNY Family of Block Ciphers and Its Low-Latency Variant MANTIS> 地址为:https://li ...
- ruby安装及升级
在centos6.x下执行上面的"gem install redis"操作可能会报错,坑很多!默认yum安装的ruby版本是1.8.7,版本太低,需要升级到ruby2.2以上,否则 ...
- ansible环境部署及常用模块总结 - 运维笔记
一. Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...
- Git分支管理的策略梳理
当下最流行的版本管理系统应该是非Git莫属.相比同类软件,Git有很多优点,其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便.有些传统的版本管理软件,分支操作实际上会生成一 ...
- 个人博客作业-Week2 (代码规范, 代码复审)
代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释. ...
- 2017BUAA软工个人项目之数独生成与求解
1.项目GitHub地址:https://github.com/ZiJiaW/Soduko (由于一开始把sudoku看成了soduko,于是名字建错了,读起来可能有点奇怪…) 2.项目PSP表格如下 ...
- [BUAA_SE_2017]案例分析-Week3
Week3 案例分析 一.调研评测 案例: 神策数据的数据概览功能 Demo: 电商类产品Demo 评价: d) 好,不错 个人评价:神策数据电商类产品Demo的数据概览功能是相当不错的.首先点击进入 ...
- shell脚本--数值比较
用于数值比较的无非大于.小于.等于.大于等于.小于等于这几个. 比较格式: [ 数值1 比较符 数值2 ] 注意左边的括号与数值1之间有一个空格,同样,数值2和右边的括号之间也有空格. 数值比较运 ...










(还是复习一下抽象图吧)



(比如这个,瞎Nop可能就让程序业务逻辑乱套了,出现异常也就很正常了)













