IDA Pro:如何将数据导出到 C 样式数组?

逆向工程 拆卸 艾达 idapro插件
2021-06-29 06:19:35

在拆卸恶意软件二进制文件时,我遇到了几组短裤。每个数组的大小为 1024 个成员。我想将它们导出到 C 样式数组,如:

short array1[1024] = { 2, 5, 8, ... , 4};  /* This is just an example */

我绝对可以手动复制/粘贴并编辑整个内容。然而,这似乎很乏味。我想知道,有没有更好的方法来实现它?可以用脚本/插件来完成吗?

2个回答

一个小脚本就可以解决问题。在 IDC 中,类似于:

auto ea, len, i;
len = 1024;
ea = /* whatever */;

Message("short array[1024] = {\n  ");
for(i = 0; i < len; i = i + 1)
{
  Message("0x%.04lx", Word(ea+i*2));
  if( i != (len - 1) )
    Message(",");

  if(i > 0 && (i % 0x1f) == 0)
    Message("\n  ");
}
Message("};\n\n");


To Handle Bytes instead of Words
Replace 
`Word(...)` with `Byte(...)` 
and
`0x%.04lx` with `0x%.02lx`
and
 Word(ea+i*2) with Byte(ea+i)


To Handle DWORDs instead of WORDs
Replace 
`Word(...)` with `DWord(...)` 
and
`0x%.04lx` with `0x%.08lx`
and
 Word(ea+i*2) with DWord(ea+i*4)

老问题,但从 IDA 6.5 开始,有一个新的菜单选项Edit/Export data...可以为您处理这种情况。首先选择要导出的数据,然后通过菜单选项选择保存数据的输出格式和文件名。