gpt4 book ai didi

x86 - 如何判断二进制序列是否为 x86 机器码?

转载 作者:行者123 更新时间:2023-12-02 01:15:27 25 4
gpt4 key购买 nike

我们都知道在x86 arch中,数据和代码混合在内存或磁盘中。但是怎么告诉他们呢?

paper需要这个方法,我不期望100%的准确率。 80% 还可以,即使是一些想法也可以:)

最佳答案

统计确定哪些命令在可执行文件中是常见的。

例如。一些命令可能是加/减等。

对于未知的二进制序列,将其视为机器代码,并查看使用的各种命令的频率(此处您可以假​​设命令在字节边界正确开始)。

如果使用了无效命令,显然不是机器码。

否则,请查看所用命令的百分比频率是否与通常情况相符。


此外,当使用接受地址(例如寄存器或内存/数据位置)的命令时,记录它们。然后检查附近是否正在访问相同的位置。

这可以通过按使用频率降序对使用的任何数据位置进行排序来完成,并且看到频率下降的形状与通常的形状有些匹配。


数据(非机器代码)不太可能匹配这些统计测试。

请注意,当我说合身时,您可以检查是否合身。即使它与正常情况相去甚远,它可能仍然是代码,除非在统计上几乎没有相关性。

关于x86 - 如何判断二进制序列是否为 x86 机器码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12027405/

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