多elf文件保护方法及系统的制作方法

文档序号:9844332阅读:742来源:国知局
多elf文件保护方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据安全领域,具体而言,本发明涉及一种多ELF文件保护方法及系统。
【背景技术】
[0002]安卓(Android)是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。安卓平台发展迅速,已经逐渐成为了移动终端的最普及的操作系统,尤其是安卓平台已经深入到了各个领域,包括金融设备这种对安全性要求更高的产品。与其他终端操作系统相比,开放式的安卓系统为应用开发者提供了更多的功能接口,这些功能接口在提高了系统的可扩展性,但同时也为恶意软件提供了便利。针对安卓系统的木马等恶意软件可以通过伪装的方式保存在安卓安装包中,骗取用户安装并授予一定的权限,之后通过滥用权限在后台执行一些特定行为,包括窃取用户隐私、骗取资费等行为;不仅如此,对于一些正常的安卓系统应用,也存在通过非法拷贝、逆向工程、反编译、调试、破解、二次打包、内存截取等手段来威胁安卓系统的安全,不仅危害了使用者,也给正常应用开发者造成严重的损害。
[0003]基于以上问题,现有技术中出现了多种安卓应用的安全加固方法。目前,对ELF文件(Android平台主要是共享链接库文件,其扩展名为.so,因此也叫SO文件)的保护,主要通过加壳来进行保护。加壳的程序可以有效阻止对程序的反汇编分析,以保护软件版权,防止被软件破解。但现在对SO文件的保护方案,主要针对单个的SO文件进行保护,即对每一个SO文件都加壳一次。这样就会有很多被加壳的SO文件,比如银行的应用软件Iib下会有很多的SO文件,对其进行保护就会生成很多加壳的SO文件。由于SO文件的数量较多,势必造成最终应用包的体积较大,很占空间;此外,所有的SO文件没有任何隐藏,第三方可以很容易实现对其调用,存在安全隐患。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的多ELF文件保护方法和相应的系统。
[0005]依据本发明的一个方面,提供了一种多ELF文件的保护方法,该方法包括:
[0006]将多个ELF文件并入一个壳程序文件中;
[0007]对所述壳程序文件中的多个ELF文件进行加保护处理;
[0008]接收至少一个ELF文件的调用请求,确定所述调用请求所对应的待调用对象;
[0009]根据所确定的待调用对象,在所述壳程序文件处对所述至少一个ELF文件进行调用。
[0010]进一步地,所述将待保护的多个ELF文件并入一个壳程序文件中包括:
[0011]将所述多个ELF文件转换成二进制流,写入一个壳程序文件中,所述壳程序文件中至少包含所述多个ELF文件的头文件信息。
[0012]进一步地,所述对所述壳程序文件中的多个ELF文件进行加保护处理包括:去掉所述多个ELF文件的隐藏信息、对所述多个ELF文件进行分段加密处理、对所述多个ELF文件进行代码混淆处理、对所述多个ELF文件进行反调试处理中的至少一种。
[00?3]进一步地,所述接收至少一个ELF文件的调用请求,确定所述调用请求所对应的待调用对象包括:
[0014]在所述壳程序文件外接收至少一个ELF文件的调用请求,确定所述调用请求所对应的待调用对象;
[0015]所述根据所确定的待调用对象,在所述壳程序文件处对所述至少一个ELF文件进行调用包括:
[0016]在所述壳程序文件处,接收所述待调用对象的确定结果,相应地对所述至少一个ELF文件进行调用。
[0017]更进一步地,在所述壳程序文件外接收至少一个ELF文件的调用请求,确定所述调用请求所对应的待调用对象包括:
[0018]在系统库文件中建立钩子;
[0019]利用所述钩子在第三方应用和所述壳程序文件之间接收第三方应用的调用请求,解析所述调用请求所对应的待调用对象。
[0020]根据本发明的另一个方面,提供了一种多ELF文件的保护系统,该系统包括:
[0021 ]合并写入单元,用于将多个ELF文件并入一个壳程序文件中;
[0022]请求对象确定单元,用于接收至少一个ELF文件的调用请求,确定所述调用请求所对应的待调用对象;
[0023]调用单元,用于根据所确定的待调用对象,在所述壳程序文件处对所述至少一个ELF文件进行调用。
[0024]进一步地,所述合并写入单元,用于将所述多个ELF文件转换成二进制流,写入一个壳程序文件中,所述壳程序文件中至少包含所述多个ELF文件的头文件信息;
[0025]进一步地,所述保护处理单元用于去掉所述多个ELF文件的隐藏信息;和/或,用于对所述多个ELF文件进行分段加密处理;和/或,用于对所述多个ELF文件进行代码混淆处理;和/或,用于对所述多个ELF文件进行反调试处理;
[0026]进一步地,所述请求对象确定单元用于在所述壳程序文件外接收至少一个ELF文件的调用请求,确定所述调用请求所对应的待调用对象;
[0027]所述调用单元用于在所述壳程序文件处,接收所述待调用对象的确定结果,相应地对所述至少一个ELF文件进行调用。
[0028]更进一步地,所述请求对象确定单元为系统库文件中建立的钩子,利用所述钩子在第三方应用和所述壳程序文件之间接收第三方应用的调用请求,解析所述调用请求所对应的待调用对象。
[0029]相比现有技术,本发明的方案具有以下优点:
[0030]本发明提供的多ELF文件的保护方法和系统,通过将多个Android动态链接库(*.so)文件统一加壳保护,这样既实现了目标动态库隐藏的目的,防止第三方恶意调用,同时也有效降低了目标软件大小。
[0031]显然,上述有关本发明优点的描述是概括性的,更多的优点描述将体现在后续的实施例揭示中,以及,本领域技术人员也可以本发明所揭示的内容合理地发现本发明的其他诸多优点。
[0032]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0033]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0034]图1为本发明一种多ELF文件保护方法实施例的流程示意图。
[0035]图2为现有技术中SO文件正常的加载流程示意图;
[0036]图3为现有技术中使用常用的加固方法后的SO文件的加载流程示意图;
[0037]图4为基于本发明一种多ELF文件保护方法实施例的SO文件的加载流程示意图。
[0038]图5为本发明一种多ELF文件保护系统实施例的原理示意图。
【具体实施方式】
[0039]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0040]本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“親接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0041]本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0042]需要指出的是,本发明的技术方案,理念上与操作系统的选型无关,对于windows、android、1S等操作系统均适用。但为说明的便利,以下将主要以Android为例进行说明。
[0043]在安卓系统上,一个可以安装、运行的应用,需要打包成安卓安装包,S卩APK(Android applicat1n package file)文件格式。(APK文件
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1