一种执行文件自校验方法及装置的制作方法

文档序号:6373972阅读:324来源:国知局
专利名称:一种执行文件自校验方法及装置的制作方法
技术领域
本发明涉及软件保护技术领域,更具体地说,涉及一种执行文件自校验方法及装置。
背景技术
为了防止软件的非法复制、盗版及攻击,保护软件开发商的利益,就必须对软件进行你加密保护。而软件防病毒、防攻击及防修改一直是计算机安全领域的一个重要课题,在众多的软件保护技术中,软件加壳技术是软件保护的重要手段,软件加壳技术是指通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(包括压缩、加密可执行程序文件),以达到加密可执行文件的目的。当被加壳的文件运行时,外壳程序先被运 行,然后由这个外壳程序将原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序,这个过程完全隐蔽,在内存中自动完成,用户不知道其具体运行过程。但是,目前软件加壳技术往往是为了保护执行文件防止被攻击或改动,或将执行文件进行压缩以方便使用,并不具有自我校验功能,当运行该软件时,无法判断所运行的执行文件是否已经被病毒攻击或被篡改。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述技术问题,提供一种执行文件自校验方法及装置,使执行文件在运行之前,自动判断是否被攻击或篡改。本发明解决其技术问题所采用的技术方案如下所述。本发明所述的执行文件自校验方法中,包括设置执行文件与自校验,其中,设置执行文件包括SI)在编写执行程序代码时,在Main函数前,加入预设的自校验函数,并将此执行程序代码编译生成执行文件;S2)对上述执行文件进行外壳加密,将外壳加密数据添加在所述执行文件尾部;自校验包括S3)运行执行文件时,先调用预设的自校验函数,利用上述外壳加密数据判断该执行文件是否为原始的执行文件,是,程序继续运行;否,程序则结束运行。其中,步骤S2)中外壳加密过程包括Al)对特征值进行加密,将特征值加密数据添加在所述执行文件尾部,其中所述特征值预先设置并编写入所述执行文件内部;所述特征值包括软件开发商名称、执行文件名称及版本号;A2)利用MD5加密所述执行程序的全部内容及所述特征值,将MD5加密数据添加在所述特征值加密数据后,所述MD5加密数据大小为16字节。因此,所述外壳加密数据包括特征值加密数据、所述执行程序的全部内容及所述特征值的MD5加密数据。
本发明所述的执行文件自校验方法中,所述自校验函数的执行过程包括BI)从硬盘把所述执行文件读入内存,计算所述执行文件除尾部16字节外的内容的MD5值;B2)判断上述计算结果是否与所述执行文件的尾部16字节相同,否,返回失败;是,则执行下述步骤;B3)解密所述执行文件后除尾部16字节外的特征值加密数据,判断解密结果是否与特征值一致,是,返回成功;否,返回失败。本发明还提供了一种执行文件自校验装置,包括执行文件设置单元及自校验单元,其中,所述执行文件设置单元包括自校验函数设置单元及外壳加密单元,所述自校验函数设置单元用于对在执行程序代码前加入自校验函数,并将此执行程序代码编译成执行·文件;所述外壳加密单元用于对所述执行文件进行外壳加密,使所述执行文件尾部带有外壳加密数据;所述自校验单元,用于调用所述执行文件中的自校验函数,并判断该执行文件是否与原始的执行文件一致。实施本发明的一种执行文件自保护方法及装置,具有以下有益效果1)屏蔽病毒及木马攻击;2)能验证执行文件是否为软件开发商所开发的程序,从而防止盗版;3)成本低、容易实现及使用方便。


