一种软件安装包的加固保护方法和系统技术方案

技术编号:14556304 阅读:64 留言:0更新日期:2017-02-05 10:38
本发明专利技术公开了一种软件安装包的加固保护方法和系统,其中,所述方法包括:对软件安装包进行解析,得到可执行文件和动态库文件;从所述可执行文件中提取设定数据;将所述设定数据加载至动态库文件中,并使用设定函数替代所述可执行文件中被提取的设定数据;其中,所述设定函数用于指示所述设定数据在动态库文件中的加载位置;根据修改后的可执行文件和修改后的动态库文件,对解析后的软件安装包进行重打包,生成加固软件安装包。通过本发明专利技术提高了软件安装包的安全性,增加了软件安装包被逆向工程、反编译、调试、破解、和/或二次打包的难度。

Reinforcement protection method and system for software installation package

The invention discloses a method and system for strengthening protection, a software package which includes: analyze the software installation package, get the executable file and library file; data set can be extracted from the executable file; the set of loading data to the dynamic library file, and use set the function instead of the executable file is extracted from the data set; wherein the set function is used for indicating the data set in the dynamic library files in the loading position; according to the modified executable file and the modified dynamic library text, installation package re packaged for analysis of the software, generate reinforcement software installation package. The invention improves the security of the software installation package, and increases the difficulty that the software installation package is reverse engineered, decompile, debugged, cracked, and / or packaged two times.

【技术实现步骤摘要】

本专利技术涉及安全
,特别是涉及一种软件安装包的加固保护方法和系统
技术介绍
安卓平台发展迅速,已经逐渐成为了移动终端的最普及的操作系统,与其他终端操作系统相比,开放式的安卓系统为应用开发者提供了更多的功能接口,这些功能接口在提高了系统的可扩展性,但同时也为恶意软件提供了便利。针对安卓系统的木马等恶意软件可以通过伪装的方式保存在安卓安装包中,骗取用户安装并授予一定的权限,之后通过滥用权限在后台执行一些特定行为,包括窃取用户隐私、骗取资费等行为;不仅如此,对于一些正常的安卓系统应用,也存在通过非法拷贝、逆向工程、反编译、调试、破解、二次打包、内存截取等手段来威胁安卓系统的安全,不仅危害了使用者,也给正常应用开发者造成严重的损害。目前市面上针对安卓安装包的保护主要是基于对dex文件的保护,一般是通过对dex文件进行加密和混淆等处理手段来实现,在安卓安装包运行时再动态解密,还原内容。但是由于dex文件的反编译难度较低,很容易被反编译工具轻易逆向,导致该类方案始终无法完全解决安卓安装包面临的安全问题,开发者们也一直在寻求更有效的解决方案。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种软件安装包的加固保护方法和系统。依据本专利技术的一个方面,提供了一种软件安装包的加固保护方法,包括:对软件安装包进行解析,得到可执行文件和动态库文件;从所述可执行文件中提取设定数据;将所述设定数据加载至动态库文件中,并使用设定函数替代所述可执行文件中被提取的设定数据;其中,所述设定函数用于指示所述设定数据在动态库文件中的加载位置;根据修改后的可执行文件和修改后的动态库文件,对解析后的软件安装包进行重打包,生成加固软件安装包。依据本专利技术的另一个方面,提供了一种软件安装包的加固保护系统,包括:解析模块,用于对软件安装包进行解析,得到可执行文件和动态库文件;提取模块,用于从所述可执行文件中提取设定数据;替换模块,用于将所述设定数据加载至动态库文件中,并使用设定函数替代所述可执行文件中被提取的设定数据;其中,所述设定函数用于指示所述设定数据在动态库文件中的加载位置;重生成模块,用于根据修改后的可执行文件和修改后的动态库文件,对解析后的软件安装包进行重打包,生成加固软件安装包。本专利技术实施例公开了一种软件安装包的加固保护方案,可以将可执行文件中的部分设定数据提取并保存至动态库文件中,根据修改后的可执行文件和修改后的动态库文件重打包生成加固软件安装包。可见,在本专利技术实施例中,即使对重打包生成的加固软件安装包进行脱壳处理,由于还原的可执行文件并不完整(部分设定数据是保存在动态库文件中的),故,单独通过还原的可执行文件也无法实现对软件的逆向工程、反编译、调试、破解或再次打包,保证了软件安装包的安全性,提高了软件安装包的安全等级,保护了开发者和使用者的利益。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1是本专利技术实施例一中一种软件安装包的加固保护方法的步骤流程图;图2是本专利技术实施例二中一种软件安装包的加固保护方法的步骤流程图;图3是本专利技术实施例三中一种软件安装包的加固保护系统的结构框图;图4是本专利技术实施例三中一种优选的软件安装包的加固保护系统的结构框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。实施例一参照图1,示出了本专利技术实施例一中一种软件安装包的加固保护方法的步骤流程图。在本实施例中,所述软件安装包的加固保护方法包括:步骤102,对软件安装包进行解析,得到可执行文件和动态库文件。以安卓系统的软件安装包为例,所述可执行文件可以但不仅限于是指dex文件(Android平台上可执行文件的类型),所述动态库文件可以但不仅限于是指so文件(so文件是指linux下的库文件,后缀为.so,因此得名。so文件是ELF格式的动态链接库文件,so文件在程序运行需要的时候才动态加载到程序中,以支持程序的运行)。步骤104,从所述可执行文件中提取设定数据。在本实施例中,可以从可执行文件中的任意适当位置处、提取任意适当大小的一个或多个数据作为所述设定数据,本实施例对此不作限制。步骤106,将所述设定数据加载至动态库文件中,并使用设定函数替代所述可执行文件中被提取的设定数据。在本实施例中,可以将提取出的设定数据加载至动态库文件中,也可以理解为,将所述设定数据保存在动态库文件中。同时,将所述设定数据从可执行文件中删除,且,使用设定函数来替代从所述可执行文件中删除的设定数据。其中,所述设定函数可以用于指示所述设定数据在动态库文件中的加载位置,以在后续对重打包生成的加固软件安装包使用时,可以根据所述设定函数从动态库文件中快速获取到对应保存的设定数据,并将所述设定数据恢复至所述可执行文件中的相应位置,进而完成应用程序的正常运行。步骤108,根据修改后的可执行文件和修改后的动态库文件,对解析后的软件安装包进行重打包,生成加固软件安装包。综上所述,本实施例所述的软件安装包的加固保护方法,可以将可执行文件中的部分设定数据提取并保存至动态库文件中,根据修改后的可执行文件和修改后的动态库文件重打包生成加固软件安装包。可见,在本实施例中,即使对重打包生成的加固软件安装包进行脱壳处理,由于还原的可执行文件并不完整(部分设定数据是保存在动态库文件中的),故,单独通过还原的可执行文件也无法实现对软件的逆向工程、反编译、调试、破解或再次打包,保证了软件安装包的安全性,提高了软件安装包的安全等级,保护了开发者和使用者的利益。实施例二参照图2,示本文档来自技高网...

