-
-
[IDA使用技巧]#007: IDA命令行选项速查表
-
发表于: 2024-3-14 11:24 2554
-
翻译:梦幻的彼岸
原文地址:https://hex-rays.com/blog/igor-tip-of-the-week-07-ida-command-line-options-cheatsheet/
大多数 IDA 用户可能将 IDA 作为独立应用程序运行,并使用用户界面配置各种选项。不过,也可以向 IDA 传递命令行选项,以自动完成某些部分的操作。完整选项相当长,因此我们只介绍比较常用和有用的选项。
在下面的示例中,对于 64 位文件,可以用ida64代替ida,对于控制台(文本模式)用户界面,可以用idat(idat64) 代替 ida。
在 IDA 中打开文件即可
ida <filename>
<filename[文件名]>可以是要反汇编的新文件,也可以是现有的数据库。这种用法与使用 "文件">"打开 "或将文件拖放到 IDA 图标上的方法基本相同。你仍然需要手动确认 "加载文件 "对话框或 IDA 显示的任何其他提示中的选项,但跳过了最初的闪屏。
如果使用了其他命令行选项,请确保将其放在文件名之前,否则会被忽略。
打开文件并自动选择加载器
ida -T<prefix> <filename>
其中<prefix[前辍]>是加载文件对话框中显示的加载程序说明的唯一前缀。例如,在加载 .NET 可执行文件时,IDA 会提供以下选项:
- Microsoft.Net 程序集
- 用于 AMD64 的可移植可执行文件 (PE)
- MS-DOS 可执行文件 (EXE)
- 二进制文件
对于每一种情况,相应的 T 选项可能是
- -TMicrosoft
- -TPortable
- -TMS
- -TBinary
当前缀包含空格时,请使用引号。例如,从Fat Mach-O 文件加载第一个片段:
ida "-TFat Mach-O File, 1" file.macho
在前缀包含空格时,请使用引号。例如,要加载来自fat Mach-O文件的第一个片段:
ida -TZIP:classes.dex:Android file.apk
不过,通常最好在顶层选择 APK 加载器(尤其是在多 Dex 文件的情况下)
ida -TAPK file.apk
指定-T时,将跳过初始加载对话框,IDA 将直接使用指定的加载器加载文件(但仍可能显示其他提示)。
自动接受任何提示、信息或警告
有时,你只想加载文件并接受所有默认设置。在这种情况下,可以使用 -A 参数:
ida -A <filename>
这将使用自主 或 批处理模式加载文件,在这种模式下,IDA 不会显示任何对话框,而是在任何情况下都接受默认答案。
在此模式下, 加载完成后不会 显示任何 交互式对话框(例如,连 "重命名 "或 "添加注释 "都不会显示)。要恢复交互性,请在 IDA 窗口底部的 IDC 或 Python 控制台中执行batch(0)语句。
批量拆解
这是上一节的扩展,使用 -B 参数调用:
IDA -B <filename>
IDA 将使用所有默认选项加载文件,等待自动分析结束,将反汇编输出到<filename>.asm中,并在保存数据库后退出。
二进制文件选项
在加载原始二进制文件时,IDA 无法使用 ELF、PE 或 Mach-O 等高级文件格式中的任何元数据。特别是,处理器类型和加载地址无法从文件中推导出来,必须由用户提供。为了加快工作流程,可以在命令行中指定它们:
ida -p<processor> -B<base> <filename>
<processor[处理器]>是 IDA 支持的处理器类型之一。 某些处理器还支持冒号后的选项。
<base[基础]>是以段为单位的十六进制加载基址(每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 <filename>
赞赏
- [原创]物联网安全:基础篇 4117
- 威胁情报小课堂:阻止活跃勒索软件的感染 2176
- [翻译]发现利用 Facebook 和 MS 管理控制台实施的 Kimsuky APT 攻击 7055
- 威胁情报小课堂:LockBit Black 2052
- 威胁情报小课堂:Nitrogen 2077