我想研究和比较elf,SPARC和PA-RISC的可执行文件结构。
要执行研究,我想在Intel计算机(Core2Duo)上安装OpenSolaris。 但我有一个基本的疑问,它会起作用吗?
我知道SPARC有自己的集会 - 如果它起作用或者根本就是有效的想法而怀疑。
我的目标是编写一些程序来反汇编它们,并在工具的帮助下研究文件结构。
我不知道如何为HP-UX(PA-RISC)执行所有这些操作;不知道PA-RISC的任何免费操作系统。
答案 0 :(得分:1)
您将无法在英特尔处理器上运行 Sparc或PA-RISC可执行文件。但是,如果您只想分析这些可执行文件的结构,那么您只需要合适的开发工具。
我没有检查过,但我怀疑OpenSolaris附带的开发工具能够开箱即用地分析Solaris / sparc可执行文件。但即使是其他工具链也能做到这一点。例如,GNU binutils(特别是它们使用的BFD library)支持许多架构,包括Sparc和PA-RISC。 (如果您使用GNU binutils,请确保您获得完整版本,可能标记为“用于交叉编译”,例如Debian上的binutils-multiarch
或Ubuntu)
答案 1 :(得分:1)
SPARC:
我从未在任何事情上安装过OpenSolaris。您可能会考虑尝试使用NetBSD:它至少与Solaris一样运行SPARC机器,它使用ELF格式的可执行文件。源代码也可免费用于研究。
您需要了解ELF文件格式。我不记得在我想要了解ELF的那些日子里突出的任何特定文件,看起来Google可以提供大量可以解释ELF的网站。我对ELF的建议是编写一个程序来读取ELF头文件,然后以可读的文本格式将它们转储出来,即使已经存在许多这样的程序。
您还需要一个了解ELF的SPARC反汇编程序。我很久以前写过一篇,今天它可能会运作得相当好。 http://www.stratigery.com/elf_dis.tar.Z
您可以在此处下载有关SPARC的PDF:http://www.sparc.com/specificationsDocuments.html我推荐使用SPARC V8和V9架构手册。
PA-RISC:
这是一个非常奇怪的架构,几乎没有文档的方式。我相信PA-RISC是Apollo Computer的(R.I.P)RISC架构,然后惠普在1990年或1991年收购了Apollo。堆栈逐渐增长,堆积增长,其他几乎所有东西都相反。它还有一个段寄存器,但其工作方式与x86分段不同。
惠普真的是唯一可以找到PA-RISC的地方。
答案 2 :(得分:1)
有Linux,NetBSD和OpenBSD的PA-RISC架构的端口。
除非使用完整的模拟器,否则无法在x86系统上运行为Sparc或PA-RISC编译的代码。 Qemu可以模拟基于Sparc的机器,在其上运行Linux操作系统具有足够的准确性(但它不会很快:Qemu必须逐个解释所有Sparc操作码,这有很大的开销,所以从2011年开始的快速PC可能会从1996年开始产生Sparc工作站的性能。有一个正在进行的项目添加PA-RISC support to Qemu,但它似乎没有达到任何非平凡的可用性水平。