一种共享目标文件的保护方法及装置制造方法及图纸

技术编号:12389734 阅读:60 留言:0更新日期:2015-11-25 22:48
本发明专利技术公开了一种共享目标文件的保护方法及装置,涉及通信技术领域,能够实现对共享目标文件的快速保护。该方法主要包括:获取共享目标文件的程序头表,所述程序头表中包含段描述信息;根据所述段描述信息,获取需要加密的原代码段;将所述原代码段进行加密处理,得到加密代码段和加密描述信息;根据所述加密代码段、所述加密描述信息以及所述共享目标文件中除所述原代码段以外的其他数据,构建受保护的共享目标文件。本发明专利技术主要用于对共享目标文件进行保护的过程中。

【技术实现步骤摘要】

本专利技术涉及通信
,具体涉及数据安全
,尤其涉及一种共享目标文件的保护方法及装置
技术介绍
每个Android安装包(AndroidPackage,APK)文件中都包括有共享目标文件(Sharedobjectfile,SO),Android中的SO文件类似于Windows中的动态链接库文件(DynamicLinkLibrary,DLL),其所包含的函数本身不会被当作是Android程序的一部分,而是可以根据程序的需要进行加载运行。对于一些安全要求高的Android应用程序(比如手机银行客户端等),通常使用SO文件来完成后端的核心动作,因此需要SO文件具备很高的安全性。现有技术中为了提高共享目标文件的安全性,会对共享目标文件进行保护处理,通常采取的保护方法包括:在开发阶段进行加密处理或使用软件开发工具包的形式进行二次包裹等。但是,这些保护方法需要用户修改源码或程序的核心逻辑,无法实现快速的加固,难以应用到大众用户的通用保护层面。
技术实现思路
有鉴于此,本专利技术实施例提供一种共享目标文件的保护方法及装置,以实现对共享目标文件的快速加固。一方面,本专利技术实施例提供了一种共享目标文件的保护方法,该方法包括:获取共享目标文件的程序头表,所述程序头表中包含段描述信息;根据所述段描述信息,获取需要加密的原代码段;将所述原代码段进行加密处理,得到加密代码段和加密描述信息;根据所述加密代码段、所述加密描述信息以及所述共享目标文件中除所述原代码段以外的其他数据,构建受保护的共享目标文件。另一方面,本专利技术实施例提供了一种共享目标文件的保护装置,该装置包括:表获取模块,用于获取共享目标文件的程序头表,所述程序头表中包含段描述信息;段获取模块,用于根据所述表获取模块得到的段描述信息,获取需要加密的原代码段;加密模块,用于将所述段获取模块得到的原代码段进行加密处理,得到加密代码段和加密描述信息;构建模块,用于根据所述加密模块得到的加密代码段、加密描述信息以及所述共享目标文件中除所述原代码段以外的其他数据,构建受保护的共享目标文件。本专利技术实施例提出的一种共享目标文件的保护方法及装置,将共享目标文件中的原代码段进行加密处理,并根据加密后得到的加密代码段和加密描述信息来构建受保护的共享目标文件,该方法可以在不修改程序的源码或核心逻辑的情况下,实现对共享目标文件的保护,提高了共享目标文件对抗静态逆向破解的能力。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1是本专利技术的一个实施例提供的一种共享目标文件的保护方法流程图;图2是本专利技术的一个实施例提供的另一种共享目标文件的保护方法流程图;图3是本专利技术的一个实施例提供的又一种共享目标文件的保护方法流程图;图4是本专利技术的一个实施例提供的一种共享目标文件的保护装置的组成框图;图5是本专利技术的一个实施例提供的另一种共享目标文件的保护装置的组成框图;图6是本专利技术的一个实施例提供的又一种共享目标文件的保护装置的组成框图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。本专利技术的具体实施例提供了一种共享目标文件的具体保护方法,如图1所示,该方法在执行时,包括如下步骤:101、获取共享目标文件的程序头表,所述程序头表中包含段描述信息。其中,上述共享目标文件即SO文件的格式符合ELF(ExecutableandLinkableFormat,可执行连接格式)规范,而一个标准的ELF文件在运行时,通常可以划分为以下几个部分,包括:ELF文件头(ELFHeader)、程序头表(Programheadertable)、动态链接信息以及段(Segment)等内容。在获取上述共享目标文件的程序头表时,可以根据程序头表在共享目标文件中的偏移量,定位并获取到所述程序头表。在所述程序头表中包含有段描述信息,所述段描述信息用于记载文件中所包含的段的数目,段的位置以及用途等信息。根据段的用途,可以将ELF文件中的段大致分为两类:代码段和数据段,其中,代码段中主要存放有文件运行时需要执行的具体代码,数据段中主要存放有代码执行过程中需要使用的变量以及一些注释信息等数据。102、根据所述段描述信息,获取需要加密的原代码段。具体地,在根据所述段描述信息获取需要加密的原代码段时,可以根据所述段描述信息中关于段用途的描述信息,判断出上述共享目标文件中哪些段是代码段,哪些段是数据段。由于加密的主要目的是隐藏程序中的原始执行代码,因此,可以将所述共享目标文件的代码段作为需要加密的原代码段。103、将所述原代码段进行加密处理,得到加密代码段和加密描述信息。具体地,在将上述原代码段进行加密处理时,可以利用常用的数据加密算法,例如AES(AdvancedEncryptionStandard,高级加密标准)、MD5(MessageDigestAlgorithm5,消息摘要算法第五版)及DES(DataEncryptionStandard,美国数据加密标准)等,对所述原代码段进行数据加密,即对原来的明文代码数据进行算法处理,使得加密处理后的所述原代码段成为不可读的代码,即加密代码段。并且,在上述加密处理完成后,还可以得到加密描述信息,其用于记录加密代码段的存放位置和大小等信息,以便在解密时使用。104、根据所述加密代码段、所述加密描述信息以及所述共享目标文件中除所述原代码段以外的其他数据,构建受保护的共享目标文件。具体地,在根据上述加密代码段、上述加密描述信息以及上述共享目标文件中除所述原代码段以外的其他数据,构建受保护的共享目标文件时,可以将共享目标文件中的原代码段替换为所述加密代码段和所述加密描述信息,并保持所述共享目标文件中除所述原代码段以外的其他数据不变,然后修改各数据在文件中的偏移量,这样就可以得到受保护的共享目标文件。在本实施例的一个优选实施方式中,在构建受保护的共享目标文件时,还可以首先根据上述共享目标文件的平台类型重新构建一个空的共享目标文件,其中,所述平台是指Andro本文档来自技高网...

【技术保护点】
一种共享目标文件的保护方法,其特征在于,所述方法包括:获取共享目标文件的程序头表,所述程序头表中包含段描述信息;根据所述段描述信息,获取需要加密的原代码段;将所述原代码段进行加密处理,得到加密代码段和加密描述信息;根据所述加密代码段、所述加密描述信息以及所述共享目标文件中除所述原代码段以外的其他数据,构建受保护的共享目标文件。

【技术特征摘要】
1.一种共享目标文件的保护方法,其特征在于,所述方法包括:
获取共享目标文件的程序头表,所述程序头表中包含段描述信息;
根据所述段描述信息,获取需要加密的原代码段;
将所述原代码段进行加密处理,得到加密代码段和加密描述信息;
根据所述加密代码段、所述加密描述信息以及所述共享目标文件
中除所述原代码段以外的其他数据,构建受保护的共享目标文件。
2.根据权利要求1所述的共享目标文件的保护方法,其特征在于,
在所述获取共享目标文件的程序头表之前,还包括:
判断共享目标文件是否符合加密条件;
若是,则执行所述获取共享目标文件的程序头表。
3.根据权利要求2所述的共享目标文件的保护方法,其特征在于,
所述加密条件包括加密文件类型、文件未受损和文件未加密中的一个
或多个。
4.根据权利要求1-3任一项所述的共享目标文件的保护方法,其
特征在于,还包括:
在所述受保护的共享目标文件中设置引导模块和与所述引导模块
对应的全局变量,其中,当所述受保护的共享目标文件运行时调用所
述引导模块,进行调用所述全局变量并根据所述加密描述信息对所述
加密代码段进行解密的操作;
修改所述受保护的共享目标文件的入口点,使得所述入口点指向
所述引导模块。
5.根据权利要求4所述的共享目标文件的保护方法,其特征在于,
在根据所述加密描述信息对所述加密代码段进行解密之后,还包括:
将解密后的加密代码段放置在内存中紧邻所述受保护的共享目标

\t文件的动态链接信息之后的位置。
6.一种共享目标文件的保护装置,其特征在于,所述装置包括:
表获取模块,用于获取共享目标文件的...

【专利技术属性】
技术研发人员:阎文斌
申请(专利权)人:北京娜迦信息科技发展有限公司
类型:发明
国别省市:北京;11

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

1