世界顶级的交互式反汇编工具——ida的使用详解

这篇具有很好参考价值的文章主要介绍了世界顶级的交互式反汇编工具——ida的使用详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ida是什么

IDA Pro是一款世界顶级的交互式反汇编工具,IDA Pro全名Interactive Disassembler Professional(交互式反汇编器专业版),是Hex-Rays公司的旗舰产品,目前最新版为IDA Pro7.0。主要用在反汇编和动态调试等方面,支持对多种处理器的不同类型的可执行模块进行反汇编处理,具有方便直观的操作界面,可以为用户呈现尽可能接近源代码的代码,减少了反汇编工作的难度,提高了效率。
同样IDA Pro的分析技术也是最为称赞的一点,他具有更好的反汇编、深层分析、可以看到跳到指定的位置的jmp的命令位置和保存静态汇编等优点,适用于恶意代码分析、漏洞研究、COTS验证、隐私保护、其他学术研究。
它具有以下功能:
1、可编程性
IDA Pro包含了一个由非常强大的类似于宏语言组成的完全开发环境,可用于执行简单到中等复杂的自动化任务。对于一些高级任务,我们的开放式插件架构对外部开发人员是没有限制的,这样可以完善IDA Pro的功能。比如,每个人可以用MP3播放器来扩展IDA Pro并且发现恶意软件。
2、交互性
目前,电脑在遇到未知事物时,是无法和人类大脑相比的。而IDA Pro拥有完全的互动性,与前者相比,IDA可以让分析师重写决策或者提供相应的线索。交互性是内置程序语言和开放式插件架构的最终要求。
3、调试器
在现实生活中,事情并不是我们想象的那样简单,恶意代码通常总与分析不一致。病毒,蠕虫和木马往往是被其他东西修饰过而造成混淆,这就要求有一个更加强大的工具来识别出来。IDA Pro调试器补充了反汇编的静态分析功能:允许分析师通过代码一步一步来调查,调试器经常会绕过混淆,并得到一些能够对静态反汇编程序进行深入处理的数据,包括有助于得到的数据的功能更强大的静态反汇编器将能够在深度处理。远程调试器对人们想要对潜在的有害程序进行深入时起到了很大的作用。有些IDA调试器也可以运行在虚拟环境的应用上,这使得恶意软件分析更有成效。
4、反汇编
作为一个反汇编器,IDA Pro为可用在那些源代码不总是可用的二进制程序的探索开发,创建程序执行图。一个反汇编器最大的益处就在于它可以通过符号表示,也就是汇编语言来为在执行的处理器提供说明。如果一个你刚刚安装的友好的屏幕存储器在探视你的网上银行会话或者登陆你的邮箱,反汇编器就可以将它显示出来。然而,汇编语言是很难搞懂的,这也是为什么这种先进的技术被应用在IDA Pro上从而能确保代码的可读性,甚至在某些情况下和二进制文件产生的源代码非常相似。该程序图的代码可以为进一步的调查提供后期处理。有些人已经将它作为其根源用在病毒的基因分类上。

下载及其安装

链接:https://pan.baidu.com/s/17dHZFBA5Hz7vd-4xGBywdA?pwd=poge
提取码:poge

下载后解压缩,运行ida

或点击IDA Freeware (hex-rays.com),选择download
世界顶级的交互式反汇编工具——ida的使用详解
然后根据安装提示操作即可

ida的使用

1.文件打开

世界顶级的交互式反汇编工具——ida的使用详解
把随便一个程序拖入ida世界顶级的交互式反汇编工具——ida的使用详解
如下图,左侧窗口为函数列表窗口,右侧窗口为IDA反汇编所得的汇编代码,最下侧窗口为文件在反汇编过程中的信息。
世界顶级的交互式反汇编工具——ida的使用详解

2.文件关闭

世界顶级的交互式反汇编工具——ida的使用详解
说一下这几个选项。

  • 第一个Dont pack database就是不打包文件,把生成的4个数据库文件分开放
  • 第二个pack database(Store)就是打包4个数据库文件然后生成一个idb文件,但是会把原先的4个文件删除
  • 第三个pack database(Deflate)就是打包4数据文件并且把原先的文件压缩
  • 第四个collect garbage 可以勾选清理一些没用的内存
  • 第五个dont save the database就是给我们一次重开的机会,(ida不能撤回没有退路)

3.IDA窗口介绍