【技术保护点】
一种软件安装包的加固保护方法,包括:对软件安装包进行解析,得到可执行文件和动态库文件;从所述可执行文件中提取设定数据;将所述设定数据加载至动态库文件中,并使用设定函数替代所述可执行文件中被提取的设定数据;其中,所述设定函数用于指示所述设定数据在动态库文件中的加载位置;根据修改后的可执行文件和修改后的动态库文件,对解析后的软件安装包进行重打包,生成加固软件安装包。

【技术特征摘要】
1.一种软件安装包的加固保护方法,包括:
对软件安装包进行解析,得到可执行文件和动态库文件;
从所述可执行文件中提取设定数据;
将所述设定数据加载至动态库文件中,并使用设定函数替代所述可执行
文件中被提取的设定数据;其中,所述设定函数用于指示所述设定数据在动
态库文件中的加载位置;
根据修改后的可执行文件和修改后的动态库文件,对解析后的软件安装
包进行重打包,生成加固软件安装包。
2.根据权利要求1所述的方法,其特征在于,在从所述可执行文件中
提取设定数据的步骤之后,还包括:
对所述设定数据进行加密。
3.根据权利要求2所述的方法,其特征在于,所述将所述设定数据加
载至动态库文件中,包括:
将加密后的设定数据加载至动态库文件中。
4.根据权利要求1所述的方法,其特征在于,所述从所述可执行文件
中提取设定数据,包括:
遍历确定所述可执行文件中的所有字符串数据;
将所述字符串数据作为所述设定数据进行提取。
5.根据权利要求1所述的方法,其特征在于,所述动态库文件与所述
可执行文件满足设定关联关系。
6.根据权利要求1所述的方法,其特征在于,还包括:
将修改后的动态库文件作为代码数据写入壳程序文件中;
对写入壳程序文件的修改后的动态库文件进行加固处理。
7.根据权利要求6所述的方法,其特征在于,所述对写入壳程序...

【专利技术属性】
技术研发人员:刘敏
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

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

1