一种可执行文件的保护方法和装置制造方法及图纸

技术编号:17780152 阅读:108 留言:0更新日期:2018-04-22 08:53
本申请公开了一种可执行文件的保护方法和装置,其中方法包括:获取可执行文件的附加数据;利用预设的加密代码段对所述附加数据进行加密;将预设的挂钩代码段、所述加密代码段和预设的解密代码段,作为壳代码增加至所述可执行文件中,利用经过所述加密的附加数据替换所述可执行文件中的附加数据;所述挂钩代码段用于在所述可执行文件启动时,利用所述解密代码段对文件中的附加数据进行解密,利用解密后的附加数据替换所启动的可执行文件中的附加数据,在所述可执行文件退出时,利用所述加密代码段对所述附加数据进行加密,利用加密后的附加数据替换所退出的可执行文件中的附加数据。采用本发明专利技术,可以提高软件的安全性。

【技术实现步骤摘要】
一种可执行文件的保护方法和装置
本专利技术涉及软件保护技术,特别是涉及一种可执行文件的保护方法和装置。
技术介绍
软件作为一种特殊的产品,由于其数字化的特征,从问世起就一直遭受盗版的困扰。盗版的存在不仅给软件开发者造成了巨大的损失,也极大的阻碍了整个软件行业的发展。目前的软件保护方式通常是对被保护的程序代码进行处理,以阻止非法用户对程序代码的反编译。例如,加壳作为一种软件保护方式,是将被保护的程序代码转换为虚拟机代码。程序运行时,虚拟机将模拟程序执行,进入和离开虚拟机都有高级代码混淆。该种软件保护方式,通过将虚拟机配合代码混淆可以达到很好的保护效果,尤其是开发者的私有逻辑,同时,采用高级混淆可充分干扰静态分析,并且应用程序的解压缩含有动态密码,可以让一切自动脱壳工具失效,有效的阻止.Net、PE程序的直接反编译。上述软件保护方式虽然能可以较大程度地阻止软件的非法使用,但是在实际应用中,仍存在数据泄露及破坏的问题。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种可执行文件的保护方法和装置,可以提高软件的安全性。为了达到上述目的,本专利技术提出的技术方案为:一种可执行文件的保护方法,包括:获取可执行文件的附加数据;利用预设的加密代码段对所述附加数据进行加密;将预设的挂钩代码段、所述加密代码段和预设的解密代码段,作为壳代码增加至所述可执行文件中,利用经过所述加密的附加数据替换所述可执行文件中的附加数据;其中,所述挂钩代码段用于在所述可执行文件启动时,利用所述解密代码段对文件中的附加数据进行解密,利用解密后的附加数据替换所启动的可执行文件中的附加数据,在所述可执行文件退出时,利用所述加密代码段对所述附加数据进行加密,利用加密后的附加数据替换所退出的可执行文件中的附加数据。较佳地,所述加密代码段通过调用预设的保护装置对所述附加数据进行加密。较佳地,所述保护装置为精锐5加密锁。较佳地,所述获取可执行文件的附加数据包括:确定所述可执行文件中最后一个区块表的文件偏移和区块表的文件大小;根据所述文件偏移和区块表的文件大小,计算所述附加数据的起始地址;读取从所述起始地址开始到文件末尾的文件数据,得到所述附加数据。本专利技术还提供了一种可执行文件的保护装置,包括:附加数据获取单元,用于获取可执行文件的附加数据;附加数据处理单元,用于利用预设的加密代码段对所述附加数据进行加密;文件保护单元,用于将预设的挂钩代码段、所述加密代码段和预设的解密代码段,作为壳代码增加至所述可执行文件中,利用经过所述加密的附加数据替换所述可执行文件中的附加数据;其中,所述挂钩代码段用于在所述可执行文件启动时,利用所述解密代码段对文件中的附加数据进行解密,利用解密后的附加数据替换所启动的可执行文件中的附加数据,在所述可执行文件退出时,利用所述加密代码段对所述附加数据进行加密,利用加密后的附加数据替换所退出的可执行文件中的附加数据。较佳地,所述加密代码段通过调用预设的保护装置对所述附加数据进行加密。较佳地,所述保护装置为精锐5加密锁。较佳地,所述附加数据获取单元,用于确定所述可执行文件中最后一个区块表的文件偏移和区块表的文件大小;根据所述文件偏移和区块表的文件大小,计算所述附加数据的起始地址;读取从所述起始地址开始到文件末尾的文件数据,得到所述附加数据。综上所述,本专利技术提出的可执行文件的保护方法和装置,将对可执行文件中的附加数据进行加密保护处理,经过保护后的可执行文件运行时,需要先利用壳代码对附加数据进行解密,运行结束时再对附加数据进行加密,如此,可以增加可执行文件的反编译和分析的难度,从而可以大大提高软件的安全性。附图说明图1为本专利技术实施例的方法流程示意图;图2为Windows系统的PE文件结构示意图;图3为本专利技术实施例的装置结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本专利技术作进一步地详细描述。通过研究分析,申请人发现:对于可执行文件中用来辅助分析可执行文件的至关重要的数据结构——附加数据,现有的软件保护方案并不对其进行处理,比如加壳技术,通常是直接把附加数据放在可执行文件的末尾。这样,附加数据就很容易被编译和分析出来,从而可以分析出执行文件的保护逻辑,造成数据的泄露及破坏。基于此,本专利技术的核心思想是:将可执行文件中的附加数据加密后放在文件末尾,这样,经过保护处理后的可执行文件在运行时,需要临时对附加数据解密,可行性文件运行结束时再次对附加数据进行加密,从而增加了反编译和分析的难度,大大提高了软件的安全性。图1为本专利技术实施例提供的可执行文件保护方法的流程示意图,如图1所示,该实施例主要包括:步骤101、获取可执行文件的附加数据。本步骤中,需要对可执行文件进行分析,获取文件中的附加数据,以便在后续步骤中进一步对附加数据进行加密处理,增加可执行文件的反编译和分析的难度。具体地,可以采用下述方法获取可执行文件的附加数据:步骤1011、确定所述可执行文件中最后一个区块表的文件偏移和区块表的文件大小。本步骤的具体实现方法为本领域技术人员所已知,在此不再赘述。步骤1012、根据所述文件偏移和区块表的文件大小,计算所述附加数据的起始地址。具体地,将文件偏移与区块表的文件大小相加即得到文件中附加数据的起始地址。步骤1013、读取从所述起始地址开始到文件末尾的文件数据,得到所述附加数据。步骤102、利用预设的加密代码段对所述附加数据进行加密。本步骤用于对附加数据进行加密处理,以提高可执行文件的安全性,防止非法用户通过对附加数据的编译和分析,分析出执行文件的保护逻辑,造成数据的泄露及破坏。较佳地,所述加密代码段可以通过调用预设的保护装置对所述附加数据进行加密。较佳地,所述保护装置可以为加密锁,如精锐5加密锁,但在实际应用中,并不限于此,只要是能对附加数据进行加密的装置即可。步骤103、将预设的挂钩代码段、所述加密代码段和预设的解密代码段,作为壳代码增加至所述可执行文件中,利用经过所述加密的附加数据替换所述可执行文件中的附加数据。所述挂钩代码段,用来挂钩访问可执行文件附加数据的代码(如CreateFile和ReadFile)和文件退出代码(如windows下的ExitProcess函数),具体地,用于在所述可执行文件启动时,利用所述解密代码段对文件中的附加数据进行解密,利用解密后的附加数据替换所启动的可执行文件中的附加数据,在所述可执行文件退出时(即检测到文件的退出函数执行时),利用所述加密代码段对所述附加数据进行加密,利用加密后的附加数据替换所退出的可执行文件中的附加数据,以确保可执行文件执行结束后的安全性。本步骤中,将利用经过加密的附加数据替换可执行文件中的附加数据,同时,将相应的用于在可执行文件启动和退出时,对附加数据进行解密和加密处理的壳代码增加到可执行文件中,以确保可执行文件运行时能正常的使用附加数据,以及运行结束后,能再次对附加数据进行加密。这里,所述挂钩代码段、加密代码段和解密代码段将作为壳代码增加至可执行文件中,如此,在可执行文件启动和退出时,将利用这些壳代码对文件中的附加数据进行解密和加密处理。通常,这些代码可以增加在文件的尾部。在实际应用中,所述挂钩代码段、加密代码段和解密代码段,可以采用c代码和部本文档来自技高网...
一种可执行文件的保护方法和装置