图形窗口页面和文本页面
这是文本页面,按空格切换图形窗口
世界顶级的交互式反汇编工具——ida的使用详解
世界顶级的交互式反汇编工具——ida的使用详解
再来看看这几个窗口世界顶级的交互式反汇编工具——ida的使用详解
IDA View-A:反汇编窗口,打开程序的时候,一般都是停留在反汇编窗口
Hex View-1:想看当前程序的十六进制文件,可以点击这个窗口
Structures:结构体(结构体是由一批数据组合而成的一种新的数据类型。组成结构型数据的每个数据称为结构型数据的“成员”。)
Enums:枚举类型
Imports:看当前程序用了哪些模块,用了哪些模块的哪些函数
Export:想看当前程序导出了哪些函数,可以点击export

4.菜单

  • File:用于打开、新建、装载、保存、关闭一个文件或是数据库

  • Edit:用于编辑反汇编代码

  • Jump:用于跳转到某个位置、地址或是一个窗口

  • Search:用于搜索代码段、数据、错误等等

  • View:用于显示文件内容的显示方式

  • Debugger:调试器,集成在IDA中

  • Lumina:对元数据进行各种操作

  • Options:可以进行一些个性化的设置

  • Windows:窗口

  • Help :帮助世界顶级的交互式反汇编工具——ida的使用详解

5.显示硬编码(ACDU)

点击option–>Gernal–>Disassembly有一行是Number of opcode bytes(non-geaph)它可以制定每一行硬编码显示多少硬编码一行最多是十六个字节世界顶级的交互式反汇编工具——ida的使用详解

  • 我们这里设置成8试试看世界顶级的交互式反汇编工具——ida的使用详解
    图中蓝色的就是硬编码。每一行硬编码对应一行汇编代码

  • A:把当前的数据按照字符串来显示

  • C:把当前的数据按照到吗的形式来显示

  • D:把当前的数据用数据的形式来显示

  • U:把当前的数据用普通的原始字节形式来显示

6.跳转

按G实现,输入地址就行

7.搜索指令

  • 按下alt+T世界顶级的交互式反汇编工具——ida的使用详解
    String:搜索的值
    Search up:向上搜索

8.N指令

  • 修改名称用n指令
  • 当分析完成一个函数或一个变量我们有自己的理解,要该名称时候按n
  • 引用网上一句话:“一个真正的逆向分析就是一个 起名字的过程”

原先的样子世界顶级的交互式反汇编工具——ida的使用详解
按n之后:
世界顶级的交互式反汇编工具——ida的使用详解

9.创建结构体 修改全局变量 修改局部变量

  • 对一段代码进行解读时候,发现其中一个结构提,此时ida并没有识别出。此时就可以在Structure文件加一个结构体世界顶级的交互式反汇编工具——ida的使用详解
  • 然后随便输入一个名字abc世界顶级的交互式反汇编工具——ida的使用详解
  • 那么想在结构体里面添加成员,选择按D,就会给我们新增一个成员世界顶级的交互式反汇编工具——ida的使用详解
    此时field_0的类型为一个字节,我们选中db然后按D就可以更改其字节数(一字节,两字节,四字节)。
    此时名称我们也需要修改成我们想要的名称,怎么办呢?
    如上面讲解,按N就可以修改按D修改类型(dd、dw、db)
  • db定义字节类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1
  • dw定义字类型变量,一个字数据占2个字节单元,读完一个,偏移量加2
  • dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4

10.修改全局变量

  • 比如说我们选中一个全局变量,我们要修改其为我们刚刚添加的结构体,怎么做呢?
  • 很简单选中这个变量,按下alt+q,此时会列举出这个IDA所有识别出来的结构体,选择我们刚刚添加的结构体即可。
  • 改完他的类型,IDA会自动给我们生成一个名字,这个名称我么也可修改,并且后续用到的这个变量的地方都将修改成我们修改的名称。

11.修改局部变量

当我们修改局部变量的时候,快捷键是T,我们需要找到这个结构体并选中结构体的成员点击确定就可以修改了。

12.注释

注释分:分号注释、shift+分号注释、函数注释
分号注释:点“;”弹出框中直接输入即可世界顶级的交互式反汇编工具——ida的使用详解
shift+分号注释:可以在其他跳转到本行的地方不添加注释

函数注释:那么,我们在向写C语言函数的时候,我们想在函数的前面加上注释(函数名,参数、返回值等信息)的时候,我们选中函数名,按下分号,此时就可以添加注释了。

13.交叉引用

  • 查看完整的引用。view–>open subviews–>cross references世界顶级的交互式反汇编工具——ida的使用详解

