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

软件逆向之OD基础

OD程序目录

plugin:存放OD所有插件

UDD:存放程序临时的数据,比如:程序注释、断点等

ollydbg.ini:存放OD自身配置的属性表

OLLYDBG.HLP:OD的帮助手册

OD断点

1.软件断点:

介绍:基于程序本身异常造成的断点,会改变汇编代码,默认把第一个字节改成int3(也就是cc断点)

  • 原理:CPU执行到不能执行的代码触发一个异常,调试进行接收。
  • 类型:执行断点、写断点、读断点
  • 特点:选择多少个字节就是多少个字节的范围(数据窗口)

2.硬件断点:

介绍:基于CPU本身自带的属性造成的断点,使隐形断点,不会改变汇编代码

  • 原理:CPU主动触发异常,调试器进行接收。
  • 类型:执行断点、写断点、读断点
  • 特点:指定性内存范围(数据窗口)

3.条件断点:

  • 字符串断点:[STRING[esp+4]=="abc"]
  • 寄存器断点:eax == 520(默认16进制)
  • 内存断点:[STRING[esp+0x8]=="A7D7186546WQA15"]

消息机制:

  • 载入程序 --> 按“W” --> 刷新、右键设置消息断点,比如:按钮事件等。

汇编修改:

  • 按空格即可修改,也可以右键 --> 汇编
  • 勾选nop填充,就是多余的字节会用nop填充(90 为一个字节)

数据转到:

  • 空格复制地址,Ctrl+G转到对应地址(反汇编窗口、数据窗口、堆栈窗口)
  • 在包含立即数或者是全局变量地址的地方右键 --> 数据窗口中跟随 --> 内存地址/立即数,会在下方数据窗口中显示(反汇编窗口和堆栈窗口同理)

OD常用快捷键

快捷键描述
F9运行
F2下软件断点
F8步过
F7步入
F4运行到光标选择的那一行
Ctrl + E以二进制(十六进制)格式编辑所选内容。
Ctrl + B二进制搜索
Ctrl + G跳转到某一个地址
Ctrl + S搜索汇编命令
Ctrl + F查找命令代码
Ctrl + L搜索下一个,重复上一次的搜索内容
Ctrl + A分析当前模块的代码段
Ctrl + F9使程序直接运行到子程序的结尾的位置停下来
Alt + F9执行直到返回到用户代码段
空格编辑汇编代码

注意:OD载入程序会优先断到系统入口点(系统入口点特征地址是7开头),如果不想载入到系统断点,可以在调试选项-->事件-->勾选主模块入口点。


http://www.kler.cn/a/465816.html

相关文章:

  • 使用 Try-With-Resources 简化资源管理
  • Go语言的 的泛型(Generics)基础知识
  • AI代码开发实践-微信小程序开发
  • Flask 快速入门
  • FPGA、STM32、ESP32、RP2040等5大板卡,结合AI,更突出模拟+数字+控制+算法
  • ‘元素.style.样式名‘获取不到样式,应该使用Window.getComputedStyle()获取正真的样式
  • 游戏无法运行、图形显示错误、视频播放卡顿、音频播放无声等等电脑问题要怎么轻松解决?使用修复工具推荐!
  • 单片机-静动态数码管实验
  • DCGAN模型详解
  • Docker和K8s关系
  • 【人工智能】人工智能与大模型
  • Unity Excel转Json编辑器工具
  • 容器镜像构建上下文解释
  • DVWA靶场Open HTTP Redirect (重定向) 漏洞所有级别通关教程及源码审计
  • 计算机网络 (22)网际协议IP
  • Selenium 特殊控件操作与 ActionChains 实践详解
  • PCL点云库入门——PCL库点云特征之点云法向量(NormalEstimation)及其可视化
  • PyTorch快速入门教程【小土堆】之池化层
  • 【Cocos TypeScript 零基础 3.1】
  • 【Rust自学】9.4. 什么时候该使用panic!
  • 服务器等保测评日志策略配置
  • Cyber Security 101-Web Hacking-SQL Fundamentals(SQL 基础知识)
  • Vue3 子组件向父组件传递消息(Events)
  • 2024年变题后华为数通H12-821更新题库
  • SQL Server中最大并行度详解
  • 腾讯云OCR在制造业的应用:内存模组产品识别实战指南