版权归原作者所有,如有侵权,请联系我们

[科普中国]-程序自修改

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

程序自修改(Self-modifying code)是指程序在运行期间(Run time)修改自身指令。可能的用途有:病毒利用此方法逃避杀毒软件的查杀,反静态分析,反盗版,单芯片程序升级。

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

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

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

运行期运行时期(Run time)在计算机科学中代表一个计算机程序从开始运行到终止运行的运作、运行的时期。与运行时期相对的其他时期包括:设计时期(design time)、编译时期(compile time)、链接时期(link time)、与加载时期(load time)。

而运行环境是一种为正在运行的程序或程序提供软件服务的虚拟机械环境。它有可能是由操作系统自行提供,或由运行此程序的母程序提供。

通常由操作系统负责处理程序的加载:利用加载器(loader)读入代码,接着进行基本的存储器配置,并视需要联结此程序指定的所有动态链接库。有些编程语言会由此语言提供的运行环境处理上述工作。

代码的某些问题,只能在运行期间进行调试动作(或较有效率),例如逻辑错误或数组边际检查等便属此类。因此不管撰写与测试得多么精细,有些错误必须在实际上线并处理真实数据的情况下才能找出。因此,程序用户也许会遇到诸如运行时期错误之类的消息。2

单芯片单芯片,全称单片微型计算机(英语:single-chip microcomputer),又称微控制器(microcontroller),是把中央处理器、存储器、定时/计数器(timer/counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人计算机中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由于单片机微电脑常用于当控制器故又名single chip microcontroller。“单芯片”是台湾对单片机的称呼;中国大陆主要采用“单片机”的称呼,英文缩写为MCU。2

杀毒软件杀毒软件(英语:Antivirus software)使用于侦测、移除电脑病毒、电脑蠕虫、和特洛伊木马程序。杀毒软件通常含有即时程序监控识别、恶意程序扫描和清除和自动更新病毒数据库等功能,有的杀毒软件附加损害恢复等功能,是电脑防御系统(包含杀毒软件,防火墙,特洛伊木马程序和其他恶意软件的防护及删除程序,入侵防御系统等)的重要组成。2

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所