[re入门]IDA和OD的基本使用(持续更新)(上)

简介: [re入门]IDA和OD的基本使用(持续更新)

工具的使用

第一章 IDA使用介绍

简介

基本使用:1.静态分析功能

显示设置

代码定位:

栈帧分析

结构体分析:

程序Patch:

程序与代码的转换:

IDA的动态调试:

IDA安装插件

IDA其他常用的一些插件

IDA脚本功能

第二章 OD的简介

OD的窗口

常用快捷键

断点功能


自己的记性不太好,所以做了一个笔记,总结了一下逆向常用工具IDA和OD的使用,用来平时的翻阅,也希望可以帮助到大家。

第一章 IDA使用介绍

简介

空格:切换代码窗口的显示方式(在图形窗口与文本窗口之间切换)

窗口介绍:“View”–“open subviews”, 可以看到IDA的各个子窗口

image.png

常用快捷键:

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210303191810237.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2MzYzMjQ5,size_16,color_FFFFFF,t_70


基本使用:

1.静态分析功能

2.函数控制流图显示

3.F5 Hex-Rays插件

4.变量类型指定 快捷键y

5.变量重命名 点住这个变量 快捷键n

显示设置

可在“Options”-“Gemeral”-"Disassembly"窗口中设置反汇编的显示内容模式

image.png

代码定位:

1、交叉引用

函数调用关系

字符串引用关系

2、字符串定位

提取所有字符串shift+f12

查看交叉引用 :快捷键X

栈帧分析

双击任意局部变量将进入栈帧窗口视图

结构体分析:

IDA可对结构体进行自定义并对结构体数据进行解析, 以增强程序的可读性,步骤如下:

1、Shift + F1:打开本地类型;

2、insert:插入自定义的结构体;这里可以直接复制c语言定义;

3、Shift + F9:打开结构体;

4、Insert:添加上面创建的结构体;

5、选取相应数据,Alt + Q 将其上面的结构体进行解析。

程序Patch:
  • Patch指修改程序中的指令达到一些目的
    绕过反调试
    绕过验证
    其他
  • 将光标置于某条指令
  • Edit -> Patch Program -> Change bytes来修改代码,如果这里你安装了keypatch插件,那么是可以直接通过修改汇编指令来实现程序Patch的。
  • 应用Path:Edit -> Patch Program -> Apply patch to input file
程序与代码的转换:
  • 若某个函数未被引用,可能无法被IDA识别
  • 导航窗
  • 手动定位,识别为函数:快捷键 p
  • 将代码转换为数据:快捷键 d
  • 将数据转换为代码:快捷键 c
    通常用来清除花指令等


IDA没有撤销功能,慎重转换

IDA的动态调试:

IDA也提供了动态调试的功能,调试步骤如下:

  • Debugger -> Select debugger
    选择local windows debugger
  • F2对入口点处或者其他地方下断点
  • Debugger -> Start process 启动调试
  • 优点
    可以在F5的窗格中单步跟踪伪代码
  • 缺点
    调试功能没有OllyDBG等强大,没有反调试、dump、硬件断点、内存断点等功能。
IDA安装插件

插件安装:复制相应文件到ida安装目录plugin文件夹

  • Hex-Rays Decompiler:F5插件
    支持x86与x64
    6.8支持arm
    6.9支持arm64
    6.95支持PowerPC
  • IDAPython:IDC脚本的Python接口
IDA其他常用的一些插件

IDA FLIRT Signature Database – 用于识别静态编译的可执行文件中的库函数

Find Crypt – 寻找常用加密算法中的常数(需要安装 yara-python)

IDA signsrch – 寻找二进制文件所使用的加密、压缩算法

Ponce – 污点分析和符号化执行工具

snowman decompiler – C/C++反汇编插件(F3 进行反汇编)

CodeXplorer – 自动类型重建以及对象浏览(C++)(jump to disasm)

IDA Ref – 汇编指令注释(支持arm,x86,mips)

auto re – 函数自动重命名

nao – dead code 清除HexRaysPyTools – 类/结构体创建和虚函数表检测

DIE – 动态调试增强工具,保存函数调用上下文信息

sk3wldbg – IDA 动态调试器,支持多平台

idaemu – 模拟代码执行(支持X86、ARM平台)

Diaphora – 程序差异比较

