ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:20.16KB ,
资源ID:9141184      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9141184.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(关于运用入程间通信实现程序自我维护.docx)为本站上传会员【qwe****66】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

关于运用入程间通信实现程序自我维护.docx

1、 关于运用入程间通信实现程序自我维护 论文摘要: 本文从实例的角度动身,以模拟病毒特点为主线,具体地先容了如何运用多入程实现程序的自我维护。通过对于入程及线程运行原理的分析,重点钻研入程间通信技术,终极实现程序运行的稳定。 论文关键词: 病毒 入程间通信 程序自我维护 一、引言 在计算机以及网络技术日益发铺的今天,病毒这个字眼越来越多地出现在了媒体以及人们的言论中。计算机病毒的发铺必定会促入计算机反病毒技术的发铺,新型病毒的出现向以行径规则判断病毒的预防产品、以病毒特点为基础的检测产品,和依据计算机

2、病毒沾染宿主程序的法子而解除了病毒的产品提出了挑战,致使原本的反病毒技术以及产品在新型的计算机病毒面前无能为力。这样,势必使人们熟识到现有反病毒产品在抗衡新型的计算机病毒方面的局限性,迫使人们在反病毒的技术以及产品长入行新的更新以及换代。要打败对于手,就要从了解对于手开始,本文从模拟病毒隐躲性以及寄生性的角度动身,以入程通信、入程快照、多线程等技术基础,运用visual c++的mfc窗口界面设计了1组程序自我维护软件,经过测试实现了程序的稳定运行。 二、入程的概念 当1个程序开始运行时,它就是1个入程,入程所指包孕运行中的程序以及程序所使用到的内存以及系统

3、资源。于是定义入程(process)是拥有必然独立功能的程序关于某个数据聚拢上的1次运行活动,是系统入行资源分配以及调度的1个独立单位。程序只是1组指令的有序聚拢,它自身没有任何运行的含意,只是1个静态实体。而入程则不同,它是程序在某个数据集上的履行,是1个动态实体。它因创立而发生,因调度而运行,因等待资源或者事件而被处于等待状况,因完成任务而被撤销,反应了1个程序在必然的数据集上运行的全体动态进程。 入程由两个部门组成: (一)操纵系统用来治理入程的内核查象。内核查象也是系统用来寄存关于入程的统计信息的处所。 (二)地址空间。它囊括所有可履行模块或者dll

4、模块的代码以及数据。它还囊括动态内存分配的空间,如线程堆栈以及堆分配空间。 目前常常使用的操纵系统都是并行的,就是多个入程可以同步运行,这时候就会牵扯到入程间通信这个概念。所谓入程通信,就是不同入程之间入行1些“接触”,这类接触有简朴,也有繁杂。机制不同,繁杂度也不1样。通信是1个广义上的意义,不单单指传递1些信息。举个例子来说明:好比说在使用ie上网时,你想将网页上的1段文字留存至你的电脑上,这时候有1种简朴的法子,就是复制粘贴。将你想留存的文字选中,然后将其复制,接下来将所复制的文字粘贴到.txt文档中,这时候就构成为了两个入程之间的通信,这里的通信媒介是剪贴板。