结语:

最近在学逆向所以下载了ida,正好老师布置了ida使用指南报告。文章有参考,源文章:https://blog.csdn.net/weixin_45309916/article/details/118862881?ops_request_misc=&request_id=&biz_id=102&utm_term=ida&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-118862881.nonecase&spm=1018.2226.3001.4187文章来源地址https://www.toymoban.com/news/detail-404269.html

到了这里,关于世界顶级的交互式反汇编工具——ida的使用详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 3D开发工具HOOPS Publish如何快速创建交互式3D PDF文档?

    HOOPS Publish是一款功能强大的SDK, 可以创作丰富的工程数据并将模型文件导出为各种行业标准格式,包括PDF、STEP、JT和3MF。 HOOPS Publish核心的3D数据模型是经过ISO认证的PRC格式(ISO 14739-1:2014),它为装配树、拓扑和几何、产品制造信息和视图等工程概念提供支持。 开发人员可以通

    2024年02月09日
    浏览(37)
  • 【AI生产力工具】ChatPDF:将 PDF 文档转化为交互式阅读体验的利器

    随着数字化时代的发展,PDF 文件已经成为了日常工作和学习中不可或缺的一部分。然而,仅仅将 PDF 文件上传或下载并不一定能够满足我们的需求。比如,我们想要从大型的 PDF 文件中快速提取信息,如手册、论文、法律合同、书籍和研究论文,但在 PDF 文件中寻找这些信息却

    2023年04月24日
    浏览(35)
  • 【linux命令讲解大全】150.smbclient:交互式访问samba服务器的命令行工具

    交互方式访问samba服务器 补充说明 smbclient 命令属于samba套件,它提供一种命令行使用交互式方式访问samba服务器的共享资源。 语法 选项 -B ip地址 :传送广播数据包时所用的IP地址; -d 排错层级 :指定记录文件所记载事件的详细程度; -E :将信息送到标准错误输出设备;

    2024年02月03日
    浏览(51)
  • 使用 htmx 构建交互式 Web 应用

    学习目标:了解htmx的基本概念、特点和用法,并能够运用htmx来创建交互式的Web应用程序。 学习内容: 1. 什么是htmx?    - htmx是一种用于构建交互式Web应用程序的JavaScript库。    - 它通过将HTML扩展为一种声明性的交互式语言,使得开发人员可以使用简单的HTML标记来实现动态

    2024年02月10日
    浏览(35)
  • MATLAB 之 隐函数绘图、图形修饰处理、图像处理与动画制作和交互式绘图工具

    如果给定了函数的显式表达式,可以先设置自变量向量,然后根据表达式计算出函数向量,从而用 plot 、 plot3 等函数绘制出图形。 但如果函数用隐函数形式给出,则很难用上述方法绘制出图形。对此,MATLAB 提供了一些函数用来绘制隐函数图形。 隐函数二维绘图采用 ezplot 函数

    2024年02月07日
    浏览(31)
  • 使用Gradio库创建交互式散点图

    ❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈 博主原文链接:https://www.yourmetaverse.cn/nlp/424/ (封面图由文心一格生成)

    2024年02月16日
    浏览(35)
  • 使用Gradio Interface构建交互式机器学习演示

    ❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈 博主原文链接:https://www.yourmetaverse.cn/nlp/231/ (封面图由文心一格生成) 在

    2024年02月09日
    浏览(54)
  • 使用 OpenCV 和 GrabCut 算法进行交互式背景去除

            我想,任何人都可以尝试从图像中删除背景。当然,有大量可用的软件或工具能够做到这一点,但其中一些可能很昂贵。但是,我知道有人使用窗口绘画3D魔术选择或PowerPoint背景去除来删除背景。         如果您是计算机视觉领域的初学者,这可能适合您。让

    2024年02月15日
    浏览(29)
  • Azure - 机器学习:使用 Apache Spark 进行交互式数据整理

    关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 数据整理已经成为机器学习项目中最重要的步骤之一。

    2024年02月08日
    浏览(31)
  • 百度飞浆EISeg高效交互式标注分割软件的使用教程

    官方原话:EISeg(Efficient Interactive Segmentation)是基于飞桨开发的一个高效智能的交互式分割标注软件。涵盖了高精度和轻量级等不同方向的高质量交互式分割模型,方便开发者快速实现语义及实例标签的标注,降低标注成本。 另外,将EISeg获取到的标注应用到PaddleSeg提供的其他

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包