自修改代碼
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
自修改代碼(Self-modifying code)是指程式在執行期間(Run time)修改自身指令。可能的用途有:病毒利用此方法逃避防毒軟件的查殺,反靜態分析、加殼壓縮,反盜版[1] ,單晶片程式升級。
電腦
在暫存記憶體中執行代碼的電腦,可修改主記憶體中的代碼段,以往這種方法常被黑客用來製造病毒(參見:EICAR 測試病毒),現今許多作業系統及CPU提供限制程式修改代碼段的方法。還可用於程式保護,增加軟件破解人員的靜態分析難度[2]。
Java SE 6 提供Java Compiler API,和Java的反射(Reflection)機制結合在一起,即可使Java程式在執行時產生新類(Class),替換舊類。
單晶片
若由ROM執行程式,如支援IAP的單晶片能夠運用自修改代碼進行程式升級,也能對負責IAP功能的代碼進行修改或刪除從而失去IAP功能。
參考文獻
- ^ Delphi程式的自我修改,北京 , 王甲春,《中文資訊:程式春秋》,2003年第7期,第97-99頁
- ^ 一種基於自修改代碼技術的軟件保護方法,王詳根 ,司端鋒, 馮登國, 蘇璞睿,《中國科學院研究生院學報》 2009年9月,第26卷第5期,中國科學院軟件研究所資訊保安國家重點實驗室
![]() | 這是一篇關於電腦程式語言的小作品。您可以透過編輯或修訂擴充其內容。 |