5、三、线程的概念 为了对于线程模式有必然的理解,咱们可以将其想象为把1所房子里的东西搬到另1所房子。假设采取单线程法子,则需要自己完成从打包到扛箱子再到拆包的所有工作。假设使用单元线程模式,则表示约请了好朋友来帮忙。每一个朋友在1个单独的房间里工作,并且不能帮助在其他房间工作的人。他们各自傲责自己的空间以及空间内的物品搬运。假设采取自由线程法子,仍旧约请相同的朋友来帮忙,然而所有朋友可以随时在任何1个房间工作,共同打包物品。与此相似,屋子就是运行所有线程的入程,每一个朋友都是1个代码实例,搬运的物品为利用程序的资源以及变量。 有了上面的例子,便能等闲理解线程(thread

6、是1个能独立于程序的其他部门运行的作业,是入程的1个实体,是cpu调度以及分派的基本单位。线程不能够独立履行,必须依存在利用程序中,由利用程序提供多个线程履行节制。线程是程序中的1个履行流,每一个线程都有自己的专有寄放器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以履行一样的函数。1个线程可以履行利用程序代码的任1部门,包孕正在由另1线程履行的代码。 线程由两个部门组成: (一)线程的内核查象,操纵系统用它来对于线程实行治理。内核查象也是系统用来寄存线程统计信息的处所。 (二)线程堆栈,它用于保护线程在履行代码时需要的所有参数以及局部变量。

7、 线程属于1个进程,操纵系统为每一1个运行线程支配必然的cpu时间——时间片,线程是操纵系统分配cpu时间的基本单位。系统通过1种轮归的方式为线程提供时间片,线程在自己的时间内运行,因时间片相称短,于是,给用户的感觉,就仿佛线程是同时运行的1样。假设计算机具备多个cpu,线程便可以真正意义上同时运行了。 四、入程与线程的瓜葛 依据操纵系统的定义,入程是系统资源治理的最小单位,线程是程序履行的最小单位。入程是不活泼的,入程可以理解为是线程的容器。若要使入程完成某项操纵,它必须具备1个在它的环境中运行的线程,此线程负责履行囊括在入程的地址空间中的代码。单个入程可能

8、囊括若干个线程,这些线程都“同时”履行入程地址空间中的代码。每一个入程最少具备1个线程,来履行入程的地址空间中的代码。当创立1个入程时,操纵系统会自动创立这个入程的第1个线程,称为主线程。尔后,该线程可以创立其他的线程。 线程是属于入程的,它没有自己的独立的数据地址空间,线程运行在入程空间内,于是线程的切换速度比较快。统1入程所发生的线程共享统1内存空间,而这些线程的履行由系统调度程序节制,调度程序抉择哪个线程可履行和何时履行线程。线程有优先级别,优先权较低的线程必须等到优先权较高的线程履行完后再履行。当入程退出时该入程所发生的线程都会被强迫退出并肃清。线程可与属于统1入程的其他线

9、程共享虚地址空间、全局变量,和该入程所具备的全体资源,包孕打开的文件、信号标志及动态分配的内存等。然而其自身基本上不具备系统资源,只具备1点在运行中必不可少的信息(如程序计数器、1组寄放器以及栈)。 线程有点像入程身体内的细胞,咱们通常听过量入程多线程,单入程多线程。这就是说,1个系统内有几个入程,假设入程是多个,就是多入程的,假设入程内有多个线程,那就是多线程的,多入程多线程的系统比单入程多线程的系统速度慢,然而可靠性高。 五、程序的设计与实现 程序的自我维护是1个大的概念,其中有多种方式以及手腕来实现本身的维护。好比隐躲、自我复制、注册为服务,等等。咱们

10、实现的程序自我维护其实是1个互相监视的进程。其中包孕了程序之间的监视以及报警,监听程序的隐躲与维护。 五、一监视 所谓监视,是运用入程枚举的法子,让所有程序在运行同时不停地对于入程列表入行快照,并检查目标入程是否是存在的进程。 在windows环境下可以通过调用toolhelp api函数来到达枚举系统入程的目的。微软的windows nt开发小组因为不喜欢toolhelp函数,所以未将这些函数添加给windows nt,所以开发了自己的process status函数,就是psapi。然而后来微软已经经将to

11、olhelp函数添加给了windows 二000。toolhelp三二库函数在kernel三二、dll中,它们都是尺度的api函数。 toolhelp三二库中有各种各样的函数可以用来枚举系统中的入程、线程,和获患上内存以及模块信息。其中枚举入程只需用以下3个的函数:createtoolhelp三二snapshot、process三二first以及process三二next。 使用toolhelp三二函数的第1步是用createtoolhelp三二snapshot函数创立系统信息“快照”。这个函数可让你选择存储在快照中的信息类型。假设你只是对于入程信息感喜爱,

12、那么只要囊括th三二cs_snapprocess标志即可。createtoolhelp三二snapshot函数返归1个handle,完成调用以后,必须将此handle传给closehandle。 接下来是调用1次process三二first函数,从快照中获患上入程列表,然后重复调用process三二next,直到函数返归false为止。这样将遍历快照中入程列表。这两个函数都带两个参数,它们分别是快照句柄以及1个processentry三二结构。 调用完process三二first或者process三二next以后,processentry三二中将囊括系统中某个入程的关键

13、信息。它的详细内容以下: typedef struct tagprocessentry三二{ dword dwsize; dword cntusage; dword th三二processid; dword th三二defaultheapid; dword th三二moduleid; dword cntthreads; dword th三二parentprocessid; long

14、 pcpriclassbase; dword dwflags; tchar szexefile; dword th三二memorybase; dword th三二accesskey; }processentry三二; 其中入程id就存储在此结构的th三二processid。此id可以被传给openprocessapi以获取该入程的句柄。对于应的可履行文件名及其寄存路径寄存在szexefile结形成员中。在该结构中还可以找到其他1些有用的信息。 五、二报

15、警 这里的报警就触及了入程间通信的概念。本文中触及的入程间通信是用剪贴板的法子,剪贴板在咱们实际利用中是用患上比较多的,它其实是系统保护治理的1个内存区域,当咱们在1个程序中复制数据的时候,其实是将这些数据放进了内存,相反,当咱们在另1个程序中粘贴数据时其实是从内存取出数据。下面先容1下使用剪贴板时的主要函数:打开剪贴板openclipboard,无论是对于剪贴板的读还是写,都要首先调用此函数,以断定是否是可以对于剪贴板入行操纵。此函数是bool型的,假设调用胜利就返归非零,否则返归零。清空剪贴板emptyclipborad,每一次对于剪贴板的写进操纵以前,都理当调用此函数,这个函

16、数的作用不然而清空剪贴板,而且起到获取剪贴板的使用权的作用。一样,这个函数也是bool型的,假设调用胜利就返归非零,否则返归零。对于剪贴板写进setclipboarddata(uint uformat,handle hmem),这个函数有两个参数,第1个参数用来表示写进剪贴板数据的格局,第2个参数接管1个句柄值,在这里它接管1个指向内存对于象的句柄,这个内存对于象中寄存着预备写进剪贴板的数据内容。在调用setclipboarddata(uint uformat,handle hmem)以前还需要调用globalalloc(uint u

17、flags,size_t dwsytes)这样1个函数,它专门用来为将要写进的数据分配1块内存空间。这个函数接管两个参数,第1个参数表示如何来分配内存空间,这里咱们将它设置为gmem_moveable,表示动态分配内存。第2个参数是表示分配内存空间的大小。globalalloc(uint uflags,size_t dwsytes)返归1个句柄,咱们没法使用句柄来间接的将数据放进内存,这时候就需要调用另1个函数globallock(hglobal hmem),这个函数获取1个内存对于象的句柄,将这块内存加锁,返归1个指针,这时候咱们便可以够给指针

18、所指向的这块内存写进数据了。这个函数使用1个内存计数,计数器基数为零,每一调用1次计数器加1,所以每一调用1次的同时还需要调用此外1个函数globalunlock(hglobal hmem)来给计数器减1,相称于取缔对于这块内存的锁定。本文设计的程序实现报警功能就是在枚举入程以后发现目标入程被终止,从而在剪贴板中写进信息的进程。 五、三监听 所谓监听,就是报警的反方向,即从剪贴板中读出信息。从剪贴板读取数据的函数getclipboarddata(uint uformat)。这个函数只接管1个参数,参数指定读取的格局。读取信息以后,咱们还要对于信息

19、入行if断定,假设信息是咱们预留的某个入程被收场的话,咱们就启动维护措施。 五、四维护以及隐躲 这里的维护是指监听程序对于其他程序的维护,法子无比简朴,只需要运用winexec函数来实现目标入程的启动便可以够。而隐躲是指监听程序本身的隐躲,只要在onpaint函数里调用showwindow(sw_hide)函数便可以够了,同时将监听程序命名为smss,便可以够防止其被强行终止。 六、结语 本文中程序的设计是模仿病毒的1些特性而做成的。它实现了程序的隐躲,并且运用了系统的漏洞实现了不被终止。对于咱们了解病毒的特点提供了优异平台,同时对于1般程序自我维护的设计有很好的现实意义。 第11页 共11页

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服