在Windows平台上为powerPC提取和检测elf文件

时间:2013-03-19 21:37:03

标签: windows elf instrumentation extraction powerpc

我试图从elf文件中提取函数名称及其参数等信息,目的是通过更改函数的参数值来执行健壮性测试,我正在使用Windows环境和我想要的仪器的elf文件powerPC体系结构,我尝试使用开源工具DynInst http://www.dyninst.org/,它可以在MS Visual Studio上构建,但它使用cl编译器(exe和dll格式)编译二进制文件,我有以下问题要提出:

1)是否可以使用Microsoft Visual Studio c ++编译器生成elf文件,以便我可以使用DynInst来检测二进制文件?

2)是否有其他方法或工具可用于在Windows平台上提取和检测elf文件?

objdump,readelf,nm等提供了提取精灵的功能,但我还需要对它们进行检测。我不知道如何定制这些实用程序以满足我的需求,任何建议都会有很大的帮助!

/感谢

2 个答案:

答案 0 :(得分:0)

  

1)是否可以使用Microsoft Visual Studio c ++编译器生成elf文件

当然:ELF只是一种文件格式。就像您可以在PowerPC / AIX上编写.zip文件并在SPARC / Solaris和x86 / Windows上读取它一样,这样您就可以在任何操作系统上编写ELF文件。

  

这样我可以使用DynInst来检测二进制文件吗?

DynInst是否能够检测这样的文件我不知道。

  

是否有其他方法或工具可用于在Windows平台上提取和检测elf文件?

您可以编译包含binutils的GNU readelf包。您可以使用它从ELF文件中提取各种信息。

还有libelf库,允许您阅读编写ELF文件。是否可以在Windows上构建libelf而不会有太多麻烦,我不知道。

答案 1 :(得分:0)

无法使用Visual Studio编译器直接生成ELF二进制文件。 Windows二进制文件是PE格式,与ELF不兼容。 可以生成ELF输出一种迂回的方式,有很多工作,通过编译汇编语言,并在生成的文件上运行脚本以从PE转换为ELF,并使用支持ELF的汇编程序(如gas,yasm,nasm)来汇总生成的文件。

此外,您将无法在Windows上执行PowerPC二进制文件,因为Windows不支持PowerPC体系结构。

如果DynaInst只是将钩子插入到编译代码中,那么你应该使用交叉编译器来编译DynaInst库钩子和你想要的二进制文件。

还有其他可用的工具,它们也可以在Windows上运行,例如gprof,它只依赖于某些功能可用,它们用于检测函数调用。