当前,我正在通过.idb批量生成一堆idaw.exe -B <FILE>文件。 (我使用的是IDA Pro 6.8。)此过程还会创建许多.asm文件-每个创建的.idb文件一个。我不需要这些文件,因此它们只会被忽略/删除。

是否可以从命令行生成.idb文件而不生成.asm文件?

#1 楼

在帮助页面的底部,您可以看到以下内容:

对于批处理模式,必须使用以下命令行来调用IDA:
ida -B input-file
ida -c -A -Sanalysis.idc input-file


即.asm的实际分析和编写由analysis.idc完成。查看它,我们可以看到:
static main()
{
  // turn on coagulation of data in the final pass of analysis
  set_inf_attr(INF_AF, get_inf_attr(INF_AF) | AF_DODATA | AF_FINAL);
  // .. and plan the entire address space for the final pass
  auto_mark_range(0, BADADDR, AU_FINAL);

  msg("Waiting for the end of the auto analysis...\n");
  auto_wait();

  msg("\n\n------ Creating the output file.... --------\n");
  auto file = get_idb_path()[0:-4] + ".asm";

  auto fhandle = fopen(file, "w");
  gen_file(OFILE_ASM, fhandle, 0, BADADDR, 0); // create the assembler file
  msg("All done, exiting...\n");
  qexit(0); // exit to OS, error code 0 - success
}

,所以只需制作自己的脚本副本,删除写出.asm文件的部分(调用gen_file),然后使用自己的脚本运行IDA: > ida -c -A -Smyanalysis.idc -Lida.log input-file

评论


这是前一阵子,但是味精打印在哪里呢?该脚本文件看起来仍然与您在此处发布的文件相同。如图所示,运行脚本时我看不到任何这些打印件。

– sherrellbc
5月13日17:03

@sherrellbc设置IDALOG = ida.log或使用-Lida.log开关

–伊戈尔·斯科钦斯基♦
5月19日7:04

如果将Python脚本用作-S的参数,那么ida_auto.auto_wait()是否足以作为与analysis.idc脚本中的auto_wait相似的调用?

– sherrellbc
9月30日15:59