我試圖誘導故障在特定的彙編指令運行過程中的故障。我能夠更改說明,但我不確定如何可靠地創建故障。創建彙編指令以儘可能少的字節儘可能
我想,以確保其他指令保持不變,並執行特定的指令時,過程只崩潰。因此,如果可能的話,我需要用1或2個字節的組件創建故障。如果原始說明較大,我可以用NOP填充它。
例如:我怎樣才能改變這2個字節,所以執行時就會死機。
7f a9 | jg
我想過將操作碼設置爲任意值,但我不確定這實際上是否工作。
任何指針是極大的讚賞! 謝謝,佩德羅!
我試圖誘導故障在特定的彙編指令運行過程中的故障。我能夠更改說明,但我不確定如何可靠地創建故障。創建彙編指令以儘可能少的字節儘可能
我想,以確保其他指令保持不變,並執行特定的指令時,過程只崩潰。因此,如果可能的話,我需要用1或2個字節的組件創建故障。如果原始說明較大,我可以用NOP填充它。
例如:我怎樣才能改變這2個字節,所以執行時就會死機。
7f a9 | jg
我想過將操作碼設置爲任意值,但我不確定這實際上是否工作。
任何指針是極大的讚賞! 謝謝,佩德羅!
的最短路程,在大多數情況下是使用
CCh int 3
爲一個字節的操作碼觸發調試異常。
如果你正在尋找一個崩潰的用戶應用程序的另一種簡單,耐調試,這樣,你總是可以使用它僅適用於CPL0又名內核模式,如特權指令
0f 08 invd (invalidate internal caches)
f4 hlt (enter Halt state)
0f 0b ud2 (invalid opcode)
而且在大多數情況下非常有效和CPL0也正在被跳轉到一些隨機地址有兩個一個字節的操作碼狀
50 push eax
c3 ret
當然,還有其他的可能性。只是因爲它比程序更容易崩潰:)
編輯:包括HLT
,UD2
由於建議在評論。在每種情況下,例如CLI
和STI
都不會#GP。 IOPL = CPL = 3。
這是什麼架構?對於x86,請嘗試「HLT」,「0xf4」。這是一條特權指令,當由非特權代碼執行時會導致GPF。 –
0xcc只需要一個字節。 –
您不需要使用NOP進行填充。如果用錯誤insn替換第一個字節,它將會出錯。如果它後字節解碼廢話,這並不重要,因爲他們不會在所有被執行(或者,如果你寫一個調試器,直到你把復出後的原始字節和SIGILL或SIGTRAP返回。) –