【技术保护点】
一种可执行文件的保护方法,其特征在于,包括:获取可执行文件的附加数据;利用预设的加密代码段对所述附加数据进行加密;将预设的挂钩代码段、所述加密代码段和预设的解密代码段,作为壳代码增加至所述可执行文件中,利用经过所述加密的附加数据替换所述可执行文件中的附加数据;其中,所述挂钩代码段用于在所述可执行文件启动时,利用所述解密代码段对文件中的附加数据进行解密,利用解密后的附加数据替换所启动的可执行文件中的附加数据,在所述可执行文件退出时,利用所述加密代码段对所述附加数据进行加密,利用加密后的附加数据替换所退出的可执行文件中的附加数据。

【技术特征摘要】
1.一种可执行文件的保护方法,其特征在于,包括:获取可执行文件的附加数据;利用预设的加密代码段对所述附加数据进行加密;将预设的挂钩代码段、所述加密代码段和预设的解密代码段,作为壳代码增加至所述可执行文件中,利用经过所述加密的附加数据替换所述可执行文件中的附加数据;其中,所述挂钩代码段用于在所述可执行文件启动时,利用所述解密代码段对文件中的附加数据进行解密,利用解密后的附加数据替换所启动的可执行文件中的附加数据,在所述可执行文件退出时,利用所述加密代码段对所述附加数据进行加密,利用加密后的附加数据替换所退出的可执行文件中的附加数据。2.根据权利要求1所述的方法,其特征在于,所述加密代码段通过调用预设的保护装置对所述附加数据进行加密。3.根据权利要求2所述的方法,其特征在于,所述保护装置为加密锁。4.根据权利要求1所述的方法,其特征在于,所述获取可执行文件的附加数据包括:确定所述可执行文件中最后一个区块表的文件偏移和区块表的文件大小;根据所述文件偏移和区块表的文件大小,计算所述附加数据的起始地址;读取从所述起始地址开始到文件末尾的文件数据,得到所述附加数据。5.一种可执行文件的保护装...

【专利技术属性】
技术研发人员:孙吉平朱庆芬
申请(专利权)人:北京深思数盾科技股份有限公司
类型:发明
国别省市:北京,11

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

1