📑 Table of Contents

自修改代码Self-modifying code)是指程序在运行期间Run time)修改自身指令。可能的用途有:病毒利用此方法逃避杀毒软件的查杀,反静态分析加殼壓縮,反盗版[1]單晶片程序升级。

电脑

编辑

暫存記憶體中执行代码的计算机,可修改内存中的代码段,以往这种方法常被駭客用来制造病毒(参见:EICAR 测试病毒),现今许多操作系统CPU提供限制程序修改代码段的方法。还可用于程序保护,增加软件破解人员的静态分析难度[2]

Java SE 6 提供Java Compiler API,和Java反射Reflection)机制结合在一起,即可使Java程序在运行时产生新Class),替换旧类。

单晶片

编辑

若由ROM执行程序,如支持IAP的单晶片能够运用自修改代码进行程序升级,也能对负责IAP功能的代码进行修改或删除从而失去IAP功能。

参考文献

编辑
  1. ^ Delphi程序的自我修改,北京 , 王甲春,《中文信息:程序春秋》,2003年第7期,第97-99页
  2. ^ 一种基于自修改代码技术的软件保护方法,王详根 ,司端锋, 冯登国, 苏璞睿,《中国科学院研究生院学报》 2009年9月,第26卷第5期,中国科学院软件研究所信息安全国家重点实验室

📚 Artikel Terkait di Wikipedia

SMC

Cloud) 安全多方计算(英語:Secure multi-party computation),一种密码学问题 程序自修改(英語:Self-modifying code) SmartMedia卡(英語:SmartMedia Card) Secret Maryo Chronicles 單一選區(Single-Member

陳述式

敘述的語意(sematic)以及句法(syntax)是依據每個程式語言的定義來規定的。 許多的程式語言不允許自我修改程式碼(self-modifying code)。或者說,多數程式語言不允許在執行時間創造新的敘述(Snobol 4則是一個允許這樣作的例子)或者修改現有的敘述(Lisp則是一個反例)。

代码段

在采用段式内存管理的架构中,代码段(code segment / text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许程序自修改(self-modifying code)。

自指

Kaufmann. 1997: 17–19. ISBN 978-1558603202.  King, James R. Writing Self-Modifying Code. Journal of Computing Sciences in Colleges. 1999: 122–124.  Graham

非官方补丁

[2017-11-25]. (原始内容存档于2021-05-15).  softwarelaw (页面存档备份,存于互联网档案馆) on cr.yp.to MODIFYING COPYRIGHTED SOFTWARE: ADJUSTING COPYRIGHT DOCTRINE TO ACCOMMODATE A TECHNOLOGY

LISP

a function appears where a form is expected. This can be corrected by modifying the rule defining an argument so as to include functional arguments:   <argument> ::=

2020年美国联邦政府数据泄露事件

accessed Microsoft source code, the company says. CNBC. 2021-01-01 [2021-01-13]. (原始内容存档于2021-01-01). Modifying source code — which Microsoft said the

ML语言

hardware verification. …… The first version of the HOL system was created by modifying the Cambridge LCF parser and pretty-printer to support higher order logic