软件保护壳的壳特征提取方法技术

技术编号:6540728 阅读:592 留言:0更新日期:2012-04-11 18:40
该发明专利技术属于网络安全技术领域中针对恶意软件软件保护壳的壳特征提取方法;包括对有壳保护的软件初始化处理,断点位置参数的提取,原始入口点参数的预提取,输入表数据的获得及原始入口点参数的验证,壳特征输出。该发明专利技术首先提取用于获取输入表的断点位置参数,再针对原始入口点参数进行预提取、进而获得原始入口点参数,最后将所得壳名称、壳版本及其原始入口点参数和断点位置参数一并作为相应软件壳的特征输出。该发明专利技术可有效地对各类恶意软件保护壳的壳特征进行提取,为此后对恶意软件保护壳进行自动脱壳处理,清除恶意软件的保护屏障,为计算机的正常运行、社会正常的经济活动、通讯,甚至国家的安全保障提供有效的基础条件等特点。

【技术实现步骤摘要】

本专利技术属于网络安全
,特别是一种针对。 采用本专利技术方法可针对设有保护壳的恶意软件的壳特征参数进行壳的提取,所提取出的特征参数可用于对恶意软件进行脱壳处理、以还原恶意软件在壳保护之前的可执行状态。
技术介绍
壳是一种对计算机软件进行保护的常用手段。十几年来,各式各样的软件保护壳 (程序)的出现对计算机正常软件的保护起到重要作用;但软件保护壳是一把双刃剑,既可用于保护正常软件、也可用于保护恶意软件。恶意软件通过保护壳把恶意程序(代码)伪装成正常程序,当用户运行此类程序时、在不知不觉中就执行了恶意程序,这些恶意程序的行为通常是窃取数据、破坏数据、发送垃圾邮件、运行其他恶意代码指定的程序等等,轻则干扰正常程序的运行、重则造成恶性事故。利用各种保护壳,恶意程序还可以躲过传统的特征杀毒,并且给恶意程序的分析和检测带来了诸多困难。要分析恶意程序的特点、进而编制检测方法,首先就必须对其进行脱壳处理;而要进行脱壳处理,其首要前提是找准所采用保护壳的特征。因此,对壳特征的提取具有重要意义。由于软件壳技术的理论研究尚不完善, 因此还没有专门的壳特征分析工具,这就为恶意程序在各类保护壳的掩护下运行提供了条件,从而给计算机的正常运行、给社会正常的经济活动、通讯,甚至国家的安全造成严重威胁。
技术实现思路
本专利技术的目的是针对各类可用于对恶意软件进行保护的软件壳,研究设计一种,以通过对加壳保护的恶意软件的壳特征进行多层次综合处理,达到有效地提取各类保护壳的壳特征,为此后利用所获取的壳特征对恶意软件的保护壳进行自动脱壳处理,还原被保护软件在保护前的可执行状况,为后续对恶意软件的分析处理清除其保护屏障等目的。本专利技术的解决方案是根据带壳保护的软件、其保护壳需要比被保护的软件更早获得运行的控制权;而为了达到这一目的,在对软件进行加壳时、壳首先要修改原(被保护) 软件执行的顺序,但又不能影响原软件的运行。为此,在进行加壳处理时就必须取得并修改原(被保护)软件的相关参数,包括被保护软件的原始入口点和输入表(或称导入表,以下一致性称输入表),在壳运行时对其进行还原。而软件壳的最基本、也是最重要的功能就是对软件输入表的处理。软件输入表的作用是让操作系统在程序运行时提供API (应用程序接口)的实际地址给程序使用;在加壳处理时修改原程序文件的输入表以及软件的原始入口点(OEP);在运行时先运行壳,把原来的(被保护)软件在内存中还原,再跳转到该软件的原始入口点(OEP),所以,软件保护壳的关键特征就是原始入口点参数(数据)、输入表参数(数据)。但是输入表是一种与被保护软件相关的参数(数据),不同的被保护软件有不同的输入表参数(数据),对此本专利技术采用从断点位置进行查找被修改前的输入表参数(数据)、作为软件保护壳的特征之一。因此,根据以上所述软件壳的构建(造)特征,本专利技术将包括软件壳名称、壳版本、 断点位置参数、原始入口点参数作为软件壳的典型特征;其中用于寻找输入表中的断点位置参数和原始入口点参数是(软件)壳最基本的(特征)参数,而壳名称和壳版本则作为断点位置参数和原始入口点参数的标记;因此,对壳特征的提取过程是先提取用于获取输入表的断点位置参数,并通过反复调试比对、对断点位置参数进行验证,然后再针对原始入口点参数进行预提取、并通过内存转储和PE结构利用预提取的初选参数对加壳软件进行修复、验证,以获得原始入口点参数;最后将壳名称、壳版本及所得原始入口点参数和断点位置参数一并输出,即为相应软件壳的壳特征。本专利技术即以此实现其专利技术目的。因此,本专利技术的方法包括步骤1.初始化处理将有壳保护的软件录入系统内存,并对壳类型、壳版本命名并记录,待用;步骤2.断点位置参数的提取对步骤1录入的有壳保护的软件找出所有系统调用;对每种系统调用,分别进行初步判断是壳初始化时所用、还是壳处理输入表时所用;并对壳初始化时所用系统调用作丢弃处理,而对壳处理输入表时所用系统调用、则再通过反复比对调试,以最终确认壳处理输入表时所用的系统调用,然后将经确认的各系统调用在调用前的位置作为壳特征中的断点位置参数记录后、供步骤5用;当对所有系统调用处理完后转步骤4 ;步骤3.入口点参数的预提取对步骤1录入的有壳保护的软件的原始入口点参数进行预提取、以获得入口点的初选参数;入口点初选参数是采用入口点参数分析方法从有壳保护的软件中获取,取得入口点初选参数后、转步骤4 ;步骤4.输入表数据的获得及原始入口点参数的验证对从步骤2得到的所有断点位置参数进行调试,通过断点回调函数获得输入表中所有参数并记录;同时使用输入表中所有参数和从步骤3得到的入口点初选参数,通过内存转储和PE结构修复,并确认入口点初选参数是否为原始入口点参数;确认的过程为如果修复后的软件能够正常运行、则入口点初选参数的确为原始入口点数据,然后转步骤5;如果不能正常运行、则丢弃,并返回步骤3重新对原始入口点参数进行预提取;步骤5.壳特征输出将步骤2获得并记录的断点位置参数,以及步骤4获得的原始入口点参数,连同经步骤1命名的壳类型及壳版本名称一并作为本专利技术方法所得(软件保护壳的)壳特征参数输出。上述入口点参数分析方法为采用跨段指令、堆栈平衡原理、编译语言特点以及内存断点法中的一种或几种方法综合进行。而所述壳特征参数包括壳名称、壳版本及其原始入口点参数和断点位置参数。本专利技术将包括壳名称、壳版本、断点位置参数、原始入口点参数作为软件壳的典型特征;先提取用于获取输入表的断点位置参数,并通过反复调试比对、对断点位置参数进行验证,然后再针对原始入口点参数进行预提取、并通过内存转储和PE结构利用预提取的初选参数对加壳软件进行修复、验证,以获得原始入口点参数;最后将所得壳名称、壳版本及其原始入口点参数和断点位置参数一并输出,即为提取出的相应软件壳的特征。采用本专利技术方法可有效地提取各类保护壳的壳特征,为此后利用所获取的壳特征对恶意软件的保护壳进行自动脱壳处理,还原被保护软件在保护前的可执行状况,以便对恶意软件进行分析处理、清除其保护屏障,为计算机的正常运行、社会正常的经济活动、通讯,甚至国家的安全保障提供有效的基础条件等特点。具体实施例方式实施例1 以对名称为Notepadl. exe的加壳软件的壳特征提取为例步骤1.初始化将Notepadl. exe录入系统内存,将该加壳软件的壳类型命名并记录为BeroExePacker,壳版本命名并记录为1.0,存储待用;步骤2.断点位置参数的提取找出Notepadl. exe的所有系统调用;对每种系统调用,判断是壳初始化时所用,还是壳处理输入表时所用;如果判断系统调用是壳初始化时所用,就丢弃;如果判断系统调用是壳处理输入表时所用,再通过反复比对调试,确认壳处理输入表时所用的系统调用,并记录下系统调用前的位置作为壳特征中的断点位置,供步骤5使用;对所有系统调用处理完后转步骤4 ;得到的断点位置参数是断点1 :525750FF15 5F5A,断点2 :5152575051FF15 5F5A59,断点3 :61C361E9 ;步骤3.入口点参数的预提取对步骤1录入的Notepadl. exe软件的原始入口点参数进行预提取、获得入口点的初选参数;本实施例入口点初选参数采用堆栈平衡原理和编译语言特点法综合(本文档来自技高网...

【技术保护点】
1.一种软件保护壳的壳特征提取方法,包括:步骤1.初始化处理:将有壳保护的软件录入系统内存,并对壳类型、壳版本命名并记录,待用;步骤2.断点位置参数的提取:对步骤1录入的有壳保护的软件找出所有系统调用;对每种系统调用,分别进行初步判断是壳初始化时所用、还是壳处理输入表时所用;并对壳初始化时所用系统调用作丢弃处理,而对壳处理输入表时所用系统调用、则再通过反复比对调试,以最终确认壳处理输入表时所用的系统调用,然后将经确认的各系统调用在调用前的位置作为壳特征中的断点位置参数记录后、供步骤5用;当对所有系统调用处理完后转步骤4;步骤3.入口点参数的预提取:对步骤1录入的有壳保护的软件的原始入口点参数进行预提取、以获得入口点的初选参数;入口点初选参数是采用入口点参数分析方法从有壳保护的软件中获取,取得入口点初选参数后、转步骤4;步骤4.输入表数据的获得及原始入口点参数的验证:对从步骤2得到的所有断点位置参数进行调试,通过断点回调函数获得输入表中所有参数并记录;同时使用输入表中所有参数和从步骤3得到的入口点初选参数,通过内存转储和PE结构修复,并确认入口点初选参数是否为原始入口点参数;确认的过程为:如果修复后的软件能够正常运行、则入口点初选参数的确为原始入口点数据,然后转步骤5;如果不能正常运行、则丢弃,并返回步骤3重新对原始入口点参数进行预提取;步骤5.壳特征输出:将步骤2获得并记录的断点位置参数,以及步骤4获得的原始入口点参数,连同经步骤1命名的壳类型及壳版本名称一并作为本专利技术方法所得壳特征参数输出。...

【技术特征摘要】
1.一种软件保护壳的壳特征提取方法,包括步骤1.初始化处理将有壳保护的软件录入系统内存,并对壳类型、壳版本命名并记录,待用;步骤2.断点位置参数的提取对步骤1录入的有壳保护的软件找出所有系统调用;对每种系统调用,分别进行初步判断是壳初始化时所用、还是壳处理输入表时所用;并对壳初始化时所用系统调用作丢弃处理,而对壳处理输入表时所用系统调用、则再通过反复比对调试,以最终确认壳处理输入表时所用的系统调用,然后将经确认的各系统调用在调用前的位置作为壳特征中的断点位置参数记录后、供步骤5用;当对所有系统调用处理完后转步骤4 ;步骤3.入口点参数的预提取对步骤1录入的有壳保护的软件的原始入口点参数进行预提取、以获得入口点的初选参数;入口点初选参数是采用入口点参数分析方法从有壳保护的软件中获取,取得入口点初选参数后、转步骤4 ;步骤4.输入表数据的获得及原始入口点参数的验证对从步骤2得到的所有断点位置...

【专利技术属性】
技术研发人员:范明钰王光卫潘泓
申请(专利权)人:电子科技大学
类型:发明
国别省市:90

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1