IDA 技巧(7) IDA 命令模式

admin 2024年4月17日14:32:47评论2 views字数 1591阅读5分18秒阅读模式

IDA 命令模式

大多数IDA用户可能将IDA作为独立应用程序运行,并使用UI配置各种选项。但是,可以通过传递命令行选项来自动化一些流程。

选项的完整集合非常长,所以我们将介绍一些更常见和有用的选项。

在下面的例子中,ida 可以替换为 ida64 以表示 64 位文件,或者用于控制台(文本模式)界面的 idat(idat64)。

用命令行使 IDA 打开一个文件

ida

<filename>可以是您想要反汇编的新文件或现有数据库。这种用法基本上与使用“文件”>“打开”或将文件拖放到IDA图标上相同。您仍然需要手动确认加载文件对话框中的选项或IDA显示的任何其他提示,但初始启动画面会被跳过。

如果您使用任何额外的命令行选项,请确保将它们放在文件名之,否则它们将被忽略。

用命令行使 IDA 打开一个文件并自动选择加载器

ida -T<prefix> <filename>

<prefix> 是在加载文件对话框中显示的加载器描述的唯一前缀。

例如,当加载 .NET 可执行文件时,IDA 提供以下选项:

  • Microsoft.Net 汇编
  • AMD64 可移植可执行文件 (PE)
  • MS-DOS 可执行文件 (EXE)
  • 二进制文件

对于每个选项,相应的 -T 选项可以是:

  • -TMicrosoft
  • -TPortable
  • -TMS
  • -TBinary

当前缀包含空格时,请使用引号。例如,要从一个大的 Mach-O 文件中加载第一个片段:

ida "-TFat Mach-O File, 1" file.macho

对于像 ZIP 这样的存档格式,您可以在冒号后指定要加载的存档成员(并根据需要嵌套额外的加载器名称)。例如,要从一个 .apk 文件(这是一个 zip 文件)中加载主 dex 文件:

ida -TZIP:classes.dex:Android file.apk

但通常最好在顶层选择 APK 加载器(特别是在多 dex 文件的情况下)

ida -TAPK file.apk

当指定 -T 时,初始加载对话框将被跳过,IDA 将直接使用指定的加载器加载文件(但仍然可能显示任何额外的提示)。

自动接受任何提示、信息或警告

有时候你只是想加载文件,简单地接受所有默认设置。在这种情况下,你可以使用 -A 开关:

ida -A <文件名>

这将使用自主或批处理模式加载文件,IDA 在这种模式下不会显示任何对话框,而是在所有情况下接受默认答案。

在这种模式下,在加载完成后不会显示任何交互式对话框(例如,“重命名”或“添加注释”)。要恢复交互性,请在 IDA 窗口底部的 IDC 或 Python 控制台中执行 batch(0) 语句。

批量反汇编

这是前一节的延伸部分,可以使用-B开关调用:

ida -B <文件名>

IDA 将使用所有默认选项加载文件,等待自动分析结束,将反汇编输出到 <文件名>.asm,并在保存数据库后退出。

二进制文件选项

加载原始二进制文件时,IDA 无法使用高级文件格式(如ELF、PE或Mach-O)中存在的任何元数据。

特别是,处理器类型和加载地址无法从文件中推断出,必须由用户提供。为了加快工作流程,您可以在命令行上指定它们:

ida -p<处理器> -B<基址> <文件名>

<处理器> 是IDA支持的处理器类型之一。某些处理器还支持在冒号后面的选项。

<基址> 是十六进制加载基址,以段(16字节对齐)为单位。实际上,这意味着您应该从完整地址中删除最后一个零。

例如,要在线性地址 0xBFC00000 处加载大端MIPS固件:

ida -pmipsb -bBFC0000 firmware.bin

映射到 0x4000 的 Cortex-M3 固件:

ida -parm:ARMv7-M -b400 firmware.bin

开启日志

当IDA自主运行时,您可能会错过通常打印在输出窗口中的消息,但它们可能包含重要的信息性消息、错误或警告。要保留消息的副本,您可以使用 -L 开关:

ida -B -Lida_batch.log <文件名>

原文始发于微信公众号(二进制磨剑):IDA 技巧(7) IDA 命令模式

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月17日14:32:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IDA 技巧(7) IDA 命令模式https://cn-sec.com/archives/2665855.html

发表评论

匿名网友 填写信息