CN103136473B - 检测计算机病毒的方法和装置 - Google Patents
检测计算机病毒的方法和装置 Download PDFInfo
- Publication number
- CN103136473B CN103136473B CN201110388403.4A CN201110388403A CN103136473B CN 103136473 B CN103136473 B CN 103136473B CN 201110388403 A CN201110388403 A CN 201110388403A CN 103136473 B CN103136473 B CN 103136473B
- Authority
- CN
- China
- Prior art keywords
- instruction
- tested program
- machine code
- computer virus
- ratio
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明提供了一种检测计算机病毒的方法和装置,用以解决现有技术对于采用在病毒文件中添加无效的指令的方法得到的计算机病毒的防御效果不佳的问题。该方法包括:确定被测程序中的无效的指令在被测程序的指令的总量中所占的比例,其中指令以机器码表示;当上述比例大于预设值时判定被测程序中包含计算机病毒。采用本发明的技术方案,包含无效指令的病毒程序虽然有可能躲避特征码的检测,但仍然会被检测确认包含病毒,因此有助于提高对计算机病毒的防御效果。
Description
技术领域
本发明涉及计算机技术领域,特别地涉及一种检测计算机病毒的方法和装置。
背景技术
随着计算机技术的发展,计算机病毒也在日益影响着计算机用户的数据安全或使用体验。为此很多计算机安装了防毒软件(或称杀毒软件、防火墙等)以抵抗计算机病毒。目前防毒软件多采用特征码识别的方式来检测病毒,通过检测病毒的特征码来确认当前扫描的文件中包含病毒。因此一些计算机病毒的作者为了避免自己编写的病毒文件被防毒软件检测出来,通常会将一些无效的指令加入病毒文件以躲避杀毒软件的特征码检测,从而影响了防毒软件防御计算机病毒的效果。
现有技术中,对于采用在病毒文件中添加无效的指令的方法得到的计算机病毒的防御效果不佳,对于该问题,目前尚未提出有效解决方案。
发明内容
本发明的主要目的是提供一种检测文件的方法和装置,以解决现有技术对于采用病毒免杀的方法得到的计算机病毒的防御效果不佳的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种检测计算机病毒的方法。
本发明的检测计算机病毒的方法用于确定被测程序是否包含计算机病毒,包括:确定被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例,其中所述指令以机器码表示;当所述比例大于预设值时判定所述被测程序中包含计算机病毒。
进一步地,所述确定被测程序中的无效的指令在所述被测程序的指令总量中所占的比例之前,包括:用反编译的方法从所述被测程序的可执行文件中获取所述被测程序中的所有指令。
进一步地,所述确定被测程序中的无效的指令在所述被测程序的指令总量中所占的比例之前,包括:保存指令机器码表,所述指令机器码表的每一表项包含一条指令机器码和一个数值,当指令机器码为无效的指令的机器码时,该指令机器码所在表项中的所述数值为1,否则为0;所述确定被测程序中的无效的指令在所述被测程序的指令总量中所占的比例,包括:累加所述被测程序的所有指令的指令机器码所在表项中的数值,将该数值与所述被测程序的指令总数的比值作为所述比例。
根据本发明的另一方面,提供了一种检测文件的装置。
本发明的检测文件的装置用于确定被测程序是否包含计算机病毒,包括:确定模块,用于确定被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例,其中所述指令以机器码表示;判定模块,用于当所述比例大于预设值时判定所述被测程序中包含计算机病毒。
进一步地,还包括反编译模块,用于用反编译的方法从所述被测程序的可执行文件中获取所述被测程序中的所有指令。
进一步地,所述装置还包括指令机器码表模块,用于保存指令机器码表,所述指令机器码表的每一表项包含一条指令机器码和一个数值,当指令机器码为无效的指令的机器码时,该指令机器码所在表项中的所述数值为1,否则为0;所述确定模块还用于:累加所述被测程序的所有指令的指令机器码所在表项中的数值,将该数值与所述被测程序的指令总数的比值作为所述比例。
根据本发明的技术方案,确定被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例,当所述比例大于预设值时判定所述被测程序中包含计算机病毒,使计算机病毒的作者采用添加无效的指令的方式来避免特征码检测的手段失效,包含无效指令的病毒程序虽然有可能躲避特征码的检测,但仍然会被检测确认包含病毒,因此有助于提高对计算机病毒的防御效果。
附图说明
说明书附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的检测计算机病毒的方法的基本步骤的示意图;
图2是根据本发明实施例的检测计算机病毒的装置的基本结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例的检测计算机病毒的方法由防毒软件执行,可按图1所示步骤进行。图1是根据本发明实施例的检测计算机病毒的方法的基本步骤的示意图。如图1所示,本发明实施例的检测计算机病毒的方法主要包括如下步骤:
步骤S11:确定被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例。本步骤中,指令以机器码表示。
步骤S12:当所述比例大于预设值时判定被测程序中包含计算机病毒。
从上述步骤可以看出,本实施例中在被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例大于预设值时判定被测程序中包含计算机病毒,当病毒程序中包含无效指令达到一定量时被确定为包含计算机病毒,这就使得包含了无效指令以避免特征码检测的病毒程序仍然能够被检测确认包含病毒,有助于提高对计算机病毒的防御效果。
在步骤S11之前,可以用反编译的方法从所述被测程序的可执行文件中获取所述被测程序中的所有指令。并且本实施例中,具体可以先保存指令机器码表,该指令机器码表的每一表项包含一条指令机器码和一个数值,当指令机器码为无效的指令的机器码时,该指令机器码所在表项中的所述数值为1,否则为0;这样,在步骤S11中,具体可以是累加被测程序的所有指令的指令机器码所在表项中的数值,将该数值与被测程序的指令总数的比值作为被测程序中的无效的指令在所述被测程序的指令总量中所占的比例。
以下对于本实施例中的检测计算机病毒的装置做出说明。图2是根据本发明实施例的检测计算机病毒的装置的基本结构示意图。
如图2所示,本发明实施例中的检测计算机病毒的装置20主要包括如下模块:确定模块21,用于确定被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例,其中所述指令以机器码表示;判定模块22,用于当所述比例大于预设值时判定所述被测程序中包含计算机病毒。
本发明实施例中的检测计算机病毒的装置20还可包括反编译模块(图中未示出),用于用反编译的方法从所述被测程序的可执行文件中获取所述被测程序中的所有指令。
本发明实施例中的检测计算机病毒的装置20还可包括指令机器码表模块(图中未示出),用于保存指令机器码表,该指令机器码表的每一表项包含一条指令机器码和一个数值,当指令机器码为无效的指令的机器码时,该指令机器码所在表项中的所述数值为1,否则为0;这样,确定模块还可用于:累加被测程序的所有指令的指令机器码所在表项中的数值,将该数值与被测程序的指令总数的比值作为被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例。
根据本发明实施例的技术方案,确定被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例,当所述比例大于预设值时判定所述被测程序中包含计算机病毒,使计算机病毒的作者采用添加无效的指令的方式来避免特征码检测的手段失效,包含无效指令的病毒程序虽然有可能躲避特征码的检测,但仍然会被检测确认包含病毒,因此有助于提高对计算机病毒的防御效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种检测计算机病毒的方法,用于确定被测程序是否包含计算机病毒,其特征在于,所述方法包括:
保存指令机器码表,所述指令机器码表的每一表项包含一条指令机器码和一个数值,当指令机器码为无效的指令的机器码时,该指令机器码所在表项中的所述数值为1,否则为0;
确定被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例,其中所述指令以机器码表示;
当所述比例大于预设值时判定所述被测程序中包含计算机病毒。
2.根据权利要求1所述的方法,其特征在于,所述确定被测程序中的无效的指令在所述被测程序的指令总量中所占的比例之前,包括:用反编译的方法从所述被测程序的可执行文件中获取所述被测程序中的所有指令。
3.根据权利要求1或2所述的方法,其特征在于,
所述确定被测程序中的无效的指令在所述被测程序的指令总量中所占的比例,包括:
累加所述被测程序的所有指令的指令机器码所在表项中的数值,将该数值与所述被测程序的指令总数的比值作为所述比例。
4.一种检测计算机病毒的装置,用于确定被测程序是否包含计算机病毒,其特征在于,所述装置包括:
指令机器码表模块,用于保存指令机器码表,所述指令机器码表的每一表项包含一条指令机器码和一个数值,当指令机器码为无效的指令的机器码时,该指令机器码所在表项中的所述数值为1,否则为0;
确定模块,用于确定被测程序中的无效的指令在所述被测程序的指令的总量中所占的比例,其中所述指令以机器码表示;
判定模块,用于当所述比例大于预设值时判定所述被测程序中包含计算机病毒。
5.根据权利要求4所述的装置,其特征在于,还包括反编译模块,用于用反编译的方法从所述被测程序的可执行文件中获取所述被测程序中的所有指令。
6.根据权利要求4或5所述的装置,其特征在于,
所述确定模块还用于:累加所述被测程序的所有指令的指令机器码所在表项中的数值,将该数值与所述被测程序的指令总数的比值作为所述比例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110388403.4A CN103136473B (zh) | 2011-11-29 | 2011-11-29 | 检测计算机病毒的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110388403.4A CN103136473B (zh) | 2011-11-29 | 2011-11-29 | 检测计算机病毒的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136473A CN103136473A (zh) | 2013-06-05 |
CN103136473B true CN103136473B (zh) | 2017-07-04 |
Family
ID=48496290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110388403.4A Active CN103136473B (zh) | 2011-11-29 | 2011-11-29 | 检测计算机病毒的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136473B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104253786B (zh) * | 2013-06-26 | 2017-07-07 | 北京思普崚技术有限公司 | 一种基于正则表达式的深度包检测方法 |
CN104077528A (zh) * | 2014-06-25 | 2014-10-01 | 珠海市君天电子科技有限公司 | 病毒检测方法、装置以及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329711A (zh) * | 2008-07-24 | 2008-12-24 | 成都市华为赛门铁克科技有限公司 | 一种计算机文件检测的方法及装置 |
CN101404658A (zh) * | 2008-10-31 | 2009-04-08 | 北京锐安科技有限公司 | 一种检测僵尸网络的方法及其系统 |
CN101414914A (zh) * | 2008-11-26 | 2009-04-22 | 北京星网锐捷网络技术有限公司 | 数据内容过滤方法与装置、有限状态自动机及其构造装置 |
CN102043915A (zh) * | 2010-11-03 | 2011-05-04 | 厦门市美亚柏科信息股份有限公司 | 一种非可执行文件中包含恶意代码的检测方法及其装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713681B2 (en) * | 2009-10-27 | 2014-04-29 | Mandiant, Llc | System and method for detecting executable machine instructions in a data stream |
-
2011
- 2011-11-29 CN CN201110388403.4A patent/CN103136473B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329711A (zh) * | 2008-07-24 | 2008-12-24 | 成都市华为赛门铁克科技有限公司 | 一种计算机文件检测的方法及装置 |
CN101404658A (zh) * | 2008-10-31 | 2009-04-08 | 北京锐安科技有限公司 | 一种检测僵尸网络的方法及其系统 |
CN101414914A (zh) * | 2008-11-26 | 2009-04-22 | 北京星网锐捷网络技术有限公司 | 数据内容过滤方法与装置、有限状态自动机及其构造装置 |
CN102043915A (zh) * | 2010-11-03 | 2011-05-04 | 厦门市美亚柏科信息股份有限公司 | 一种非可执行文件中包含恶意代码的检测方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103136473A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10846402B2 (en) | Security scanning method and apparatus for mini program, and electronic device | |
CN103020520B (zh) | 一种基于企业的文件安全检测方法和系统 | |
CN105068932B (zh) | 一种Android应用程序加壳的检测方法 | |
US9135443B2 (en) | Identifying malicious threads | |
EP2513836B1 (en) | Obfuscated malware detection | |
US8863282B2 (en) | Detecting and responding to malware using link files | |
US11687651B2 (en) | Cloud-based malware detection | |
EP2999188A1 (en) | Method, server, and client for securely accessing web application | |
CN103679032B (zh) | 防御恶意软件的方法和装置 | |
CN106295337A (zh) | 用于检测恶意漏洞文件的方法、装置及终端 | |
GB2554390A (en) | Computer security profiling | |
CN110837644B (zh) | 一种系统渗透测试方法、装置及终端设备 | |
CN104809391B (zh) | 缓冲区溢出攻击检测装置、方法和安全防护系统 | |
US9223974B2 (en) | Anti-viral compiler | |
CN102012988A (zh) | 自动二进制恶意代码行为分析方法 | |
CN106599688A (zh) | 一种基于应用类别的安卓恶意软件检测方法 | |
CN103136473B (zh) | 检测计算机病毒的方法和装置 | |
CN107479874A (zh) | 一种基于Windows平台的DLL注入方法及系统 | |
US8539598B2 (en) | Detection of customizations of application elements | |
CN107066886A (zh) | 一种Android加固脱壳的检测方法 | |
CN103136475B (zh) | 一种检查计算机病毒的方法和装置 | |
Niu et al. | Clone analysis and detection in android applications | |
CN106529290B (zh) | 一种恶意软件防护方法、装置以及电子设备 | |
CN109067716A (zh) | 一种识别暗链的方法与系统 | |
CN114386779A (zh) | 网络安全状态评估方法、系统、计算机及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |