范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

分析利用进程间通信实现程序自我保护

  分析利用进程间通信实现程序自我保护          分析利用进程间通信实现程序自我保护	分析利用进程间通信实现程序自我保护
  论文摘要: 本文从实例的角度出发,以模拟病毒特征为主线,详细地介绍了如何利用多进程实现程序的自我保护。通过对进程及线程运行原理的分析,重点研究进程间通信技术,最终实现程序运行的稳定。
  论文关键词: 病毒 进程间通信 程序自我保护
  1.引言
  在计算机和网络技术日益发展的今天,病毒这个字眼越来越多地出现在了媒体和人们的言论中。计算机病毒的发展必然会促进计算机反病毒技术的发展,新型病毒的出现向以行为规则判定病毒的预防产品、以病毒特征为基础的检测产品,以及根据计算机病毒传染宿主程序的方法而消除病毒的产品提出了挑战,致使原有的反病毒技术和产品在新型的计算机病毒面前无能为力。这样,势必使人们认识到现有反病毒产品在对抗新型的计算机病毒方面的局限性,迫使人们在反病毒的技术和产品上进行新的更新和换代。要打败对手,就要从了解对手开始,本文从模拟病毒隐藏性和寄生性的角度出发,以进程通信、进程快照、多线程等技术基础,利用Visual C++的MFC窗口界面设计了一组程序自我保护软件,经过测试实现了程序的稳定运行。
  2.进程的概念
  当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。因此定义进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤销,反映了一个程序在一定的数据集上运行的全部动态过程。
  进程由两个部分组成:
  (1)操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。
  (2)地址空间。它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间,如线程堆栈和堆分配空间。
  目前常用的操作系统都是并行的,就是多个进程可以同步运行,这时就会牵扯到进程间通信这个概念。所谓进程通信,就是不同进程之间进行一些"接触",这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指传递一些信息。举个例子来说明:比如说在使用IE上网时,你想将网页上的一段文字保存至你的电脑上,这时有一种简单的方法,就是复制粘贴。将你想保存的文字选中,然后将其复制,接下来将所复制的文字粘贴到.TXT文档中,这时就形成了两个进程之间的通信,这里的通信媒介是剪贴板。
  3.线程的概念
  为了对线程模式有一定的理解,我们可以将其想象为把一所屋子里的东西搬到另一所屋子。如果采用单线程方法,则需要自己完成从打包到扛箱子再到拆包的所有工作。如果使用单元线程模式,则表示邀请了好朋友来帮忙。每个朋友在一个单独的房间里工作,并且不能帮助在其他房间工作的人。他们各自负责自己的空间和空间内的物品搬运。如果采用自由线程方法,仍然邀请相同的朋友来帮忙,但是所有朋友可以随时在任何一个房间工作,共同打包物品。与此类似,房子就是运行所有线程的进程,每个朋友都是一个代码实例,搬运的物品为应用程序的资源和变量。
  有了上面的例子,便能容易理解线程(Thread)是一个能独立于程序的其他部分运行的作业,是进程的一个实体,是CPU调度和分派的基本单位。线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。一个线程可以执行应用程序代码的任一部分,包括正在由另一线程执行的代码。
  线程由两个部分组成:
  (1)线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。
  (2)线程堆栈,它用于维护线程在执行代码时需要的所有参数和局部变量。
  线程属于一个过程,操作系统为每一个运行线程安排一定的CPU时间——时间片,线程是操作系统分配CPU时间的基本单位。系统通过一种循环的方式为线程提供时间片,线程在自己的时间内运行,因时间片相当短,因此,给用户的感觉,就好像线程是同时运行的一样。如果计算机拥有多个CPU,线程就能真正意义上同时运行了。
  4.进程与线程的关系
  根据操作系统的定义,进程是系统资源管理的最小单位,线程是程序执行的最小单位。进程是不活泼的,进程可以理解为是线程的容器。若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,此线程负责执行包含在进程的地址空间中的代码。单个进程可能包含若干个线程,这些线程都"同时"执行进程地址空间中的代码。每个进程至少拥有一个线程,来执行进程的地址空间中的代码。当创建一个进程时,操作系统会自动创建这个进程的第一个线程,称为主线程。此后,该线程可以创建其他的线程。
  线程是属于进程的,它没有自己的独立的数据地址空间,线程运行在进程空间内,因此线程的切换速度比较快。同一进程所产生的线程共享同一内存空间,而这些线程的执行由系统调度程序控制,调度程序决定哪个线程可执行以及什么时候执行线程。线程有优先级别,优先权较低的线程必须等到优先权较高的线程执行完后再执行。当进程退出时该进程所产生的线程都会被强制退出并清除。线程可与属于同一进程的其他线程共享虚地址空间、全局变量,以及该进程所拥有的全部资源,包括打开的文件、信号标志及动态分配的内存等。但是其本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器、一组寄存器和栈)。
  线程有点像进程身体内的细胞,我们通常听过多进程多线程,单进程多线程。这就是说,一个系统内有几个进程,如果进程是多个,就是多进程的,如果进程内有多个线程,那就是多线程的,多进程多线程的系统比单进程多线程的系统速度慢,但是可靠性高。
  5.程序的设计与实现
  程序的自我保护是一个大的概念,其中有多种方式和手段来实现自身的保护。比如隐藏、自我复制、注册为服务,等等。我们实现的程序自我保护实际上是一个相互监督的过程。其中包括了程序之间的监督和报警,监听程序的隐藏与保护。
  5.1监督
  所谓监督,是利用进程枚举的方法,让所有程序在运行同时不停地对进程列表进行快照,并检查目标进程是否存在的过程。
  在Windows环境下可以通过调用ToolHelp API函数来达到枚举系统进程的目的。微软的Windows NT开发小组因为不喜欢ToolHelp函数,所以没有将这些函数添加给Windows NT,所以开发了自己的Process Status函数,就是PSAPI。但是后来微软已经将ToolHelp函数添加给了Windows 2000。ToolHelp32库函数在KERNEL32.dll中,它们都是标准的API函数。
  ToolHelp32库中有各种各样的函数可以用来枚举系统中的进程、线程,以及获取内存和模块信息。其中枚举进程只需用如下三个的函数:CreateToolhelp32Snapshot()、Process32First()和Process32Next()。
  使用ToolHelp32函数的第一步是用CreateToolhelp32Snapshot()函数创建系统信息"快照"。这个函数可让你选择存储在快照中的信息类型。如果你只是对进程信息感兴趣,那么只要包含TH32CS_SNAPPROCESS标志即可。CreateToolhelp32Snapshot()函数返回一个HANDLE,完成调用之后,必须将此HANDLE传给CloseHandle()。
  接下来是调用一次Process32First函数,从快照中获取进程列表,然后重复调用Process32Next,直到函数返回FALSE为止。这样将遍历快照中进程列表。这两个函数都带两个参数,它们分别是快照句柄和一个PROCESSENTRY32结构。
  调用完Process32First或Process32Next之后,PROCESSENTRY32中将包含系统中某个进程的关键信息。它的具体内容如下:
  typedef struct tagPROCESSENTRY32{
  DWORD dwSize;
  DWORD cntUsage;
  DWORD th32ProcessID;
  DWORD th32DefaultHeapID;
  DWORD th32ModuleID;
  DWORD cntThreads;
  DWORD th32ParentProcessID;
  LONG pcPriClassBase;
  DWORD dwFlags;
  TCHAR szExeFile;
  DWORD th32MemoryBase;
  DWORD th32AccessKey;
  }PROCESSENTRY32;
  其中进程ID就存储在此结构的th32ProcessID。此ID可以被传给OpenProcess()API以获得该进程的句柄。对应的可执行文件名及其存放路径存放在szExeFile结构成员中。在该结构中还可以找到其他一些有用的信息。
  5.2报警
  这里的报警就涉及了进程间通信的概念。本文中涉及的进程间通信是用剪贴

