IDA反汇编工具详解之菜单栏和基本操作

文章目录

    • IDA 菜单栏
      • File
      • Edit
      • Jump
      • Search
      • View
      • Debugger
      • Options
      • Windows
    • 反汇编操作
      • 名称和命名
      • IDA 中的注释
      • 基本代码转换
      • 修改exe文件并保存

IDA 菜单栏

File

在这里插入图片描述

File菜单负责项目工程的管理,操作包括:打开项目、关闭项目、保存项目

Edit

在这里插入图片描述

Edit菜单负责编辑和管理该项目中的各个变量

Jump

在这里插入图片描述

跳转菜单负责在二进制文件中进行定位,常用到的功能如下:
Jump to previous position / Jump to next position 跳转到上一个/下一个操作位置
Jump to pseudocode 跳转到伪代码
Jump to address 跳转到特定的地址
Jump to name 跳转到某个名称
Jump to functhion 跳转到某个函数
Jump to segment 跳转到某个段
Jump to segment register 跳转到某个段注册
Jump to problem 跳转到某个问题
Jump to entry point 跳转到入口点
Jump to file point 跳转到某个文件偏移地址
Mark position 标记某个位置
Jump to marked position 跳转到某个标记位置
Clear mark 清除标记

Search

在这里插入图片描述

主要用到的查询功能包括 text查询(快捷键Alt+T)和sequence of bytes查询(快捷键Alt+B)
对应的界面如下所示:
在这里插入图片描述

View

在这里插入图片描述

该菜单负责打开显示各个功能子窗口 并控制各个子窗口的显示和隐藏

Debugger

此菜单主要用来选择调试器
在这里插入图片描述

Options

在这里插入图片描述

该菜单负责配置IDA各种基本配置,常用的配置如下:
General 负责配置各个子窗口的基本显示设置
Colors 负责颜色配置 Font 负责字体配置 Shortcuts 负责配置各种快捷键

Windows

在这里插入图片描述

Windows菜单项常用的操作:
Load desktop / Save Desktop / Delete Desktop / Reset desktop 操作桌面布局
Windows list 查看窗口列表
Next window / Previous window 上一个/下一个窗口
Close window 关闭窗口 Focus command line 聚焦命令行
最下面是各个窗口切换及其对应的快捷键

反汇编操作

名称和命名

参数和局部变量、已命名的位置、寄存器名称都可以再次进行命名;

IDA允许你随意修改任何名称,并处理在整个反汇编代码清单中扩散名称变更的所有细节. 按 N 打开变更对话框 或 右击需要修改的名称在菜单中选择Rename选项。
如果你希望恢复某个变量的默认名称,打开更名对话框,在输入框中输入一个空白名称,IDA将为你生成默认的名称。

在这里插入图片描述

IDA 中的注释

IDA 能够在数据库中嵌入注释。在分析程序时添加注释特别有用,因为它可帮助你随时掌握分析进程。
具体来说,注释有助于以一种更高级的方式描述汇编语言指令序列。
添加注释的方式: 1.菜单 Edit->comment 添加注释 2. 按键’:’ 添加常规注释 按键’;’ 添加重复注释 3.右键菜单添加注释
注释的颜色默认为蓝色;

普通注释和可重复注释的区别:
1.可重复注释一旦输入将会自动出现在反汇编窗口中的许多位置。如果一个程序位置引用了另一个包含可重复注释的位置,则该注释会在第一个位置回显,默认情况下回显的注释以灰色文本显示;
2.普通注释可以覆盖可重复注释

基本代码转换

IDA提供的代码转换包括以下几类:
1.将数据转换为代码;
2.将代码转换为数据;
3.指定一个指令序列为函数;
4.更改现有函数的起始或结束地址;
5.更改指令操作数的显示格式;

修改exe文件并保存

[Edit -> Patch program -> Apply patches to input file] 二进制修改保存到文件中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/472261.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

matlab 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面

1、内容简介 略 65-可以交流、咨询、答疑 2、内容说明 matlab 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面 李雅普洛夫指数谱、相图、分岔图、庞加莱界面 3、仿真分析 略 4、参考论文 略

队列的算法

数组队列 数组的子集 主要方法addLast( )和removeFirst( ) public interface IQueueDesc<E>{void enqueue(E e);E dequeue();E getFront();int getSize();boolean isEmpty(); }public class QueueMyList<E> implements IQueueDesc<E{MyArray<E> a…

深度学习500问——Chapter03:深度学习基础(4)

文章目录 3.7 预训练与微调&#xff08;fine tuning&#xff09; 3.7.1 为什么无监督预训练可以帮助深度学习 3.7.2 什么是模型微调 fine tuning 3.7.3 微调时候网络参数是否更新 3.7.4 fine-tuning模型的三种状态 3.8 权重偏差和初始化 3.8.1 全都初始化为0 3.8.2 全都初始化为…

无需PS技能!2024年在线UI设计工具推荐,让你快速上手!

随着UI设计行业的蓬勃发展&#xff0c;越来越多的设计师进入UI设计&#xff0c;选择一个方便的UI设计工具尤为重要&#xff01;除了传统的UI设计工具外&#xff0c;在线UI设计工具也受到越来越多设计师的青睐。这种不受时间、地点和计算机配置限制的工作模式真的很令人兴奋。在…

回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测&#xff08;完整源码和数据) …

Figure 公司推出首款集成 OpenAI 大模型的自主人形机器人,开启与人类全面对话的新纪元

2024年3月13日&#xff0c;Figure&#xff0c;一家在人工智能机器人领域引领创新的公司&#xff0c;宣布推出了一款革命性的自主人形机器人。这款全新的 demo 机器人不仅标志着商业上可行的自主人形机器人技术的突破&#xff0c;更是通过整合 OpenAI 的先进大模型技术&#xff…

操作符详解(C语言)—算数操作符,移位操作符,位操作符

操作符的分类 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 算术操作符 - * / %除了 % 操作符之外&#xff0c;其他的几个操作符可以作用于整数和浮点数。对于 / 操作符如果两个…

Unity Mesh简化为Cube mesh

Mesh简化为Cube mesh &#x1f373;食用&#x1f959;子物体独立生成CubeMesh&#x1f96a;合并成一个CubeMesh&#x1f32d;Demo &#x1f373;食用 下载并导入插件&#x1f448;即可在代码中调用。 &#x1f959;子物体独立生成CubeMesh gameObject.ToCubeMesh_Invidual()…

关于 HTTP 协议,你了解多少?

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

数据分析的具体流程

1.导入 表格导入数据时要注意数据的格式问题非表格导入 可以先将文档放入word中 将换行符&#xff08;^p&#xff09;替换为|||&#xff0c;选择特殊格式中的段落标记 进行全部替换 以每一列最后的数据/平&#xff0c;作为换行的标志 将所整理的信息导入excel,对数据进行分列 选…

数据库系统概论-第5章 数据库完整性

5.1 实体完整性 5.2 参照完整性 5.3 用户定义完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 断言 5.7 触发器 5.8 小结

OpenGL+QT实现矢量和影像的叠加绘制

一、QT下OpenGL框架的初始化 OpenGL的介绍我在这里就没有必要介绍了&#xff0c;那OpenGL和QT的结合在这里就有必要先介绍一下&#xff0c;也就是怎么使用QT下的OpenGL框架。要想使用QT下的OpenGL框架&#xff0c;就必须要子类化QGLWidget&#xff0c;然后实现。 void initia…

冶炼金属 (第十四届蓝桥杯省赛C++ B组)详解(二分+推公式)

题目描述&#xff1a; 小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。 这个炉子有一个称作转换率的属性 V&#xff0c;V 是一个正整数&#xff0c;这意味着消耗 V 个普通金属 O 恰好可以冶炼出一个特殊金属 X&#xff0c;当普通金属 O 的数目不足 V 时&#…

Spring MVC文件下载配置

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 文件下载 在Spring MVC中通常利用commons-io实现文件下载&#xff0c;示例代码如下&#xff1a; Controller RequestMapping("......") public class DownloadC…

AI大模型-Grok搭建

Grok搭建 硬件要求项目下载Checkpoint下载运行代码 马斯克又搞事情了&#xff0c;正式开源AI大模型Grok-1&#xff0c;免费还可商用&#xff0c;国内AI技术即将迎来重大突破。笔者简单整合了一下&#xff0c;如何搭建Grok-1的思路&#xff0c;供后期自己搭建以及读者学习使用。…

房屋租赁系统|基于JSP技术+ Mysql+Java+ B/S结构的房屋租赁系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

理解数据库习题

1.选择 &#xff08;1&#xff09;现实世界中客观存在并能相互区别的事物称为&#xff08; &#xff09;。 A.实体 B.实体集 C字段 D 记录 &#xff08;2&#xff09;下列实体类型的联系中&#xff0c;属于一对一联系的是&#xff08; &#xff09;A.教研室对教师的所属联系 …

centos 环境部署

一、安装redis 1. 升级 GCC 最直接的解决方式是升级你的 GCC 编译器到支持 C11 标准的版本。CentOS 7 默认的 GCC 版本较旧&#xff0c;可能不支持 _Atomic。你可以通过以下步骤升级 GCC&#xff1a; 启用 CentOS 的 Software Collections (SCL) 仓库&#xff0c;该仓库提供了…

力扣---完全平方数

思路&#xff1a; 还是比较好想的&#xff0c;g[i]定义为和为 i 的完全平方数的最少数量。那么递推关系式是g[i]min(g[i-1],g[i-4],g[i-9],...)1&#xff0c;数组初始化是g[0]0,g[1]1。注意这里要对g[0]初始化&#xff0c;&#xff08;举个例子&#xff09;因为在遍历到g[4]时&…

docker安装Milvus

docker安装Milvus 拉去CPU版本的milvus镜像 $ sudo docker pull milvusdb/milvus:0.10.0-cpu-d061620-5f3c00 docker pull milvusdb/milvus:0.10.0-cpu-d061620-5f3c00 mkdir -p milvus/conf cd milvus/conf ls wget https://raw.githubusercontent.com/milvus-io/milvus/v0.1…