Keypatch – 基于 Keystone 的 Patch 二进制文件插件

FRIEND – 哪里不会点哪里,提升汇编格式的可读性、提供指令、寄存器的文档等

SimplifyGraph – 简化复杂的函数流程图

bincat – 静态二进制代码分析工具包,2017 Hex-Rays 插件第一名

golang_loader_assist – Golang编译的二进制文件分析助手


相关文章
|
Java API
JDK API文档中文版(1.6、1.8、1.9)(附百度网盘下载地址)
JDK API文档中文版(1.6、1.8、1.9)(附百度网盘下载地址)
7434 3
JDK API文档中文版(1.6、1.8、1.9)(附百度网盘下载地址)
|
弹性计算
阿里云游戏服务器价格表
阿里云游戏服务器价格表,可用于搭建幻兽帕鲁服务器,阿里云游戏服务器租用价格表:4核16G服务器26元1个月、146元半年,游戏专业服务器8核32G配置90元一个月、271元3个月,阿里云百科分享阿里云游戏专用服务器详细配置和精准报价
3421 1
|
9月前
|
存储 人工智能 数据库
Agno:18.7K Star!快速构建多模态智能体的轻量级框架,运行速度比LangGraph快5000倍!
Agno 是一个用于构建多模态智能体的轻量级框架,支持文本、图像、音频和视频等多种数据模态,能够快速创建智能体并实现高效协作。
2503 22
Agno:18.7K Star!快速构建多模态智能体的轻量级框架,运行速度比LangGraph快5000倍!
|
人工智能 自然语言处理 IDE
通义灵码 AI IDE使用体验(1)项目初创
通义灵码 AI IDE上线,作为AI IDE的重度使用者怎能错过?本文详细体验了从安装到项目开发的全过程,界面友好,操作简便,支持智能问答、文件编辑、智能体三种模式。通过智能体方式快速开发项目,自动规划功能、管理环境,虽在复杂项目中仍有提升空间,但整体体验流畅,适合开发者尝试。
821 0
|
5月前
|
Java
照片一键生成眨眼视频app,手机照片一键生成眨眼动图,通过JAR代码实现效果
这是一个自动生成眨眼GIF动画的Java程序,包含主程序处理、图像变形和GIF生成三个模块。输入照片路径,自动识别人脸眼睛位置,生成闭眼、半闭眼等多帧图像,并合成为眨眼动效GIF文件。
|
4月前
|
人工智能 缓存 监控
智能体性能优化:延迟、吞吐量与成本控制
作为一名深耕AI领域多年的技术博主摘星,我深刻认识到智能体(AI Agent)性能优化在当今人工智能应用中的关键地位。随着大语言模型和智能体技术的快速发展,如何在保证服务质量的前提下优化系统性能、控制运营成本,已成为每个AI从业者必须面对的核心挑战。在我多年的实践经验中,我发现许多团队在部署智能体系统时往往只关注功能实现,而忽视了性能优化的重要性,导致系统在高并发场景下响应缓慢、成本居高不下,最终影响用户体验和商业价值。本文将从性能瓶颈识别与分析、模型推理优化技术、缓存策略与并发处理、成本效益分析与优化四个维度,系统性地探讨智能体性能优化的核心技术和最佳实践。通过深入分析延迟(Latency)
472 0
智能体性能优化:延迟、吞吐量与成本控制
|
3月前
|
人工智能 JSON 前端开发
告别无效调参!ReAct代理设计:让LLM精准执行复杂任务的终极方案
ReAct模式通过“推理+行动”循环,使大语言模型能自主调用工具、获取实时信息并执行多步骤任务,有效突破LLM固有局限,提升任务准确性和智能化水平。
595 0
|
5月前
|
计算机视觉 流计算 Python
人脸识别照片眨眼张嘴生成器,一键生成眨眼照片app,怎么用一张照片做人脸识别
基于Python的人脸识别照片动画生成系统,支持眨眼和张嘴动作。使用OpenCV、dlib等技术实现,可输出GIF或序列帧。代码包含完整的人脸检测
|
域名解析 缓存 网络协议
阿里云DNS常见问题之阿里云DNS的操作日志查不到如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
机器人 Shell Android开发
Google Pixel 4 Android13 刷入Magisk + KernelSU 双root环境
Google Pixel 4 Android13 刷入Magisk + KernelSU 双root环境
2206 0