[发明专利]加固应用、加载加固应用的方法和装置在审
申请号: | 201710107806.4 | 申请日: | 2017-02-27 |
公开(公告)号: | CN106897587A | 公开(公告)日: | 2017-06-27 |
发明(设计)人: | 刘仁斐;卢华;何戬 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/14;G06F21/60 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司11204 | 代理人: | 王达佐,马晓亚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加固 应用 加载 方法 装置 | ||
技术领域
本申请涉及计算机技术领域,具体涉及信息安全技术领域,尤其涉及加固应用、加载加固应用的方法和装置。
背景技术
终端应用发布之后,用户可以通过反编译工具查看到应用的源程序代码。一些用户查看应用的源程序代码以窃取他人劳动成果,或者通过在代码中插入其他程序(如病毒代码)等操作对应用的源程序代码进行加工,干扰其他用户对终端应用的正常使用,甚至侵犯其他用户的信息安全。现有技术中,通常将壳程序和终端应用的源程序拼接在一起,并且将终端应用的源程序中可执行文件(executable file,如dex文件)的长度(如字节数)放置于拼接文件的末尾。这种终端应用的加固方法,往往适用包含一个可执行文件的终端应用,当终端应用有多个可执行文件时,无法和壳程序拼接。因此,需要提供一种能够对包含一个或多个可执行文件的终端应用进行加固的通用方法。
发明内容
本申请的目的在于提出一种改进的加固应用的方法和装置,以及加载加固应用方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种加固应用的方法,该方法包括:从待加固应用的源程序中获取至少一个可执行文件;将该至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件;将该至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密,以作为第二资源文件;基于对资源文件的压缩生成待加固应用的安装包文件,其中,资源文件包括上述第一资源文件、第二资源文件、包括与第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件。
在一些实施例中,将该至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件包括:将各个可执行文件的类加载器分别置换成预定类加载器;将置换类加载器后的至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件;以及,上述资源文件还包括:记录各个可执行文件的类加载器与所置换的自定义类加载器之间的映射关系的第四资源文件。
在一些实施例中,本申请提供的加固应用的方法通过调用本地开发工具包的逻辑实现。
第二方面,本申请还提供了一种加载加固应用的方法,该方法包括:从加固应用的安装包文件获取资源文件,其中,该资源文件包括:将加固应用的至少一个可执行文件按照第一预设加密算法加密后进行拼接生成的第一资源文件,将该至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密生成的第二资源文件,包括与上述第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件;通过第三资源文件中与第二预设加密算法相对应的解密算法解密第二资源文件,以获取第一资源文件中各个可执行文件的文件长度;根据所获取的各个可执行文件的文件长度从第一资源文件中获取至少一个可执行文件;根据所获取的可执行文件加载所述加固应用。
在一些实施例中,上述资源文件还包括记录各个可执行文件的类加载器与所置换的预设类加载器之间的映射关系的第四资源文件;以及,根据所获取的可执行文件安装或运行所述加固应用包括:检测各个可执行文件中是否包含预定类加载器;若包含,创建预定类加载器的对象,用于置换映射关系中记载的可执行文件中与预定类加载器相应的类加载器。
在一些实施例中,根据所获取的可执行文件加载所述加固应用还包括:从上述至少一个可执行文件中获取加固应用入口的应用对象名称;创建与加固应用入口的应用对象名称对应的应用对象;通过上述映射关系将所创建的应用对象的应用信息置换成加固用用的应用信息。
在一些实施例中,根据所获取的可执行文件加载加固应用包括:将所获取的可执行文件通过预设密钥算法计算得到校验值;响应于校验值与预设值一致,加载上述加固应用,其中,预设值由服务器对源程序的可执行文件通过预设密钥算法计算得到。
第三方面,本申请还提供了一种加固应用的装置,该装置包括:获取模块,配置用于从待加固应用的源程序中获取至少一个可执行文件;第一生成模块,配置用于将该至少一个可执行文件通过第一预设加密算法加密后进行拼接以作为第一资源文件;第二生成模块,配置用于将该至少一个可执行文件的文件长度按照相应可执行文件的拼接顺序排列后按照第二预设加密算法加密,以作为第二资源文件;第三生成模块,配置用于基于对资源文件的压缩生成待加固应用的安装包文件,其中,该资源文件包括上述第一资源文件、第二资源文件、包括与第一预设加密算法、第二预设加密算法分别相对应的解密算法的第三资源文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710107806.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:软件许可管理方法、软件保护方法及装置
- 下一篇:一种标签函数的处理方法及装置