- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
杀毒软件的预处理研究,数据预处理的方法,数据的预处理,图像预处理的目的,c语言的预处理过程,预处理的作用,样品预处理的方法,图像的预处理,发酵液的预处理,复用?2760?械的预处理
相信大家看过了前两期文章,已经对简单的查毒引擎的工作和PE文件格式有了一定程度的了解。但这些只是为了说明问题而制作的Demo工程。作为一个真正的杀毒软件, 工作起来是更为复杂的。拿到一个文件不论三七二十一就开始查,不论从效率还是效果方面来说,都是不能接受的。要先对这个文件进行一定的预处理工作。因为对 于一个文件可能存在很多种情况,它可以包含多个文件,比如说压缩包,或者是邮件MIME编码过的文件等等,也可能是经过打包的可执行程序,在这些文件里面,可能还包涵其他的压缩包或者编码的复合文件。杀毒软件在对文件进行了预处理之后,才能更有效的对文件进行病毒扫描工作。大家不要认为预处理是不重要的,其实在杀毒软件中预处理是一件比较复杂也是非常重要的事情。一个好的预处理工作,可以使杀毒软件在面对经过了某些变化的病毒的时候游刃有余,大大增强一个杀毒软件的查毒数量和杀毒能力。预处理的工作类型那么,预处理到底都要做哪些事呢?大体来说来说,杀毒软件的预处理过程主要由两个阶段组成,第一阶段对文件格式进行识别,如果可以正常识别出文件格式, 我们就可以判断是否需要进行病毒扫描。判断完格式后进入第二个阶段,第二阶段根据第一阶段传过来的文件格式,选择相应的处理程序。例如,对于压缩包我们就 需要根据压缩包的格式进行解压操作,对于经过了加壳的文件,就调用脱壳的处理函数等等。对于加壳的概念,读者如果不明白没有关系,下期我们会详细的介绍。经过以上处理后,杀毒软件才会对处理后的内容扫描病毒。下面结合本次我们的代码来介绍以上的几个预处理步骤。由于预处理内容较多,篇幅所限,本次我们只 介绍文件格式识别部分和解压缩处理部分。同时为了使我们的杀毒引擎的工程更接近一个真正的工程,我们将工程结构进行了较大的重新整合,加入预处理的部分。 本次的升级改动较大,读者在看代码时就能感受到。代码的变化以前的所有的功 能都放在一个项目中,这样不便于多人的协同开发,当我们的引擎功能越来越复杂的时候,就会发现很难进行协作开发,同时也不便于维护。这次,我们将整个工程 变成了六个项目,日后,随着功能的扩展,我们还要不断往工程中增加新的项目,比如用于脱壳的项目,用于MIME编码处理的项目等等。ConsoleUI是实现了我们以前的代码中Bav.cpp文件实现的内容,用于接受输入、输出扫描结果。同时ConsoleUI还要起到调用引擎的作用。我们引擎的界面现在还是控制台界面,读者如果有兴趣可以自己增加图形界面(MFCUI 甚至QtUI)。VirusDB的代码大体上与我们的杀毒软件前两个版本类似。FileOperate项目是对文件操作的包装。可以把它看作是一个跨平台的文件操作包装类,与反病毒并没有直接关系,不过目前只实现了win32部 分。本工程所有的内部文件操作都是通过FileOperate来实现,这样可以保证我们的工程有很好的跨平台性。FileOperate是以 FileObject 类为基类进行继承或多层继承。现阶段内有关文件操作的共有4个类,分别为CFileObject,CPhyFileObject, MemFileObject和CTxtFileObject。其中CTxtFileObject 派生于CMemFileObject。CMemFileObject派生于CPhyFileObject, CPhyFileObject 派生于CFileObject。这次一 个比较大的变化就是区分了扫描对象(CScanObject)和文件对象(CFileObject),文件对象如上所述,是和反病毒没有直接关系的,而扫 描对象是和反病毒直接相关的。文件对象也不再从扫描对象派生,CFileObject 成为文件操作的基类。每个扫猫对象里面包含一个可以被扫描的文件对象,可以是物理文件对象(CPhyFileObject)或者是内存文件对象 (CMemFileObject)。和反病毒相关的操作,例如Compare()就封装在扫描对象中。在CEngine 类中,从现在开始,我们需要区分ScanOneFile()和ScanOneObject()。ScanOneFile()是比较原始的级别,用来预处理 通过文件遍历得到的单个文件,分析文件格式、解压缩。当预处理完成后,所有需要扫描的对象都被包装成了一个扫描对象(CScanObject)然后交给 ScanOneObject()进行真正的扫描工作。在ScanOneFile()中,我们用了一个堆栈来跟踪状态。每个栈顶的文件 被取出来分析文件格式,如果是可执行的,就进行查毒,如果是压缩的,就解压缩。解压缩出来的文件形成新的内存文件对象,压入堆栈,等待处理。解压工作目前 没有判断被解压的文件大小是否合适存放在内存中,这在将来需要改进,否则会被病
您可能关注的文档
- 日常生活中开发宝宝右脑的方法.doc
- 日常生活常用法语句子做客.doc
- 日常生活影响地板寿命的小细节.doc
- 日本人口老龄化对中国的启示.doc
- 日本儒学及其对日本文化与现代化的影响.doc
- 日本动漫对中国大学生价值观的影响调查问卷.doc
- 日本家庭教育价值取向的考察(张梅胡学亮).doc
- 日本对非物质文化遗产保护的启示.doc
- 日本患者的前列腺癌重离子治疗体验.doc
- 日本钢铁技术现状及二氧化碳减排发展.doc
- 高端豪华汽车品牌新品上市发布会目标用户社区运营策划全案【汽车】【社区运营】【KOC孵化】【全案策划】.pptx
- 机电安装工程施工承包合同书.pdf
- 沪教版九年级全册化学教案设计:8.2糖类 油脂.pdf
- 热工仪表及控制装置试验技能试卷(第144套).pdf
- 消防安全培训总结(通用5篇).pdf
- 有机磷农药中毒.pdf
- 2024年01月云南昆明富民县消防救援大队招考聘用合同制专职会计人员笔试笔试历年典型考题及考点研判与答案解析.docx
- 2024年01月南宁市良庆区那马镇人民政府2024年公开招考1名工作人员笔试笔试历年典型考题及考点研判与答案解析.docx
- 火车过桥问题的公式(附例题).pdf
- 案例综合课程一engineering.pdf
文档评论(0)