我正在研究 ELF 文件的静态代码注入器。我需要“窃取”一些字节,以便在它们的位置写入跳转到我的代码,然后在有效负载中的某处执行窃取的指令。但是我不知道如何自动化它。我需要为我的跳转指令窃取至少 5 个字节,但显然 5 个字节并不总是等于指令的总数,所以我可能需要nop几个字节。
在 ELF 二进制(最好是 C/C++)中给定字节的情况下,区分指令的方法是什么?
我正在研究 ELF 文件的静态代码注入器。我需要“窃取”一些字节,以便在它们的位置写入跳转到我的代码,然后在有效负载中的某处执行窃取的指令。但是我不知道如何自动化它。我需要为我的跳转指令窃取至少 5 个字节,但显然 5 个字节并不总是等于指令的总数,所以我可能需要nop几个字节。
在 ELF 二进制(最好是 C/C++)中给定字节的情况下,区分指令的方法是什么?
x86/x64 指令集是可变长度的,没有明显的指令边界。您可以使用长度反汇编器来计算每条指令的长度。有很多可用的,以下是我通过快速搜索找到的一些:
https://github.com/greenbender/lend