我在在线 Retargetable Disassembler 中反汇编了一个 MIPS 库,但我不太明白我得到的代码(我是逆向工程的新手)。我是否可以重新编译代码以便我可以调用它,或者直接使用库来调用代码?
我认为后者只有在我在 MIPS 上运行时才有可能。我还能如何继续逆向工程此代码?
我在在线 Retargetable Disassembler 中反汇编了一个 MIPS 库,但我不太明白我得到的代码(我是逆向工程的新手)。我是否可以重新编译代码以便我可以调用它,或者直接使用库来调用代码?
我认为后者只有在我在 MIPS 上运行时才有可能。我还能如何继续逆向工程此代码?
您将必须学习 MIPS 汇编,以及有关处理器及其使用的寄存器的一些信息(例如,操作码是 3 操作数,并且r0始终为零)。
如果您想在静态反汇编工作中添加动态分析,则需要相应的环境。例如,如果您的二进制文件是一个旧的 SGI IRIX 软件,Linux MIPS 系统将帮不上什么忙,因为调用约定、文件格式等都不同。但是,这并不一定意味着您需要 MIPS 处理器,有各种适用于 MIPS 设备的模拟器。
特别是在 Linux 下的 MIPS 的情况下,许多路由器使用 MIPS 处理器,其中有几个允许您 telnet 或 ssh 进入。因此,除了运行模拟器之外,您还可以尝试获取其中一个设备,复制您的二进制文件,并运行它,可能在 gdb 或 IDA Pro 等调试器的控制下(您需要专业版,免费版和入门级版本不支持 MIPS)。
对仅二进制代码进行逆向工程是通过工具(反汇编器、调试器、反编译器...)以及您正在查看的一定数量的汇编语言知识来完成的。
对一段二进制代码进行逆向工程的唯一方法是通过它并尝试理解它。如果您没有 MIPS 汇编器的先验知识,请获取一些知识。如果您对反汇编器、调试器和反编译器一无所知,请学习一些相关知识。