【技术实现步骤摘要】
用于恶意软件检测的对应用的通用拆包本申请是PCT国际申请号为PCT/US2014/019960、国际申请日为2014年3月3日、进入中国国家阶段的申请号为201480008695.6,题为“用于恶意软件检测的对应用的通用拆包”的专利技术专利申请的分案申请。
本公开一般涉及用于拆包可执行二进制文件以使较少地依赖多个签名(例如,针对每一个打包方法的一个签名)来标识潜在的恶意软件被保持在病毒签名DAT文件中的系统和方法。更具体而言,但不作为限制,本公开涉及:在对经打包的可执行文件进行拆包时使用硬件辅助的虚拟化来确定其原始的入口点,并且在执行该原始的入口点之前,一旦可执行文件到达其完全扩展的形式就执行对其的正式扫描。
技术介绍
当代的应用代码的递送通常涉及其通过打包(pack)过程进行的压缩。通过使用打包过程,二进制文件尺寸可以减小,并且多个文件可以被合并成一个文件。现代的打包过程创建“自解压(self-extracting)可执行文件”,可执行其来对经打包的代码的内容进行拆包(unpack)。也就是说,经打包的代码本身伴随着可执行代码段,当执行该可执行代码段时,其导致使经打包的代码膨胀或解压缩。相应地,运行自解压可执行文件会导致经打包的代码可执行文件被扩展在磁盘上、存储器中,或两者中。当对文件打包以创建自解压可执行文件时,可以采用许多不同类型的压缩算法以及打包技术。这些技术中的某些是已知的并有文档记载的,而其他技术不是这样。对相同文件采用不同的技术来创建自解压可执行文件将产生不同的文件——由于不同的打包器(packer)以及不同的压缩算法所产生的不同结果,打包代 ...
【技术保护点】
1.一种非瞬态计算机可读介质,其上存储用于对自解压可执行文件进行拆包的软件,所述软件包括当被执行时使一个或多个处理单元执行以下操作的指令:将自解压可执行文件加载到存储器中,所述自解压可执行文件包括第一拆包存根和经打包的可执行文件;允许所述第一拆包存根将所述经打包的可执行文件拆包为经拆包的可执行文件;通过使用硬件辅助的虚拟化控制存储器页面访问许可来检测向先前被执行的代码所在的存储器页面的写入的尝试;使用一个或多个试探法来检测由所述第一拆包存根进行的对所述经打包的可执行文件的拆包的完成;以及对所述经拆包的可执行文件扫描恶意软件,其中,所述一个或多个试探法包括:用于判断生成页面写入异常的向存储器页面的写入是否是向存储器页面的区段的最后一页的写入的试探法。
【技术特征摘要】
2013.03.15 US 13/838,6631.一种非瞬态计算机可读介质,其上存储用于对自解压可执行文件进行拆包的软件,所述软件包括当被执行时使一个或多个处理单元执行以下操作的指令:将自解压可执行文件加载到存储器中,所述自解压可执行文件包括第一拆包存根和经打包的可执行文件;允许所述第一拆包存根将所述经打包的可执行文件拆包为经拆包的可执行文件;通过使用硬件辅助的虚拟化控制存储器页面访问许可来检测向先前被执行的代码所在的存储器页面的写入的尝试;使用一个或多个试探法来检测由所述第一拆包存根进行的对所述经打包的可执行文件的拆包的完成;以及对所述经拆包的可执行文件扫描恶意软件,其中,所述一个或多个试探法包括:用于判断生成页面写入异常的向存储器页面的写入是否是向存储器页面的区段的最后一页的写入的试探法。2.如权利要求1所述的非瞬态计算机可读介质其中,所述经打包的可执行文件是包括一个或多个中间自解压可执行文件的经迭代打包的可执行文件,其中,所述指令使一个或多个处理单元允许所述第一拆包存根对所述经打包的可执行文件拆包包括所述指令使一个或多个处理单元:允许所述第一拆包存根将所述经打包的可执行文件拆包为所述一个或多个中间自解压可执行文件中的一个;以及允许所述一个或多个中间自解压可执行文件中的所述一个相继地拆包,直到最终拆包存根将最终经打包的可执行文件拆包为最终经拆包的可执行文件为止,其中,所述指令使一个或多个处理单元对所述经拆包的可执行文件扫描恶意软件包括:所述指令使一个或多个处理单元对所述最终经拆包的可执行文件扫描恶意软件。3.如权利要求2所述的非瞬态计算机可读介质,其中,所述指令使一个或多个处理单元对所述经拆包的可执行文件扫描恶意软件进一步包括:所述指令使一个或多个处理单元对所述一个或多个中间自解压可执行文件中的至少一个扫描恶意软件。4.如权利要求2所述的非瞬态计算机可读介质,其中,如果检测到恶意软件,则所述最终经拆包的可执行文件不被允许执行。5.如权利要求1-4中的任一项所述的非瞬态计算机可读介质,其特征在于,所述指令使一个或多个处理单元允许所述第一拆包存根对所述经打包的可执行文件拆包包括:所述指令使一个或多个处理单元使用硬件辅助的虚拟化来控制存储器页面访问许可以检测执行先前由所述第一拆包存根写入到存储器页面中的代码的尝试。6.如权利要求5所述的非瞬态计算机可读介质,其特征在于,所述指令使一个或多个处理单元允许所述第一拆包存根对所述经打包的可执行文件拆包进一步包括所述指令使一个或多个处理单元:在检测到所述尝试之后,使用硬件辅助的虚拟化来暂停所述第一拆包存根的执行;当所述第一拆包存根的执行被暂停时,收集试探法统计信息;基于所述试探法统计信息来判断是否应当扫描存储器;基于所述判断来扫描存储器;以及允许所述第一拆包存根的执行继续。7.如权利要求1-4中的任一项所述的非瞬态计算机可读介质,其特征在于,所述指令使一个或多个处理单元允许所述第一拆包存根对所述经打包的可执行文件拆包包括:所述指令使一个或多个处理单元使用硬件辅助的虚拟化来控制存储器页面访问许可以检测所述自解压可执行文件的入口点的执行。8.如权利要求1-4中的任一项所述的非瞬态计算机可读介质,其特征在于,所述一个或多个试探法进一步包括:判断执行代码的尝试是否是在写入包括所述存储器页面的代码段的全部页面之后执行来自所述代码段的代码的第一次尝试。9.如权利要求8所述的非瞬态计算机可读介质,其特征在于,所述指令使一个或多个处理单元允许所述第一拆包存根对所述经打包的可执行文件拆包进一步包括所述指令使一个或多个处理单元:在检测到所述写入之后,使用硬件辅助的虚拟化来暂停所述第一拆包存根的执行;当所述第一拆包存根的执行被暂停时,收集试探法统计信息;基于所述试探法统计信息来判断是否应当扫描存储器;基于所述判断来扫描存储器;以及允许所述第一拆包存根的执行继续。10.如权利要求1-4中的任何一项所述的非瞬态计算机可读介质,其特征在于,在所述经拆包的可执行文件的执行之前执行扫描所述经拆包的可执行文件。11.如权利要求1-4中的任何一项所述的非瞬态计算机可读介质,其特征在于,所述经打包的可执行文件是使用未知的或不可检测的打包算法来打包的。12.如权利要求1-4中的任何一项所述的非瞬态计算机可读介质,其特征在于,所述一个或多个试探法包括:用于将在检测到所述第一拆包存根的完成之前记录的栈指针值和栈内容与在允许所述第一拆包存根开始对所述经打包的可执行文件拆包之前记录的栈指针值和栈内容进行比较的试探法。13.如权利要求1-4中的任何一项所述的非瞬态计算机可读介质,其特征在于,所述指令使一个或多个处理单元允许所述第一拆包存根对所述经打包的可执行文件拆包包括:所述指令使一个或多个处理单元在允许所述第一拆包存根将所述经打包的可执行文件拆包为经拆包的可执行文件的同时控制所述第一拆包存根的执行。14.一种对自解压可执行文件拆包以检测恶...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。