这IDA怎么这么难用啊

这IDA怎么这么难

IDA简介:

  • 反汇编工具,它功能强大、操作复杂,要完全掌握它,需要很多知识。 说白了就是会用你就很了不起

IDA数据库文件

  • .id0文件:是一个二叉树形式的数据库。
  • .id1文件:包含描述每个程序字节的标记。
  • .nam文件:包含与IDA的Names窗口[3]中显示的给定程序位置有关的索引信息。
  • .til文件:用于存储与一个给定数据库的本地类型定义有关的信息。

IDA导航条

  • 蓝色:.text section
  • 深蓝:用户自己写的函数表以后的代码区
  • 浅蓝:编译器自己添加的函数,像启动函数,异常函数等
  • 粉红色:.idata section有关输入表的一些数据
  • 军绿色:.rata section纯数据,只读
  • 灰色:为了段对齐而留下的空隙
  • 黑色:禁区,不存在任何数据

IDA三个可视窗口

  1. IDA-View窗口
  2. 函数窗口
  3. 消息窗口
    在这里插入图片描述

IDA图形视图

  • 控制流程图
  • 基本块是一个不包含分支,从头执行到尾的最大指令序列
  • 红箭头:假,不执行分支
  • 绿箭头:真,执行分支
文本视图
  • 虚拟地址:以[区域名称]:[虚拟地址]这种格式显示,如text:004011C1
    在这里插入图片描述
函数窗口

对应列:(可通过help搜索functions window查找)

  • R - function returns to the caller// 函数返回给调用者
  • F - far function 被远程调用的函数
  • L - library function // 库函数
  • S - static function // 静态函数
  • B - BP based frame. IDA will automatically convert //并使用EBP寄存器(B)引用它的局部变量
  • T - function has type information
  • 双击Functions窗口中的一个条目,反汇编窗口将跳转到选定函数所在的位置(反汇编窗口会自动打开)
十六进制窗口

十六进制窗口

  • 对应Views▶Open Subviews▶Hex dump,十六进制窗口可以配置为显示各种格式,并可作为十六进制编辑器使用,和在反汇编窗口中一样,可以同时打开几个十六进制窗口。第一个叫做Hex View-A,第二个叫做Hex View-B,依次类推。

同步关联:

  • 默认情况下,第一个十六进制窗口会与第一个反汇编窗口同步,你也可以通过在任一窗口中右击选击Synchronize

  • 同步后,在一个窗口中滚动鼠标,另一个窗口也会滚动到相同的位置(同一个虚拟地址),选中地址会高亮

编辑:

  • 右击菜单,选择Edit菜单项(F2)可将十六进制窗口转变为编辑器,这时可以自由编辑,完成编辑后,你必须提交或取消更改才能返回查看模式(F2保存,ESC撤消)
Names窗口
  • 它简要列举了一个二进制文件的所有全局名称。

  • 名称是指对一个程序虚拟地址的符号描述。在最初加载文件的过程中,IDA会根据符号表和签名分析派生出名称列表。双击Names窗口中的名称,可立即跳转到显示该名称的反汇编视图。

  • Names窗口中显示的名称采用了颜色和字母编码:

  1. F,常规函数。IDA认为这些函数不属于库函数。

  2. L,库函数。IDA通过签名匹配算法来识别库函数。如果某个库函数的签名并不存在,则该函数将被标记为常规函数。

  3. I,导入的名称,通常为共享库导入的函数名称。它与库函数的区别在于:导入的名称没有代码,而库函数的主体将在反汇编代码清单中显示。

  4. C,命名代码。这些是已命名的程序指令位置,IDA认为它们不属于任何函数。当IDA在程序的符号表中找到一个名称,但没发现对程序位置的任何调用时,就会出现这种情况。

  5. D,数据。已命名数据的位置通常表示全局变量。

  6. A,字符串数据。这是一个被引用的数据位置,其中包含的一串字符符合IDA的某种已知的字符串数据类型,如以’\0’字节结束的ASCIIC 字符串。

查看程序中的所有字符串

在这里插入图片描述

  • 快捷键:shift+F12

添加注释

  • enter+冒号可以添加注释

基本设置

