自修改代碼Self-modifying code)是指程式在執行期間Run time)修改自身指令。可能的用途有:病毒利用此方法逃避防毒軟體的查殺,反靜態分析加殼壓縮,反盜版[1]單晶片程式升級。

電腦

暫存記憶體中執行代碼的電腦,可修改主記憶體中的代碼段,以往這種方法常被駭客用來製造病毒(參見:EICAR 測試病毒),現今許多作業系統CPU提供限制程式修改代碼段的方法。還可用於程式保護,增加軟體破解人員的靜態分析難度[2]

Java SE 6 提供Java Compiler API,和Java反射Reflection)機制結合在一起,即可使Java程式在執行時產生新Class),替換舊類。

單晶片

若由ROM執行程式,如支援IAP的單晶片能夠運用自修改代碼進行程式升級,也能對負責IAP功能的代碼進行修改或刪除從而失去IAP功能。

參考文獻

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.