加固应用、加载加固应用的方法和装置制造方法及图纸

技术编号:15725038 阅读:420 留言:0更新日期:2017-06-29 12:11
本申请公开了加固应用、加载加固应用的方法和装置。该方法的一具体实施方式包括:从待加固应用的源程序中获取至少一个可执行文件,然后将至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件,接着还将至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密,以作为第二资源文件,然后基于对资源文件的压缩生成待加固应用的安装包文件,其中,这里的资源文件包括上述第一资源文件、上述第二资源文件、以及包括与预设加密算法相对应的解密算法的第三资源文件。该实施方式可以实现对包括一个或多个可执行文件的应用的加固。

【技术实现步骤摘要】
加固应用、加载加固应用的方法和装置
本申请涉及计算机
,具体涉及信息安全
,尤其涉及加固应用、加载加固应用的方法和装置。
技术介绍
终端应用发布之后,用户可以通过反编译工具查看到应用的源程序代码。一些用户查看应用的源程序代码以窃取他人劳动成果,或者通过在代码中插入其他程序(如病毒代码)等操作对应用的源程序代码进行加工,干扰其他用户对终端应用的正常使用,甚至侵犯其他用户的信息安全。现有技术中,通常将壳程序和终端应用的源程序拼接在一起,并且将终端应用的源程序中可执行文件(executablefile,如dex文件)的长度(如字节数)放置于拼接文件的末尾。这种终端应用的加固方法,往往适用包含一个可执行文件的终端应用,当终端应用有多个可执行文件时,无法和壳程序拼接。因此,需要提供一种能够对包含一个或多个可执行文件的终端应用进行加固的通用方法。
技术实现思路
本申请的目的在于提出一种改进的加固应用的方法和装置,以及加载加固应用方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请提供了一种加固应用的方法,该方法包括:从待加固应用的源程序中获取至少一个可执行文件;将该至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件;将该至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密,以作为第二资源文件;基于对资源文件的压缩生成待加固应用的安装包文件,其中,资源文件包括上述第一资源文件、第二资源文件、包括与第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件。在一些实施例中,将该至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件包括:将各个可执行文件的类加载器分别置换成预定类加载器;将置换类加载器后的至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件;以及,上述资源文件还包括:记录各个可执行文件的类加载器与所置换的自定义类加载器之间的映射关系的第四资源文件。在一些实施例中,本申请提供的加固应用的方法通过调用本地开发工具包的逻辑实现。第二方面,本申请还提供了一种加载加固应用的方法,该方法包括:从加固应用的安装包文件获取资源文件,其中,该资源文件包括:将加固应用的至少一个可执行文件按照第一预设加密算法加密后进行拼接生成的第一资源文件,将该至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密生成的第二资源文件,包括与上述第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件;通过第三资源文件中与第二预设加密算法相对应的解密算法解密第二资源文件,以获取第一资源文件中各个可执行文件的文件长度;根据所获取的各个可执行文件的文件长度从第一资源文件中获取至少一个可执行文件;根据所获取的可执行文件加载所述加固应用。在一些实施例中,上述资源文件还包括记录各个可执行文件的类加载器与所置换的预设类加载器之间的映射关系的第四资源文件;以及,根据所获取的可执行文件安装或运行所述加固应用包括:检测各个可执行文件中是否包含预定类加载器;若包含,创建预定类加载器的对象,用于置换映射关系中记载的可执行文件中与预定类加载器相应的类加载器。在一些实施例中,根据所获取的可执行文件加载所述加固应用还包括:从上述至少一个可执行文件中获取加固应用入口的应用对象名称;创建与加固应用入口的应用对象名称对应的应用对象;通过上述映射关系将所创建的应用对象的应用信息置换成加固用用的应用信息。在一些实施例中,根据所获取的可执行文件加载加固应用包括:将所获取的可执行文件通过预设密钥算法计算得到校验值;响应于校验值与预设值一致,加载上述加固应用,其中,预设值由服务器对源程序的可执行文件通过预设密钥算法计算得到。第三方面,本申请还提供了一种加固应用的装置,该装置包括:获取模块,配置用于从待加固应用的源程序中获取至少一个可执行文件;第一生成模块,配置用于将该至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件;第二生成模块,配置用于将该至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密,以作为第二资源文件;第三生成模块,配置用于基于对资源文件的压缩生成待加固应用的安装包文件,其中,该资源文件包括上述第一资源文件、第二资源文件、包括与第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件。在一些实施例中,第一生成模块进一步配置用于:将各个可执行文件的类加载器分别置换成预定类加载器;将置换类加载器后的至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为所述第一资源文件;以及,上述资源文件还包括:记录各个可执行文件的类加载器与所置换的自定义类加载器之间的映射关系的第四资源文件。在一些实施例中,该装置通过调用本地开发工具包的逻辑加固所述待加固应用。第四方面,本申请还提供了一种加载加固应用的装置,该装置包括:资源文件获取模块,配置用于从加固应用的安装包文件获取资源文件,其中,该资源文件包括:将加固应用的至少一个可执行文件按照第一预设加密算法加密后进行拼接生成的第一资源文件,将该至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密生成的第二资源文件,包括与第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件;解密模块,配置用于通过第三资源文件中与第二预设加密算法相对应的解密算法解密第二资源文件,以获取第一资源文件中各个可执行文件的文件长度;可执行文件获取模块,配置用于根据所获取的各个可执行文件的文件长度从第一资源文件中获取至少一个可执行文件;加载模块,配置用于根据所获取的可执行文件加载该加固应用。在一些实施例中,上述资源文件还包括记录各个可执行文件的类加载器与所置换的预设类加载器之间的映射关系的第四资源文件;以及,加载模块进一步配置用于:检测各个可执行文件中是否包含预定类加载器;若包含,创建预定类加载器的对象,用于置换上述映射关系中记载的可执行文件中与预定类加载器相应的类加载器。在一些实施例中,加载模块还配置用于:从上述至少一个可执行文件中获取加固应用入口的应用对象名称;创建与加固应用入口的应用对象名称对应的应用对象;通过上述映射关系将所创建的应用对象的应用信息置换成加固用用的应用信息。在一些实施例中,加载模块还包括:计算单元,配置用于将所获取的可执行文件通过预设密钥算法计算得到校验值;加载单元,配置用于响应于校验值与预设值一致,加载该加固应用,其中,预设值由服务器对源程序的可执行文件通过预设密钥算法计算得到。第五方面,本申请提供了一种计算设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当该一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一方法。第六方面,本申请还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一方法。本申请提供的加固应用、加载加固应用的方法和装置,通过从待加固应用的源程序中获取至少一个可执行文件,然后将至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件,接着还将至少一个本文档来自技高网...
加固应用、加载加固应用的方法和装置