下面将结合附图及实施例对本发明作进一步说明,附图中图I是本发明实施例中执行文件自校验方法的流程示意图;图2是本发明实施例中执行文件自校验装置的结构示意图;图3是本发明实施例中执行文件自校验装置中的外壳加密单元的结构示意图。
具体实施例方式为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式
。在本发明的第一实施例中所述的执行文件自校验方法中,首先对执行文件进行设置,包括在编写执行程序代码时,在Main函数前,添加一个预设的自保护函数F,若该函数F返回成功,则执行文件正常运行;反之,若返回失败,则执行文件结束运行。然后,对所述执行程序代码编译生成的执行文件进行外壳加密,将外壳加密数据添加在上述执行文件尾部,具体包括步骤一,对特征值进行加密,将特征值加密数据添加在所述执行文件尾部;其中特征值是由软件开发商根据需要预先设置,可包含软件开发商名称、执行程序名称及版本号,同时也可以加入使用该执行文件的用户的个人信息,在本实施例中,假定特征值为100字节,该特征值编写入执行文件内部。步骤二,利用MD5加密所述执行程序的全部内容及所述特征值,将该MD5加密数据添加在所述特征值加密数据后,该MD5加密数据大小为16字节。MD5是指信息-摘要算法5,为计算机安全领域广泛使用的散列函数,能将任意长度的字节串变成16字节。上述外壳加密过程利用另一个加密程序实现,如图I所示,为本实施例中所述经设置后的执行文件自校验方法的流程示意图,当运行该执行文件时,其自校验包括步骤101,调用自校验函数F,从硬盘把所述执行文件读入内存;步骤102,计算所述执行文件除尾部16字节外的内容的MD5值;步骤103,判断上述MD5值是否与所述执行文件的尾部16字节相同,否,返回失败,程序结束运行;是,则执行下述步骤;步骤104,解密所述执行文件后除尾部16字节外的特征值加密数据;步骤105,判断上述解密结果是否与预先设置的特征值(100字节)一致,是,程序正常运行;否,返回失败,结束运行。其中,进行自校验步骤105时,需读取预先设置的特征值,由于此特征值编写入执 行程序内部,无需从执行文件外部获取该特征值,从而实现无需借助外部工具的自校验。在该自校验的过程中,对执行文件进行了外壳加密,使该执行文件自校验方法防止病毒及木马攻击,不仅如此,更能在运行时能检查该执行文件是否已经被病毒攻击或恶意篡改,通过对特征值的判断,还能验证该执行文件是否为软件开发商所开发的软件,另夕卜,该方法成本很低,用户使用也十分方便,软件开发商管理其开发的软件也很方便。上述实施例中的自校验经过两种分别对MD5值及特征值的校验,两次校验会增加校验时间,因而导致执行文件开始运行的时间较长,考虑这方面的因素,可以只选择其中一种来进行校验,当然,这是基于节约时间的考虑。在实际使用上述实施例中的执行文件自校验方法时,可权衡考虑时间、安全等因素来选择。当然本发明所述的外壳加密过程不限于上述实施例中所述的加密过程,通过其他加密方法或步骤而产生外壳加密数据,然后将此外壳加密数据添加在所述执行文件尾部也是可行的,当采用其他方法产生加密数据时,也对应的修改自校验函数F的执行步骤,以此来实现执行文件的自校验。如图2所示,本发明实施例中还公开了一种执行文件自校验装置,包括执行文件设置单元(I)及自校验单元(2),其中,所述执行文件设置单元(I)包括自校验函数设置单元(11)及外壳加密单元(12),其中所述自校验函数设置单元(11)用于对在执行程序代码前加入自校验函数F,并将此执行程序代码编译成执行文件;所述外壳加密单元(12)用于对所述执行文件进行外壳加密,使所述执行文件尾部带有外壳加密数据,该外壳加密单元独立于所述执行文件。所述自校验单元(2),用于调用所述执行文件中的自校验函数F,并判断该执行文件是否与原始的执行文件一致,是所述执行文件实现自校验的重要组成部分。在本实施例中的执行文件自校验装置,如图3所示,所述外壳加密单元(12)还进一步包括特征值加密单元(121),用于对特征值进行加密,并将特征值加密数据添加在所述执行文件尾部,所述特征值加密数据是通过加密算法对预先设置的特征值(100字节)加密而来;MD5加密单元(122),用于使用MD5加密所述执行程序的全部内容及所述特征值,并将MD5加密数据添加在上述特征值加密数据后。本实施例中执行文件自校验装置,如图2所示,所述自校验单元(2)还进一步包括MD5校验单元(21),用于计算所述执行文件除尾部16字节外的内容的MD5值并判断其是否所述执行文件尾部16字节相同;特征值校验单元(22),用于解密所述执行文件后除尾部16字节外的特征值加密数据,并判断解密结果是否与预先设置的特征值一致。而所述MD5校验单元(21)及所述特征值校验单元(22)可根据需要只包括一种或同时包括两种。
以上所述,对于本领域的普通技术人员来说,可以根据本发明的技术方案和技术 构思做出其他各种相应的改变和变形,而所有这些改变和变形都应属于本发明的权利要求的保护范围。
权利要求
1.一种执行文件自校验方法,其特征在于,所述执行文件自校验方法包括设置执行文件与自校验,其中, 设置执行文件包括 51)在编写执行程序代码时,在Main函数前,加入预设的自校验函数,并将此执行程序代码编译生成执行文件; 52)对上述执行文件进行外壳加密,将外壳加密数据添加在所述执行文件尾部; 自校验包括 53)运行执行文件时,先调用预设的自校验函数,利用上述外壳加密数据判断该执行文件是否为原始的执行文件,是,程序继续运行;否,程序则结束运行。
2.如权利要求I所述的执行文件自校验方法,其特征在于,步骤S2)中外壳加密过程包括 Al)对特征值进行加密,将特征值加密数据添加在所述执行文件尾部,其中所述特征值预先设置并编写入所述执行文件内部;所述特征值包括软件开发商名称、执行文件名称及版本号; A2 )利用MD5加密所述执行程序的全部内容及所述特征值,将MD5加密数据添加在所述特征值加密数据后,所述MD5加密数据大小为16字节。
3.如权利要求2所述的执行文件自校验方法,其特征在于,所述外壳加密数据包括特征值加密数据、所述执行程序的全部内容及所述特征值的MD5加密数据。
4.如权利要求I所述的执行文件自校验方法,其特征在于,步骤S3)中所述自校验函数的执行过程包括 BI)从硬盘把所述执行文件读入内存,计算所述执行文件除尾部16字节外的内容的MD5 值; B2)判断上述计算结果是否与所述执行文件的尾部16字节相同,否,返回失败;是,则执行下述步骤; B3)解密所述执行文件后除尾部16字节外的特征值加密数据,判断解密结果是否与特征值一致,是,返回成功;否,返回失败。
5.一种执行文件自校验装置,其特征在于,包括执行文件设置单元(I)及自校验单元(2),其中, 所述执行文件设置单元(I)包括自校验函数设置单元(11)及外壳加密单元(12),所述自校验函数设置单元(11)用于对在执行程序代码前加入自校验函数,并将此执行程序代码编译成执行文件;所述外壳加密单元(12)用于对所述执行文件进行外壳加密,使所述执行文件尾部带有外壳加密数据; 所述自校验单元(2 ),用于调用所述执行文件中的自校验函数,并判断该执行文件是否与原始的执行文件一致。
6.如权利要求5所述的执行文件自校验装置,其特征在于,所述外壳加密单元(12)包括 特征值加密单元(121 ),用于对特征值进行加密,并将特征值加密数据添加在所述执行文件尾部; MD5加密单元(122),用于使用MD5加密所述执行程序的全部内容及所述特征值,并将MD5加密数据添加在上述特征值加密数据后。
7.如权利要求5所述的执行文件自校验装置,其特征在于,所述自校验单元(2)还包括 MD5校验单元(21 ),用于计算所述执行文件除尾部16字节外的内容的MD5值并判断其是否所述执行文件尾部16字节相同; 特征值校验单元(22),用于解密所述执行文件后除尾部16字节外的特征值加密数据,并判断解密结果是否与预先设置的特征值一致。
全文摘要
本发明涉及一种执行文件自校验方法,在编写执行程序代码时,在Main函数前,添加预设的自校验函数,运行该执行文件时,先调用该自校验函数,若该自校验函数返回成功,则继续运行;失败,则程序结束运行。该执行文件自校验方法还包括对所述执行程序代码编译生成的执行文件进行外壳加密,基于此外壳加密数据执行上述自校验函数。本发明还提供了一种用于上述执行文件自校验方法的自校验装置,使用本发明的优点在于不仅可以屏蔽病毒及防止木马攻击,在运行前还能验证是否为开发商所开发的程序从而防止盗版及验证是否已经被篡改,且易于使用及方便操作。
文档编号G06F21/10GK102855439SQ20121026072
公开日2013年1月2日 申请日期2012年7月26日 优先权日2012年7月26日
发明者楚甲良, 张先助 申请人:深圳市赛格导航科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1