如何在 x86 的二进制 ELF 文件中将字节拆分为指令

逆向工程 x86 C++ linux 小精灵 注射
2021-06-16 14:12:01

我正在研究 ELF 文件的静态代码注入器。我需要“窃取”一些字节,以便在它们的位置写入跳转到我的代码,然后在有效负载中的某处执行窃取的指令。但是我不知道如何自动化它。我需要为我的跳转指令窃取至少 5 个字节,但显然 5 个字节并不总是等于指令的总数,所以我可能需要nop几个字节。

在 ELF 二进制(最好是 C/C++)中给定字节的情况下,区分指令的方法是什么?

1个回答

x86/x64 指令集是可变长度的,没有明显的指令边界。您可以使用长度反汇编器来计算每条指令的长度。有很多可用的,以下是我通过快速搜索找到的一些:

https://github.com/greenbender/lend

https://github.com/Nomade040/length-disassembler

https://github.com/GiveMeZeny/fde64