cs如何加电脑人指令,cs怎么添加人机指令

首页 > 游戏 > 作者:YD1662024-05-02 20:53:01

该算法的指导思想在于:快速跳过指令中无关紧要的字节

cs如何加电脑人指令,cs怎么添加人机指令(5)

怎么理解这句话?

比如压栈的指令push,下面几条虽然字节序列不同,但变化的只是数据,其实都是压栈指令,对于这类指令,就没必要花费时间去遍历:

68 6F 72 6C 64 push 646C726Fh

68 6F 2C 20 77 push 77202C6Fh

68 68 65 6C 6C push 6C6C6568h

第一个字节68就是关键字节,后面的四个字节都是压入栈中的数据,就属于无关紧要的字节。

如果能识别出这类,快速跳过,将能够大面积减少需要遍历的搜索空间。

(PS:本文来自公众号:编程技术宇宙)

上面只是一个例子,如何能够系统化的过滤掉这类指令呢?报告中提出了一个方案:

cs如何加电脑人指令,cs怎么添加人机指令(6)

观察指令中的有意义的字节,它们对指令的长度和异常表现会产生冲击。

又该怎么理解这句话?

还是上面那个例子,当尝试修改第一个字节68的时候,这一段二进制序列可能就完全变成了别的指令,甚至指令长度都会发生变化(比如把68改成90,那就变成了一个字节的nop指令),那么就认为这第一个字节是一个有意义的字节,修改了它会对指令的长度产生重要影响。

反之,如果修改后面字节的数据,会发现这仍然是一条5个字节的压栈指令,长度没变化,也没有其他异常行为表现与之前不同,那么就认为后面几个字节是无关紧要的字节。

在这个指导思想下,我们来看一个例子:

从下面这一段数据开始出发:

cs如何加电脑人指令,cs怎么添加人机指令(7)

我们从两个字节的指令开始遍历:

cs如何加电脑人指令,cs怎么添加人机指令(8)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.