复用IDA的分析结果

IDA Pro分析二进制程序时可以加载PDB,因而可以很容易查看符号信息。

利用这个原理,如果已知二进制应用加载了开源库,可通过自行编译开源库得到PDB,再经由IDA载入目标二进制程序,获得符号信息,辅助逆向分析。如果IDA加载PDB文件出错就换一个版本再试,我就出现6.6、6.8都加载不成功的PDB,6.5反而可以。

现在尝试让Flash复用Tamarin的符号:

  1. 用VS编译后,得到avm.pdb
  2. IDA分析avm.exe过后再载入PDB
  3. 使用IDB2SIG插件生成PAT文件
  4. sigmake -nflash_symbol avm.pat flash.sig
  5. 这一步会得到EXC格式的文件,进去删掉第一行注释后重新执行上述命令就得到了flash.sig
  6. IDA分析Flash过后,载入flash.sig就能看到符号信息了

编译选项很有讲究,如果Flash是VS2008编译的,那生成Tamarin时也应该用VS2008。比如,Win 8.1的Flash是VS2012编译的,或者开启了CFG选项的话,那Tamarin就同样方式编译,这样的sig才会有更高的匹配率。