【技术保护点】
一种加固应用的方法,其特征在于,所述方法包括:从待加固应用的源程序中获取至少一个可执行文件;将所述至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件;将所述至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密,以作为第二资源文件;基于对资源文件的压缩生成所述待加固应用的安装包文件,其中,所述资源文件包括所述第一资源文件、所述第二资源文件、包括与所述第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件。

【技术特征摘要】
1.一种加固应用的方法,其特征在于,所述方法包括:从待加固应用的源程序中获取至少一个可执行文件;将所述至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件;将所述至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密,以作为第二资源文件;基于对资源文件的压缩生成所述待加固应用的安装包文件,其中,所述资源文件包括所述第一资源文件、所述第二资源文件、包括与所述第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件。2.根据权利要求1所述的方法,其特征在于,所述将所述至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件包括:将各个可执行文件的类加载器分别置换成预定类加载器;将置换类加载器后的所述至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为所述第一资源文件;以及所述资源文件还包括:记录各个可执行文件的类加载器与所置换的自定义类加载器之间的映射关系的第四资源文件。3.根据权利要求1或2所述的方法,其特征在于,所述方法通过调用本地开发工具包的逻辑实现。4.一种加载加固应用的方法,其特征在于,所述方法包括:从所述加固应用的安装包文件获取资源文件,其中,所述资源文件包括:将所述加固应用的至少一个可执行文件按照第一预设加密算法加密后进行拼接生成的第一资源文件,将所述至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密生成的第二资源文件,包括与所述第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件;通过所述第三资源文件中与所述第二预设加密算法相对应的解密算法解密所述第二资源文件,以获取所述第一资源文件中各个可执行文件的文件长度;根据所获取的各个可执行文件的文件长度从所述第一资源文件中获取所述至少一个可执行文件;根据所获取的可执行文件加载所述加固应用。5.根据权利要求4所述的方法,其特征在于,所述资源文件还包括记录各个可执行文件的类加载器与所置换的预设类加载器之间的映射关系的第四资源文件;以及所述根据所获取的可执行文件安装或运行所述加固应用包括:检测各个可执行文件中是否包含所述预定类加载器;若包含,创建所述预定类加载器的对象,用于置换所述映射关系中记载的可执行文件中与所述预定类加载器相应的类加载器。6.根据权利要求5所述的方法,其特征在于,所述根据所获取的可执行文件加载所述加固应用还包括:从所述至少一个可执行文件中获取加固应用入口的应用对象名称;创建与加固应用入口的应用对象名称对应的应用对象;通过所述映射关系将所创建的应用对象的应用信息置换成加固用用的应用信息。7.根据权利要求4-6中任一所述的方法,其特征在于,所述根据所获取的可执行文件加载所述加固应用包括:将所获取的可执行文件通过预设密钥算法计算得到校验值;响应于所述校验值与预设值一致,加载所述加固应用,其中,所述预设值由服务器对源程序的可执行文件通过所述预设密钥算法计算得到。8.一种加固应用的装置,其特征在于,所述装置包括:获取模块,配置用于从待加固应用的源程序中获取至少一个可执行文件;第一生成模块,配置用于将所述至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件;第二生成模块,配置用于将所述至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密,以作为第二资源文件;第三生成模块,配置用于...

【专利技术属性】
技术研发人员:刘仁斐卢华何戬
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1