在这里插入图片描述

IDA桌面提示小技巧

  • 使用 View -> Open Subviews 命令恢复无意中关闭的数据显示窗口

  • 使用 Windows -> Reset Desktop 命令可迅速将桌面恢复到原始布局

  • 使用 Windows -> Save Desktop 命令保存当前的桌面布局

  • 用 Windows -> Load Desktop 命令打开之前保存的一个桌面布局

  • Disassembly 窗口(无论是图形视图或列表视图)是唯一一个可以修改其显示字体的窗口,使用 Options -> Font 命令可以设置字体

结束语

  • 是不是脑袋瓜子嗡嗡作响了哈哈哈,不着急,满满学习吧
### 回答1: IDA Pro和ndisasm是两个工具,用于逆向工程和汇编语言分析。以下是两个工具的用法: IDA Pro是一个功能非常强大的反汇编工具,可用于静态分析二进制文件。 使用IDA Pro,用户可以查看汇编代码,识别功能,找到函数节点和变量等。 它还允许用户从程序调用和执行中分析数据流,以及搜索字符串和指令。 要使用IDA Pro,请打开您要分析的文件,然后添加任何必要的插件或脚本以扩展工具的功能。 ndisasm是一个独立程序,可用于反汇编NASM格式的代码。 为了使用它,请将您的NASM代码保存为RAW二进制格式,然后在您的终端中键入以下命令:“ndisasm -b 32或ndisasm -b 64 file.bin”,具体取决于二进制文件使用的体系结构和编译器。 此命令将输出反汇编代码。 总之,IDA Pro用于静态汇编代码分析,而ndisasm用于NASM代码的反汇编。 这些工具可以帮助您分析代码,识别漏洞和优化代码。 ### 回答2: IDA Pro是一款反汇编器,可以将机器代码还原为汇编代码并进行分析。而ndisasm是一款独立的指令集反汇编器,可以将二进制文件中的机器语言代码转换为汇编语言代码。下面是使用IDA Pro和ndisasm的步骤: 1. 打开IDA Pro,并导入需要反汇编的二进制文件。 2. 在IDA Pro界面中,选择要进行反汇编的函数或程序,双击打开。 3. 在反汇编窗口中,选择File -> Produce file -> Dump to file,将反汇编结果保存为一个文本文件。 4. 打开命令行工具(如CMD),进入到ndisasm.exe所在的文件夹。 5. 执行命令ndisasm输入文件名,例如: `ndisasm -u output.txt > output.asm` 其中,output.txt是反汇编结果保存的文件名,output.asm是生成的汇编代码文件名。 6. 执行命令后,ndisasm将会自动将反汇编结果解析为汇编代码,并保存为output.asm文件。打开output.asm文件,便可以查看反汇编后的汇编代码。 需要注意的是,IDA Pro和ndisasm虽然可以作为反汇编器使用,但在使用过程中需要具备相关的计算机组成原理和汇编语言知识,否则很难理解和分析汇编代码的含义。 ### 回答3: IDA Pro和ndisasm是两个不同的工具,虽然它们都有关于反汇编的功能,但它们的使用方式有所区别。 IDA Pro是一款非常强大的反汇编工具,可以将二进制文件反汇编为汇编代码,并且支持众多的反汇编指令。它的使用可以参考官方文档或者其他相关教程,具体的使用步骤包括: 1. 打开IDA Pro并加载需要反汇编的文件 2. 在反汇编窗口中查看汇编代码 3. 可以进行代码注释和修改等操作 ndisasm是一个GNU objdump的一部分,是一个命令行工具,可以将二进制文件转换成汇编代码。它的使用方式如下: 1. 打开终端并输入命令 "ndisasm -b 32 filename.bin”或者“ndisasm -b 64 filename.bin”(根据文件的位数) 2. 在终端窗口中查看生成的汇编代码 3. 可以使用其他命令对汇编代码进行操作,例如:“-o”可以输出代码的偏移量,”-u”可以显示未被解码的指令。 总的来说,IDA Pro相比ndisasm功能更加全面,但需要付费使用,而ndisasm则是免费的命令行工具,适合一些简单的汇编代码查看和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值