[发明专利]Android应用动态链接库的加固方法及相关设备有效
申请号: | 201910214661.7 | 申请日: | 2019-03-20 |
公开(公告)号: | CN109960510B | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 肖巍;廖兴龙 | 申请(专利权)人: | 北京智游网安科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/445;G06F21/14 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 王永文 |
地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | android 应用 动态 链接 加固 方法 相关 设备 | ||
本发明提供了一种Android应用动态链接库的加固方法及相关设备,通过利用编译器编译生成带有bitcode信息的动态链接库文件;提取所述动态链接库文件中含有的bitcode信息及编译信息;利用编译器对所述提取的bitcode信息做混淆处理,并将混淆处理后的bitcode信息和编译信息相结合,编译生成新动态链接库文件。本发明通过在动态链接库文件中添加中间代码信息,再对中间代码信息进行混淆处理,生成新的动态链库文件,利用中间代码和代码混淆处理提高了破解动态链接库的难度,从而提高了动态链接库的安全性,而且本发明所提供的方法不依赖源代码,操作简单,使用方便。
技术领域
本发明涉及信息安全技术领域,尤其涉及的是一种Android应用动态链接库的加固方法及相关设备。
背景技术
随着Android应用的普及,并且由于Android系统源代码的开放性,越来越多的公司和个人都相继开发出自己的Android应用并上传到应用市场。但同时也是由于Android本身的开放性,导致可以很容易获取到一个未经防护处理的应用源代码。故此,开发人员首先想到的是把应用里的核心逻辑和代码放到So库中,用于保护源代码,防止被轻易窃取。但通过IDA等工具却可以静态分析和动态调试So库的代码,分析其中的逻辑和源码,从而分解出So库的代码,因此需要开发一种用来防护So库的方法。
传统的So库防护技术,主要是对So库进行加壳或者在编译的过程中通过编译器进行代码混淆。加壳方式有限,技术固定,容易被破解,而通过编译器在编译过程中进行混淆,需要有客户源代码,或者把编译器给到客户,客户自己使用,使用门槛较高,出了问题也不方便排查。
因此,现有技术有待于进一步的改进。
发明内容
鉴于上述现有技术中的不足之处,本发明的目的在于为用户提供一种Android应用动态链接库的加固方法及相关设备,克服现有技术中加壳保护的技术固定,易于破解,而采用代码混淆需要客户方配合操作,操作不便的缺陷。
本发明提供的第一实施例为一种Android应用动态链接库的加固方法,其中,包括:
利用编译器编译生成带有bitcode信息的动态链接库文件;
提取所述动态链接库文件中含有的bitcode信息及编译信息;
利用编译器对所述提取的bitcode信息做混淆处理,并将混淆处理后的bitcode信息和编译信息相结合,编译生成新动态链接库文件。
可选的,所述利用编译器编译生成带有bitcode信息的动态链接库文件的步骤包括:
利用编译器编译动态链接库文件的同时,同步开启编译器的嵌入bitcode参数选项。
可选的,所述将混淆处理后的bitcode信息和编译信息相结合,编译生成新动态链接库文件的步骤包括:
将混淆后的bitcode信息及编译信息中的编译参数进行编译处理,得到代码混淆处理后的多个目标文件;
将多个所述目标文件与编译信息中含有的链接参数相结合,利用编译器重新编译,生成新动态链接库文件。
可选的,所述混淆处理所对应的混淆处理方法包括:
虚假控制流、指令等效替换、控制流扁平化、字符串加密、控制流间接化、分裂基本块中的一种或多种方法。
可选的,所述编译器为clang编译器。
可选的,所述利用编译器编译生成带有bitcode信息的动态链接库文件的步骤之后,还包括:
将所述动态链接库文件进行签名打包,并将打包文件上传至云平台。
可选的,所述方法还包括步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910214661.7/2.html,转载请声明来源钻瓜专利网。