论进程间通信实现程序的自我保护

论进程间通信实现程序的自我保护
论进程间通信实现程序的自我保护

论进程间通信实现程序的自我保护

在计算机和网络技术日益发展的今天,病毒这个字眼越来越多地出现在了媒体和人们的言论中。计算机病毒的发展必然会促进计算机反病毒技术的发展,新型病毒的出现向以行为规则判定病毒的预防产品、以病毒特征为基础的检测产品,以及根据计算机病毒传染宿主程序的方法而消除病毒的产品提出了挑战,致使原有的反病毒技术和产品在新型的计算机病毒面前无能为力。本文从模拟病毒隐藏性和寄生性的角度出发,以进程通信、进程快照、多线程等技术基础,利用Visual C++的MFC窗口界面设计了一组程序自我保护软件,经过测试实现了程序的稳定运行。

1.进程的概念

当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。进程由两个部分组成:(1)操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。(2)地址空间。它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间,如线程堆栈和堆分配空间。

所谓进程通信,就是不同进程之间进行一些“接触”,这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指传递一些信息。

2.线程的概念

线程是一个能独立于程序的其他部分运行的作业,是进程的一个实体,是CPU调度和分派的基本单位。线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。一个线程可以执行应用程序代码的任一部分,包括正在由另一线程执行的代码。线程由两个部分组成:(1)线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。(2)线程堆栈,它用于维护线程在执行代码时需要的所有参数和局部变量。线程属于一个过程,操作系统为每一个运行线程安排一定的CPU时间——时间片,线程是操作系统分配CPU时间的基本单位。系统通过一种循环的方式为线程提供时间片,线程在自己的时间内运行,因时间片相当短,因此,给用户的感觉,就好像线程是同时运行的一样。如果计算机拥有多个CPU,线程就能真正意义上同时运行了。

3.进程与线程的关系

进程是系统资源管理的最小单位,线程是程序执行的最小单位。进程是不活泼的,进程可以理解为是线程的容器。若要使进程完成某项操作,它必须拥有一

相关主题
相关文档
最新文档