-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add 7-ida-command-line-options-cheatsheet (#6)
* add 7-ida-command-line-options-cheatsheet * fix 7 Co-authored-by: firmianay <[email protected]>
- Loading branch information
Showing
2 changed files
with
102 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
[#]: translator: "cease2e" | ||
|
||
7、IDA 命令行选项手册 | ||
======= | ||
|
||
大多数 IDA 用户可能将 IDA 作为独立应用程序运行,并使用 UI 来配置各种选项。但是,可以将命令行选项传递给 IDA 以对某些选项进行自动化配置。[全部选项][1]很长,所以我们将介绍更常见和有用的选项。 | ||
|
||
> 在下面的示例中,可以将 `ida` 替换为 `ida64`(用于 64 位文件)或 `idat` (`idat64`) 用于控制台(文本模式)UI。 | ||
### 仅在 IDA 中打开一个文件 | ||
|
||
`ida <filename>` | ||
|
||
`<filename>` 可以是您想要反汇编的新文件或现有数据库。这种用法与使用 File > Open 或将文件拖放到 IDA 的图标上基本相同。您仍然需要手动确认 Load File 对话框中的选项或 IDA 显示的任何其他提示,但会跳过初始启动屏幕。 | ||
|
||
> 如果您使用任何其他命令行选项,请确保将它们放在文件名之前,否则它们将被忽略。 | ||
### 打开文件并自动选择加载程序 | ||
|
||
`ida -T<prefix> <filename>` | ||
|
||
其中 `<prefix>` 是加载文件对话框中显示的加载程序描述的*唯一*前缀。例如,在加载 .NET 可执行文件时,IDA 提供以下选项: | ||
|
||
- Microsoft.Net assembly | ||
- Portable executable for AMD64 (PE) | ||
- MS-DOS executable (EXE) | ||
- Binary file | ||
|
||
对于它们中的每一个,对应的 `-T` 选项分别是: | ||
|
||
- `TMicrosoft` | ||
- `TPortable` | ||
- `TMS` | ||
- `TBinary` | ||
|
||
当前缀包含空格时,需要使用引号。例如,从一个 fat Mach-O file 中加载第一个切片: | ||
|
||
`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 <filename>` | ||
|
||
这将使用自主或批处理模式加载文件,其中 IDA 不会显示任何对话框,但在所有情况下都采用默认选项。 | ||
|
||
> 在这种模式下,加载完成后**不会**显示任何交互式对话框(例如,甚至“Rename”或“Add comment”)。要恢复交互性,请在 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 支持的[处理器类型][2]之一。一些处理器还支持在冒号后给出更具体的选项。 | ||
|
||
`<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>` | ||
|
||
-------------------------------------------------------------------------------- | ||
|
||
via: https://hex-rays.com/blog/igor-tip-of-the-week-07-ida-command-line-options-cheatsheet/ | ||
|
||
作者:Igor Skochinsky | ||
译者:[cease2e](https://github.com/cease2e) | ||
校对:[firmianay](https://github.com/firmianay) | ||
|
||
[1]: https://hex-rays.com/products/ida/support/idadoc/417.shtml | ||
[2]: https://hex-rays.com/products/ida/support/idadoc/618.shtml |