03ZSTJ1-00-301-RS 通过操作码级编程来有意地安排
在处理器架构上可变长度指令集2sx86处理器系列)中,在控制流重新同步现象(称为克鲁斯卡尔计数,3有时可能通过操作码级编程来有意地安排结果代码,以便两个代码路径共享操作码序列的公共片段。这些被称为重叠指令,重叠操作码,重叠代码,重叠代码,指令中断,或者跳到指令中间,并表示一种形式的叠加。4[6]
在20世纪70年代和80年代,重叠指令有时被用来保留内存空间。一个例子是在错误表的实现中微软s牛郎星基本,在哪里交错指令相互共享它们的指令字节。7[4]这种技术现在很少使用,但在需要在字节级上对大小进行极端优化的领域(如在引导装载程序它们必须适合引导扇区。[注2]
它有时也被用作代码混淆技术作为对抗的手段拆卸和篡改。[2]
该原理也用于共享代码序列胖双星其必须运行在多个指令集不兼容的处理器平台上。
该属性还用于查找意外指令呼叫小玩意儿在现有的代码库中,并用于面向返回的编程作为的替代代码注入对于利用,例如返回到libc攻击。
ABB 3BDH000031R1
ABB 5SDF0860H0003
ABB KUC720AE
ABB 07AC91D
ABB 3HAC7681-1
ABB DSQC509
ABB 3HAC5687-1/06