Assembly 如何执行MIPSEB-LE ECOFF可执行文件?

Assembly 如何执行MIPSEB-LE ECOFF可执行文件?,assembly,mips,executable,disassembly,steganography,Assembly,Mips,Executable,Disassembly,Steganography,我提取了一个文件,在隐写术挑战的一部分中,我发现它是一个MIPSEB-LE ECOFF可执行文件。当我运行“file executablefile”时,我得到“executablefile:MIPSEB-LE ECOFF executable not stripped”。我在互联网上研究如何运行这样一个可执行文件时遇到了不少麻烦,我非常希望能得到正确方向的指导。谢谢 ECOFF是在Ultrix、Tru64 UNIX、IRIX以及可能的Linux/MIPS中使用的COFF的变体。对于文件模式,该文

我提取了一个文件,在隐写术挑战的一部分中,我发现它是一个MIPSEB-LE ECOFF可执行文件。当我运行“file executablefile”时,我得到“executablefile:MIPSEB-LE ECOFF executable not stripped”。我在互联网上研究如何运行这样一个可执行文件时遇到了不少麻烦,我非常希望能得到正确方向的指导。谢谢

ECOFF是在Ultrix、Tru64 UNIX、IRIX以及可能的Linux/MIPS中使用的COFF的变体。对于
文件
模式,该文件还声明它是针对Silicon Graphics和Dell Ultrix系统的特定格式。同一个文件声明它必须使用big-endian数据约定

Qemu有许多MIPS CPU芯片变体,但对SGI操作系统的支持不多。是支持MIPS的模拟器列表,其中至少有几个报告运行IRIX


我的建议是,在您开始为它们尝试不同的模拟器和操作系统之前(这将是无数个组合),您应该对文件进行更深入的静态分析。了解它是否打包/加密,系统调用它做什么,这将很好地指示它是为什么操作系统编写的,它可以做什么,它包含什么人类可读字符串等。

您可以尝试使用
objconv
将其转换为ELF二进制文件。但是,请注意,如果该程序是为另一个操作系统编写的,则它不太可能运行。此外,在反向工程业务中,执行不受信任的二进制文件不应该是您的第一个想法。里面的程序可能是完全恶意的。您应该首先分解并理解它的基本静态属性。然后您可以决定在模拟器/仿真器/虚拟机中运行它。请注意,即使使用虚拟机,现在也不能保证100%的安全性-此类环境也可能存在可从虚拟机外部锁定的漏洞。还要注意的是,
文件
工具本身可能会不准确地报告该文件,可能是精心设计的x86二进制屏蔽作为MIPS ECOFF,但即使在x86上也会执行,等它更可能是正确的,而且实际上是MIPS ECOFF,但是做一些基本的验证(检查文件头是否有意义,第一条指令是否是MIPS和合理的)听起来是下一步的好选择<代码>文件通常只检查一些正则表达式模式或报头中的几个字节来报告特定的MIME类型,因此对于复杂的格式,如果您在构建文件时足够“有创意”,则可能会被欺骗。
s/outside/inside/
在我之前的评论中;也就是说,虚拟机中的代码有时可以连接虚拟机监视器和/或主机系统。谢谢,你知道有什么好的资源可以让我了解如何从可执行文件中提取此类数据吗?@ColbyMorgan:
objdump-d
来分解它(使用支持MIPS的binutils构建),然后开始阅读反汇编,看看它在做什么@fuz建议使用
objconv
objcopy
,如果
objdump
不理解文件格式,可能会有所帮助。@ColbyMorgan这是一个更一般的问题“如何反转程序?”。为此使用专用工具,如(免费)或IDA pro(成本$$$),或通用工具,如
objdump
(不适用于为隐藏自身行为而编写的代码)。如果你像我一样是个书呆子,读一本书“IDA Pro book”可以帮助你理解基本的术语和方法