2011-09-29 105 views
3

有谁知道任何提供NOP操作码替代指令的在线源?NOP的替代品

像'xchg斧头,斧头'等。我很确定这里面也有一个工具,请问有人能指点我那个方向吗?

+0

它能生产nop替代品吗? – Spyros

+0

出于好奇,你在寻找nop替代品的目的是什么? –

+0

研究nopsleds – Spyros

回答

5

这个页面有NOP替代方案,且编码长度增加一个不错的列表:http://www.asmpedia.org/index.php?title=NOP

+0

问题是,这主要是关于nop本身。我想要像'mov ax,ax'这样的指令。 – Spyros

+0

截止日期,任何替代或实现? –

2

英特尔优化手册和Intel和AMD的使用说明书应具备的所有无操作同等功能的列表。应该注意的是,它们中的大多数都是多字节无操作,用于对齐分支和代码缓存目标等。

+0

[Vol。 2B 4-13](http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html) – user786653

0

只是想通过不改变任何东西(不是标志)的不同操作。给寄存器或寄存器自己和寄存器加上零,将寄存器移到自身。用0减去0,或用0减去。有点测试类型的指令,通常是一个,但目的地不会被修改。

+1

如果它改变标志,它不是一个真正的NOP。 –

+0

我同意,取决于海报实际上是在寻找什么样的操作,不做任何事情来注册或者不做任何事情来注册和标记。 –

2

某些shellcode引擎包含nop sled生成器,如果这是您正在寻找的。

虽然有各种各样的长度nop - 等价物的无限变化,所以详尽的列表是不切实际的。例如,push eax; pop eax实际上是nop。 (假设有效的esp等,等等)

inc eax; dec eax(假设没有溢出或你测试然后重置溢出标志)。

+0

是的,我在想他们,或者像'xor eax,0'。我希望有一个列表或什么。正如我所说,我很确定我看到过这样的工具。 – Spyros

+0

如果你想编写一个生成器:一个真正懒惰的方法是将机器状态保存到堆栈,然后生成随机指令(那些不触及内存或导致中断的指令),然后重新加载机器州。 (多形态shellcode通常做类似的事情,尽管可能会有更多的限制,比如仅使用单字节指令)。 – Wood