程序自修改(Self-modifying code)是指程序在运行期间(Run time)修改自身指令。可能的用途有:
病毒利用此方法逃避
杀毒软件的查杀,反
静态分析,反盗版,
单芯片程序升级。
在暂存内存中执行代码的
计算机,可修改内存中的代码段,以往这种方法常被
骇客用来制造病毒(参见:EICAR 测试病毒),现今许多
操作系统及
CPU提供限制程序修改代码段的方法。还可用于程序保护,增加软件破解人员的静态分析难度。
Java SE 6 提供Java Compiler API,和
Java的
反射(Reflection)机制结合在一起,即可使Java程序在运行时产生新
类(Class),替换旧类。
若由
ROM执行程序,如支持
IAP的单芯片能够运用程序自修改进行程序升级,也能对负责IAP功能的代码进行修改或删除从而失去IAP功能。
运行时期(Run time)在
计算机科学中代表一个
计算机程序从开始运行到终止运行的运作、运行的时期。与运行时期相对的其他时期包括:设计时期(design time)、编译时期(compile time)、链接时期(link time)、与加载时期(load time)。
而
运行环境是一种为正在运行的程序或程序提供软件服务的虚拟机械环境。它有可能是由操作系统自行提供,或由运行此程序的母程序提供。
通常由
操作系统负责处理程序的加载:利用加载器(loader)读入代码,接着进行基本的
存储器配置,并视需要
联结此程序指定的所有动态链接库。有些编程语言会由此语言提供的运行环境处理上述工作。
代码的某些问题,只能在运行期间进行调试动作(或较有效率),例如
逻辑错误或
数组边际检查等便属此类。因此不管撰写与测试得多么精细,有些
错误必须在实际上线并处理真实数据的情况下才能找出。因此,程序用户也许会遇到诸如运行时期错误之类的消息。
单芯片,全称单片微型计算机(英语:single-chip microcomputer),又称
微控制器(microcontroller),是把
中央处理器、
存储器、定时/计数器(timer/counter)、各种
输入输出接口等都集成在一块
集成电路芯片上的
微型计算机。与应用在个人计算机中的通用型
微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由于单片机微电脑常用于当控制器故又名single chip microcontroller。“单芯片”是台湾对单片机的称呼;中国大陆主要采用“单片机”的称呼,英文缩写为MCU。
杀毒软件(英语:Antivirus software)使用于侦测、移除
电脑病毒、电脑蠕虫、和特洛伊木马程序。杀毒软件通常含有即时程序监控识别、恶意程序扫描和清除和自动更新病毒数据库等功能,有的杀毒软件附加损害恢复等功能,是
电脑防御系统(包含杀毒软件,
防火墙,特洛伊木马程序和其他
恶意软件的防护及删除程序,
入侵防御系统等)的重要组成。