System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及病毒检测,特别是涉及一种被crytex感染型病毒感染文件的检测及清除方法及系统。
技术介绍
1、感染型病毒,是一种古老的电脑病毒,它能够将自身代码插入到正常程序中,并随着宿主程序的启动而运行。而一旦用户将被感染的程序通过u盘,光盘,网络等多种方式分享给其他用户,那么就会造成感染爆发。
2、由于感染型病毒具备对正常可执行文件的感染能力,所以一旦计算机被感染,那么此计算机中成千上万的可执行程序都会被感染。传统的“对病毒文件提特征,扫描删除文件”这种处理方式不适用于感染型病毒,第一个原因是需要提取特征的文件过多,每一种感染型病毒所能感染生成的被感染文件理论上是无限的,取决于正常文件的数量,第二个原因是删除被感染文件会导致系统或软件直接崩溃。
3、由此可见,上述现有的病毒检测方法在使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。如何能创设一种新的病毒检测方法,成为当前业界急需改进的目标。
技术实现思路
1、有鉴于此,本公开实施例提供一种被crytex感染型病毒感染文件的检测及清除方法,至少部分解决现有技术中存在的问题。
2、第一方面,本公开实施例提供了一种被crytex感染型病毒感染文件的检测及清除方法,所述方法包括以下步骤:
3、遍历计算机全部磁盘文件,寻找可执行文件进行检测;
4、检测所述可执行文件入口点数据是否被感染;其中,
5、当所述可执行文件被感染时,则对感染文件进行清除操作。
7、获取所述可执行文件偏移0处的2个字节,判断是否为0x4d 0x5a;其中,当为0x4d0x5a时,读取文件偏移为ntfo处的0x8f个字节,设ntfo处的0x8f个字节的首地址为buf1;当不为0x4d 0x5a时,直接结束;其中,ntfo为可执行文件偏移0x3c处的4字节值;
8、判断buf1开始的2个字节是否为0x450x50;其中,当为0x450x50时,设buf1+0x28开始的4个字节数据为oeprva,将oeprva从rva转换为fo后,得到oepfo;当不为0x450x50时,直接结束;其中,rva为相对虚拟地址;fo为文件偏移地址;
9、读取所述可执行文件偏移oepfo处的0x56个字节,计算crc32,init为0xffffffff,结果不取反;
10、判断crc32是否等于0xd906817b;其中,当等于时,判断所述可执行文件入口点数据被感染;当不等于时,直接结束。
11、根据本公开实施例的一种具体实现方式,所述将oeprva从rva转换为fo,包括以下步骤:
12、步骤1:输入rva,从sectiontablefo读取numofsections*0x28字节大小的数据,设为sectionheaderdata,设置i=0;其中,可执行文件偏移ntfo+0x14处的2字节值为sizeofoptionalheader;偏移ntfo+0x6处的2字节值为numofsections,记ntfo+0x18+sizeofoptionalheader的值为sectiontablefo;
13、步骤2:取sectionheaderdata+i*0x28+0xc处的4字节数据为secstartrva;取sectionheaderdata+i*0x28+0x10处的4字节数据为secrawsize;取sectionheaderdata+i*0x28+0x14处的4字节数据为secfo;
14、步骤3:判断rva是否满足大于等于secstartrva且小于
15、secstartrva+secrawsize;其中,当满足时,输出fo=rva-secstartrva+secfo;
16、当不满足时,i自增1,并判断i是否满足小于numofsections;其中,当不满足时,输出0;
17、当满足时,进入步骤2。
18、根据本公开实施例的一种具体实现方式,所述当所述可执行文件被感染时,则对感染文件进行清除操作,包括:
19、步骤1:读取oepfo处开始的0x50a个字节,首地址设为data;
20、步骤2:读取data+0x56处的4个字节作为解密key1;设i2=0;
21、步骤3:按顺序执行key1=(0x10dcd*key1+0x116c5)%0x7fffffff;对(data+0x5a+i2*4)处的4个字节,作为双字与key1异或解密;i2自增1;
22、步骤4:判断i2是否大于0x12c;其中,当不大于时,进入步骤3;当大于时,进入步骤5;
23、步骤5:读取data+0x3d2处的4个字节,记为oldoepva;
24、步骤6:读取ntfo开始的0xf8个字节,首字节地址设为ntdata;读取sectiontablefo+(numofsections-1)*0x28处的0x28个字节,首地址设为lastsecdata;
25、步骤7:将ntdata+0x28处的4字节值改为oldoepva减去(ntdata+0x34)处的4字节值;将ntdata+4c处的4字节值改为0;将ntdata+0x50处的4字节值减少0xb00字节;将lastsecdata+0x8处的4字节值减少0xb00字节;将lastsecdata+0x10处的4字节值减少0x600字节;将更新后的ntdata写入到文件偏移ntfo处;将更新后的lastsecdata写入到文件偏移
26、sectiontablefo+(numofsections-1)*0x28处;
27、步骤8:截断文件尾部病毒数据,设置新文件大小为lastsecdata+0x10处的4字节数据加上lastsecdata+0x14处的4字节数据;
28、步骤9:清除结束。
29、根据本公开实施例的一种具体实现方式,以小尾方式读取字节值。
30、第二方面,本公开实施例提供了一种被crytex感染型病毒感染文件的检测及清除系统,所述系统包括:
31、文件遍历模块,被配置用于遍历计算机全部磁盘文件,寻找可执行文件进行检测;
32、检测模块,被配置用于检测所述可执行文件入口点数据是否被感染;其中,
33、清除模块,被配置用于当所述可执行文件被感染时,则对感染文件进行清除操作。
34、根据本公开实施例的一种具体实现方式,所述系统还包括:
35、清除执行模块,被配置用于执行以下操作:
36、步骤1:读取oepfo处开始的0x50a个字节,首地址设为data;
37、步骤2:读取data+0x56处的4个字节作为解密key1;设i2=0;
本文档来自技高网...【技术保护点】
1.一种被Crytex感染型病毒感染文件的检测及清除方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的被Crytex感染型病毒感染文件的检测及清除方法,其特征在于,所述检测所述可执行文件入口点数据是否被感染,包括:
3.根据权利要求2所述的被Crytex感染型病毒感染文件的检测及清除方法,其特征在于,所述将oeprva从rva转换为fo,包括以下步骤:
4.根据权利要求1所述的被Crytex感染型病毒感染文件的检测及清除方法,其特征在于,所述当所述可执行文件被感染时,则对感染文件进行清除操作,包括:
5.根据权利要求1至4中任意一项所述的被Crytex感染型病毒感染文件的检测及清除方法,其特征在于,以小尾方式读取字节值。
6.一种被Crytex感染型病毒感染文件的检测及清除系统,其特征在于,所述系统包括:
7.根据权利要求6所述的被Crytex感染型病毒感染文件的检测及清除系统,其特征在于,所述系统还包括:
8.一种电子设备,其特征在于,该电子设备包括:
9.一种非暂态
...【技术特征摘要】
1.一种被crytex感染型病毒感染文件的检测及清除方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的被crytex感染型病毒感染文件的检测及清除方法,其特征在于,所述检测所述可执行文件入口点数据是否被感染,包括:
3.根据权利要求2所述的被crytex感染型病毒感染文件的检测及清除方法,其特征在于,所述将oeprva从rva转换为fo,包括以下步骤:
4.根据权利要求1所述的被crytex感染型病毒感染文件的检测及清除方法,其特征在于,所述当所述可执行文件被感染时,则对感染文件进行清除操作,包括:
5.根据权利要求1至4中任意一项所述的...
【专利技术属性】
技术研发人员:郭昌盛,包仕进,李华生,王磊,邵佳,姜昱西,
申请(专利权)人:北京江民新科技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。