2011-09-29 44 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