当前位置: 首页 > news >正文

OllyDbgqaqazazzAcxsaZ

本文通过吾爱破解论坛上提供的OllyDbg版本为例,讲解该软件的使用方法

F2对鼠标所处的位置打下断点,一般表现为鼠标所属地址位置背景变红
F3加载一个可执行程序,进行调试分析,表现为弹出打开文件框
F4执行程序到光标处
F5缩小还原当前窗口,表现为所有打开的窗口都进行缩小
F7单步步入,进入函数实现内,进步到CALL地址处
F8单步步过,越过函数实现
F9直接运行程序,遇到断点处暂停
Ctrl+F2重新运行程序到起始处,用于重新调试程序
Ctrl+F9执行到函数返回处
Alt+F9执行到用户代码处,用于快速跳出系统函数(不好用)
Ctrl+G输入十六进制地址,在反汇编或数据窗口中快速定位到该地址处

 修改数据

找到要修改数据的地址所对应的HEX数据,双击该数据,弹出对应的编辑数据对话框,去掉对"保持大小"的勾选,可向后修改数据。由于C\C++中字符串以00结尾,需要将字符串最末尾的数据修改为00。选择十六进制编码文本框,在最末尾处插入00。单击“确定”按钮。

 

 字串参考

顾名思义,就是在程序中搜索特定的字符串或者编码,对于定位操作有很大的作用

一般操作是:

鼠标右键->search for(查找)->all referenced text string(所有参考文本字串)出现以下界面

可以同过右键点击->查找查找字符串,也可以双击直接跳转到目标位置

为了看看是否还有其他的参考,可以通过右键选择查找参考(find reference to)->立即数: 

OllyDbg 显示程序的某些部分时是 不正确的,错误的将可执行代码解释为数据.这种情况,你可以在反汇编窗口中右击选择 Analysis(分析) -> Remove analysis from module(从模块中删除分析) 手动删除分析结果
高亮显示 jumps 和 calls ,你使用它可能会更为方便但我个人不 喜欢(这会有不 同的体验),右键点击,选择 选项->界面选项->代码高亮

 

L 图标或 View-> Log,显示日志窗口, 通过配置,可以显示 OllyDbg 启动时保存在日志窗口 的不同类型信息,也涉及条件断点的信息。如果需要将日志进行导出,则右键->记录到文件

 

 

E 按钮 View ->Executables 显示程序 运行使用的模块:exe,,dll,,ocx 和 其它。 

 

 

M 按钮或 View->Memory 显示我们的程 序映射到内存的信息,一个内存块可能 被分为几个部 分
右键点击可以搜索不同种类的字符串, 可以在访问上设置中断

 

T 按钮或 View->Threads 显示程序的线程窗口
W 按钮或 View-> Windows 显示程序窗口

 

H 按钮或 View-> Handles,句柄窗口 

C 按钮或 View->CPU,允许我们返回到 O llyDbg 的主窗口,CPU 窗口。
P按钮或 View->Patches,如果程序经过 了修改,这里显示修改的信息,现在我们的程序还没
有被修改过,所以为空白。

 

K 按钮或 View->Call stack 显示调用堆 栈的窗口信息,可以尝试反向跟踪函数的
调用顺序。
B 按钮或 View->Breakpoints 显示程序 普通断点的列表窗口,这里不显示硬件 断点和内存断点。

 

R 按钮或 View->Reference 参考窗口, 显示我们在 OllyDbg 中搜索的结果。

 

 “...”按钮或 View->Run trace 显示 RUN TRACE(RUN 跟踪)命令的结果。

 寄存器

显示有 EAX,ECX,,EDX,,EBX , ESP, EBP,,ESI,,EDI 和 EIP 等 它们都被称为 32 位寄存器。 在 OllyDbg 中,它们的内容以十六进制 显示。例如,EAX 的最小值为 00000000 ,最大值为 FFFFFFFF,用二进制表示将 是 11111111111111111111111111111111 。

 ESP 指向堆栈最顶端的地址我们看到寄存器显示了在我们的堆栈最上 方的值,打个比方,它就是一堆信件最上 方的那一 封。

