花指令是一種防止程序被反匯編調試的手段。

種類

跳轉到多字長指令的參數中

一般來說,反匯編器會按順序進行反匯編,但是,如果程序跳轉到多字長指令的參數中,反匯編的結果就會和實際情況不符。

More information 內存地址 ...
示例(使用 6502 指令集,數字如無特殊說明均為十六進制
內存地址 0 1 2 3 4 5
機器碼 4C 04 00 A9 A9 60
反匯編出的指令 JMP $0004 LDA #$A9 RTS
釋義 跳轉到地址 4 將 A9 載入累加器 子程序返回
實際執行的指令 JMP $0004 這裏不會被執行 LDA #$60
釋義 跳轉到地址 4 將 60 載入累加器中
Close

這個例子過於簡單,是可以被調試器檢測到的。實際應用的花指令比這個更複雜,含有條件跳轉指令。

參見

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.