gpt4 book ai didi

assembly - 如何创建包含 'fake' 指令的 x86 二进制文件

转载 作者:行者123 更新时间:2023-12-03 06:19:51 26 4
gpt4 key购买 nike

我正在开发一个项目,我想向 x86 添加一些自定义操作代码并在 QEMU 中运行它们。我已经弄清楚如何修改 QEMU 中的代码生成,以采用带有“假”操作码的汇编指令,并在 QEMU 中对其执行某些操作。

但是,我遇到问题的部分是我实际上如何创建一个包含假指令的二进制文件。我想到的唯一方法是添加一些 db 语句,然后手动编写指令。例如:

xor EAX, EBX
db 0xf1,0x32,0x55,0x00
mov EBX, EAX

(假设数据库有足够的字节作为实际指令)。这实际上会编译一个二进制文件,其中我在第二行中定义的字节被视为指令吗?

是否有一些更优雅的方法?由于我将修改 QEMU 以支持这些更改,因此我实际上不受指令格式的约束 - 我只需要让 QEMU 的代码生成器识别 OP 代码,其余部分我可以根据需要制定。

最佳答案

使用db的方法是当新型号的CPU出现时的标准程序,当前工具没有立即更新以支持额外的寻址模式和/或指令。

请注意,现在在 x86 指令集中查找漏洞来定义新指令相当具有挑战性。检查Intel's latest CPU architecture documents :附录中总是有一组表显示操作码映射。这将是查找未使用的指令操作码序列的最简单方法。

关于assembly - 如何创建包含 'fake' 指令的 x86 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6288166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com