[发明专利]一种程序代码安全防护方法、装置及存储介质有效
申请号: | 202010791546.9 | 申请日: | 2020-08-07 |
公开(公告)号: | CN112114809B | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 彭小虎;闫浩;陈妙瑛;郭小春;张翔;钟华 | 申请(专利权)人: | 厦门安胜网络科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/73;G06F21/12 |
代理公司: | 厦门福贝知识产权代理事务所(普通合伙) 35235 | 代理人: | 陈远洋 |
地址: | 361008 福建省厦门市集美*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序代码 安全 防护 方法 装置 存储 介质 | ||
本发明提出了一种程序代码安全防护方法、装置及存储介质,该方法包括:生成步骤,对java程序代码中需要隐藏的函数进行标注后生成native函数;编译步骤,将所述native函数生成C/C++代码并编译为so文件;重定向步骤,在所述java程序代码中对需要隐藏的函数的调用重定向为对所述native函数的调用以生成重定向后的java程序代码;打包步骤,对重定向后的java程序代码进行编译生成apk文件,将所述so文件和apk文件打包在一起。本发明通过干扰Java层函数的交叉引用的方法来降低代码的可读性,即对要隐藏的逻辑链中的每个Java函数的生成一个对应的native函数,并将Java函数的调用全部替换成对应的native函数的调用,这样,破解者无法找到Java函数之间的调用关系,提高了程序代码的安全性。
技术领域
本发明涉及程序安全防护技术领域,具体涉及一种程序代码安全防护方法、装置及存储介质。
背景技术
目前,任何一个复杂的程序都是由很多个复杂的模块组合而成的,程序的各个模块与模块之间互相调用,错综复杂。对于程序的破解者来说,破解后的第一步,就是通过分析函数之间的调用来找到模块之间的关系。
在Android平台开发常用的语言主要有Java、C、C++这三种,其中Java层的语言会被编译打包成dex文件,而由C/C++语言编写的代码会被编译成so动态库文件。通过JNI,我们可以实现Java层和Native(C/C++)层之间代码的相互调用。
尽管Google提供了NDK可以让我们通过C/C++来编写Android程序代码,但是它不可避免地会增加开发过程的复杂性,因此市面上绝大多数的应用程序的代码都主要是采用Java语言编写。相对由C/C++编译得到的so文件,由Java编译得到的dex文件更容易被反编译和还原。
事实上,市面上针对Android程序的反编译工具已经不下于十种,而那些高级的反编译工具都自带了函数的交叉引用分析的功能,程序破解者通过分析函数之间的交叉引用就很容易理解程序作者的意图。
不管在哪种平台的逆向的分析过程中,静态分析永远是必不可少的一步,也是非常重要的一步;静态分析的最主要的目的就是通过分析函数之间的调用来分析代码的逻辑,对于被成功反编译的Java代码来说,这无疑是将代码逻辑赤裸的呈现在别人面前。
目前,市面上针对Java层代码更容易被反编译分析的防护措施主要有两种:
一种是代码混淆,该方案主要用一些毫无意义的字符序列来替换源代码中的类名、方法名、变量名等。其缺陷为:这种方式并没有增加代码被反编译的难度,只是反编译出来的代码难以阅读,增加代码理解的难度,破解者仍能通过自行标记类名、方法名等方式来阅读功能代码。
另外一种是代码加固,简单来说就是对源apk的dex文件进行加密,然后套上一层壳,等到实际运行的时候再由壳对加密的dex文件进行解密并加载运行。其缺陷为:随着反编译的技术不断更新,针对市面上的不同的加固方案也已经有了一整完整套的脱壳流程;比如,直接dump出内存中解密后的dex文件再进行反编译。因此,加固方案在破解者面前也变得如同虚设。
发明内容
本发明针对上述现有技术中一个或多个技术缺陷,提出了如下技术方案。
一种程序代码安全防护方法,该方法包括:
生成步骤,对java程序代码中需要隐藏的函数进行标注后生成native函数;
编译步骤,将所述native函数生成C/C++代码并编译为so文件;
重定向步骤,在所述java程序代码中对需要隐藏的函数的调用重定向为对所述native函数的调用以生成重定向后的java程序代码;
打包步骤,对重定向后的java程序代码进行编译生成apk文件,将所述so文件和apk文件打包在一起。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门安胜网络科技有限公司,未经厦门安胜网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010791546.9/2.html,转载请声明来源钻瓜专利网。