IDA官网发布的每周技巧7----IDA命令行选项

hex-rays官方发布了一套《Igor的IDA每周技巧》系列文章,内容不错,故进行跟踪翻译,期望对大家有所帮助。

第七篇原文:Igor’s tip of the week #07: IDA command-line options cheatsheet

大多数用户通常都是单独使用IDA,并且都是使用用户界面来配置各种选项。其实可以通过命令行来给IDA传递一些参数,这会使一些配置过程自动完成,不再需要与用户交互。

Tips:下面例子中的ida可以被替换,要使用64位程序替换为ida64,要使用控制台UI替换为idat(idat64)。

IDA打开文件的简单方式

ida <filename>

<filename>可以是你想分析的一个新文件,也可以是一个现有的数据库(idb/i64)。这个用法和在界面中使用File->Open打开一个文件,或者将一个文件拖到IDA图标上的效果是一样的,你还是需要人工配置文件加载对话框等IDA弹出的对话框里的选项,但能跳过最初的启动画面。

Tips:如果你还使用了其它命令行选项,要放在filename之前,不然会被忽略。

打开文件并自动选择加载器

ida -T<prefix> <filename>

<prefix>是描述加载信息的前缀,和文件加载对话框中的描述方式一致,IDA根据这些描述信息选择合适的加载器。例如,要加载一个.NET可执行文件,IDA使用如下选项:

  1. Microsoft.Net assembly
  2. Portable executable for AMD64 (PE)
  3. MS-DOS executable (EXE)
  4. Binary file

这几个选项对应的-T命令行参数为:

  1. -TMicrosoft
  2. -TPortable
  3. -TMS
  4. -TBinary

如果前缀选项的内容中包含空格,需要使用双引号括起来。例如,要加载Mach-O文件的第一个切片:

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

如果要加载的是一个压缩格式的文件,如ZIP,可以在冒号后面指定加载压缩文件中的哪个被压缩成员。例如,要加载apk里的主dex文件:

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

但加载apk最好还是使用apk加载器(特别对于多dex的apk文件):

ida -TAPK file.apk

如果在命令行中包含了-T选项,最开始弹出的加载对话框就会被跳过,IDA直接使用特定加载器加载目标文件。加载对话框以外的其它对话框还是会弹出。

自动接受所有提示信息、消息、警告

有时,你想接受所有默认设置,直接加载目标文件。这时你可以使用-A选项:

ida -A <filename>

使用这个命令,IDA不会弹出任何对话框,直接接受所有选项的默认选择。

Tips:使用这个方式时,IDA加载目标文件后,仍然不会显示任何交互式对话框,甚至是重命名和增加注释对话框。要恢复交互模式,在底部的IDC或Python控制台输入batch(0)语句并执行。

自动反汇编

这个命令行选项是上一个的扩展,使用-B开关:

ida -B <filename>

这个命令会使用所有默认选项加载目标文件,自动分析,输出反汇编结果到<filename>.asm文件,然后保存数据库并退出IDA。

二进制文件选项

当加载纯二进制文件(raw binary)时,IDA无法根据文件格式(ELF/PE)识别任何元数据(metadata)。特别是无法从文件格式中提取出处理器类型和加载地址信息,这就必须要用户提供。要加速工作过程,可以在命令行选择中指定这两个信息:

ida -p<processor> -B<base> <filename>

<processor>是IDA支持的一种处理器类型,某些处理器还支持在冒号后面增加额外选项。

<base>是16进制的加载基址。这里的地址有点特殊,需要删除末尾的一个0。

例如:

从线性地址0xBFC00000加载一个大端序的MIPS固件:

ida -pmipsb -bBFC0000 firmware.bin

加载一个映射在0x4000的Cortex-M3固件:

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

记录日志

当单独(autonomously)使用IDA时,你将丢失通常会打印到输出窗口的很多信息,这些信息可能包含重要的消息、错误、警告。如果想保留这些消息到一个日志文件中,可以使用-L选项:

ida -B -Lida_batch.log <filename>

欢迎关注我的微博:大雄_RE。专注软件逆向,分享最新的好文章、好工具,追踪行业大佬的研究成果。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值