电工快速估算口诀汇总各种绝缘导线安全载流量的估算截面与安全截面的倍数见表口诀一二点五下整九倍,往上减一顺号对,三五线乘三点五,双双成组减半倍。注ldquo二点五下整九倍,往上减一顺号对,rdquo即是试论土壤污染的防范及其治理措施前言我国国土面积广大,且属于农业大国,而土壤可以为植物生长带来机械支撑作用,并为其提供生长中必须的物质,包括水分养料氧气热量等,对于土壤正常功能造成影响,使得农作物产量降低,质量受有机肥对土壤中抗生素降解的促进作用的研究随着抗生素应用范围和使用频率的不断增加,抗生素对环境的污染问题逐渐受到人们的重视。众多研究表明,农田土壤是人类处方药抗生素和兽用抗生素的主要归宿地,抗生素主要通过排泄物生活垃圾污水优化历史教学中的生本对话历史课堂教学中的生本对话,即学生与历史教材历史资料等文本之间的对话,它是历史课堂对话教学的主要方式之一。有效的生本對话能促成课堂其他对话教学方式的顺利进行,创设灵动课堂,进而实现课浅谈高中历史课堂中的分层教学为确保每个学生都能主动地学习,让不同层次的学生都能摘到果子,获得成功的喜悦,从而增强学习的信心战胜困难的勇气,提高课堂40分钟教学的效果至关重要。我认为在教学过程采取因材施教分层教探究大同对中国两千多年历史的影响一大同思想的理论内涵中国的大同思想可谓源远流长,大同这一概念最早记载于礼记礼运大道之行也,天下为公,选贤与能,讲信修睦。故人不独亲其亲,不独子其子,使老有所终,壮有所用,幼有所长,大学历史课堂教学效果提升探析中国近现代史纲要是当代高校的一门公共基础课程,它主要是对学生们进行中华人民共和国国史和国情教育,对大学生们了解我国的发展历程有极大的帮助,有利于培养大学生的民族向心力。但是,从近些中央国术馆摔跤活动历史考察与当代启示中央国术馆的创办是中国近代体育史上值得浓墨重彩记述的一件大事,它掀起了一场以民族传统体育强健国民体格振奋民族精神的国术发展热潮。在其二十多年的国术推广历程中,除传统武术项目开展盛况基于历史观视角对我国射击运动项目发展规律的研究射擊运动于1952年在国内立项,60余年来已取得许多荣誉,其中在历届奥运会中共获得22金15银19铜的优异成绩。作为一项具有较强竞争实力的竞技体育项目,其优异成绩背后显然存在规律。互联网背景下中学历史教学新策略互联网让教育真正进入一场基于信息化技术的伟大变革中,这种变革产生的教育云对中学历史教学策略的变化有非常大的影响,积极地跟上时代的脉搏,不断地补缺纠偏究新,追寻新的教学理念方法策略,人教版历史教材在教学中运用的几点思考随着课程改革的不断深入和发展,加之,自己的从教时间的逐年增长,对历史教材和教学有了一定的思考,当然困惑也就随之而来,历史教学与教材的整合以及讲授等暴露一些问题,下面提出本人的粗浅认
体验教学法的人力资源管理课程应用摘要在人力资源管理课程的教学过程中,应用体验教学法在一定程度上能够激发学生的学习兴趣,使得学生的知识视野得以拓宽,最终实现素质教学。因此,本文列举了人力资源管理课程中应用体验教学法薪酬激励的国家电网人力资源管理价值摘要在新一轮电力体制改革的推动下,具有社会性质的售电公司形成发展热潮,促使电力行业人才竞争越发激烈。因此,薪酬待遇薪酬激励等等方面的人力资源管理问题已然成为国家电网必须重视的问题。绩效考核在医院人力资源管理的重要性摘要救死扶伤是医疗事业的本职工作,同时有效的人力资源管理也是医疗事业中非常重要的内容,有助于医护人员工作主动性积极性及工作热情的提高,从而能够促使医院整体工作水平提高。绩效考核是人国企人力资源管理制度创新摘要随着经济的不断发展,我国市场经济模式也发生了相应的改变。原有经济模式下的国企人力资源管理面临着严峻的挑战,实行国企人力资源管理制度的创新,是当前国企发展中非常重要的举措。本文主人力资源管理理论的学生干部管理摘要高校的学生干部在学校老师和学生之间具有承上启下的桥梁作用,是学生工作中的重要组成部分,而如何管理学生干部,也将影响着高校学生工作的开展。从报名面试选拔到聘用培训奖励绩效考核,每中小银行档案管理系统知识化升级摘要知识经济时代,档案作为银行的核心知识资源,其价值已被广泛认可,但其数量的膨胀与利用方式的落后使银行档案管理系统对业务的支撑度逐渐下降,因此银行必须改进现有的档案管理系统。大型银城建档案管理的难点问题及解决对策研究摘要进入21世纪以来,随着网络的发展,城建档案管理工作也面临着改革与发展。从现状来看,城建档案管理还存在诸多的难点问题,比如档案管理意识不强建档不及时以及管理技术落后等等。本文在分事业单位档案管理现状及对策摘要随着社会的发展,信息化发展也在不断加强。为了符合时代发展的需要,我国的事业单位档案管理也在不断进行着改革。但是,在事业单位档案管理的改革中同样面临着很多的问题,如何改变这些问题财务档案管理的现状改善对策摘要财务档案管理属于是单位企业整个财务管理工作中不可缺少的一个环节,是企业单位开展各项活动的基础前提,对企业单位的运营发展有很大的推动作用。创新是一个国家永续发展的强劲动力,同时也试论完善我国应用型人才培养的职业教育体系的思考论文论文摘要应用型人才是指知识应用能力较强职业能力较突出素质较高适应经济社会发展一线需要的实用型人才。应用型人才培养主要由职业教育类型来培养完成,其完整体系本身包括初级职业教育中等职业暖通设计节能技术分析论文摘要随着当今社会的发展,各种各样建筑设施开始动工,其中的暖通建设就显得尤为关键。如果还是按照以前的简易的暖通技术来进行暖通建设,这就会造成建设项目无法正常进行,而且对建筑单位的利益