EIP – 另一个非常重要的寄存器,它指 向当前将要执行的指令如果你按下 F7,那么将执行第一条指令,然后切到第二条将执行的指令。

 同样我们可以对寄存器的值进行修改,选中对应的寄存器->修改 即可

如果你要用到 EAX 寄存器的一部分,AX 是 EAX 的一部分,是 16 位寄存器,我们在 CommandBar 中 进行输入也可以看到。 ? AX(问号也可用于查询寄存器的值)
OllyDbg 可以更改寄存 器的值。我们在 EAX 上进行的一切操作同样适用于 其它寄存器:检查寄存器, 看哪一个是你想要更改的,然后右键点击 它选择 Modify。但 EIP 是唯一一个例外 的,它指向下一条将要执行的指令。 要改变头的值,需要如下操作。 EIP 指向将要执行的指令,只需简单的在 反汇编窗口中选择新的指令起始点一旦选择,例如 40101A,在其上点击鼠标右键,选择 New origin here(汉化版翻译为:处为新的 EIP),EIP 就会改变为 40101A,这样,程序就将会从这条指令执行。
在 OllyDbg 寄存器信息的下方显示的就是标志寄存器我们看到,这里的标志分为 C,P,A,Z
,S,T,D 和 O。 我们还看到,它们只能是两个数字值,0 和 1。某一具体指
令的执行可以改变它们的含义。 我们一起来看看这些标志:
1) O 标志(溢出标志)溢出标志在当操作改变了符号位,返回错误值时被设置 
该标志的目的:当 指令的结果超出了它可能存取的最大值 ,将被设置
2) A 标志(辅助进位标志) 完成操作后,用其它的某种形式对其进行记录。
3) P 标志(奇偶标志) 如果指令的结果用二进制表示,该二进 制数中的的 1 的总个数为偶数时,P 标志被设置
4) Z 标志(零标志) 这是在 Cracking 过程中最著名最有用的 一个标志。当运算产生的结果为 0 时被设置。
5) S 标志(符号标志)这个标志在运算结果为负时设置为 1。
6) C 标志进位标志(无符号运算的结果)在超过最大数值时 设置,可能是寄存器的值
未完待续
http://www.lryc.cn/news/20467.html

相关文章:

  • Elasticsearch7.8.0版本进阶——自定义分析器
  • spring事务-创建代理对象
  • Linux 配置NFS与autofs自动挂载
  • 【编程入门】应用市场(Python版)
  • 异常信息记录入库
  • Spring Batch 高级篇-分区步骤
  • ES数据迁移_snapshot(不需要安装其他软件)
  • 【Vue3 第二十章】异步组件 代码分包 Suspense内置组件 顶层 await
  • 「媒体邀约」四川有哪些媒体,成都活动媒体邀约
  • @Autowired和@Resource的区别
  • Linux系列:glibc程序设计规范与内存管理思想
  • Redis 集群
  • EF 框架的简介、发展历史;ORM框架概念
  • 注解原理剖析与实战
  • 《STL源码剖析》理解之将类成员函数和for_each等算法结合
  • 如何构建应用标准化体系
  • 【RabbitMQ笔记03】消息队列RabbitMQ七种模式之WorkQueues工作队列模式
  • 认识html
  • 在外包公司熬了 3 年终于进了字节,竭尽全力....
  • 绝对让你明明白白,脚把脚带你盯着 I2C 时序图将 I2C 程序给扣出来(基于STM32的模拟I2C)
  • 2023年全国最新工会考试精选真题及答案5
  • 一文2000字手把手教你自动化测试Selenium+pytest+数据驱动
  • windows安装Ubuntu子系统以及图形化界面记录
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理。Python DES实现源码
  • 为多态基类声明virtual析构函数
  • 啊哈 算法读书笔记 第 2 章 栈、队列、链表
  • Git ---- IDEA 集成 Git
  • 【LeetCode 704】【Go】二分查找
  • 【代码随想录训练营】【Day23】第六章|二叉树|669. 修剪二叉搜索树 |108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树
  • CV——day78 读论文:通过静态背景构建扩展低通道路边雷达的探测距离(目标是规避风险)