[发明专利]一种ART下使用自修改技术进行软件保护的方法在审
申请号: | 201811114145.9 | 申请日: | 2018-09-25 |
公开(公告)号: | CN109344577A | 公开(公告)日: | 2019-02-15 |
发明(设计)人: | 牛伟纳;张小松;王恺 | 申请(专利权)人: | 四川大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 成都弘毅天承知识产权代理有限公司 51230 | 代理人: | 邹敏菲 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 关键代码 软件保护 状态机 打包 编译 修复 保护应用 代码集成 动态加载 算法生成 信息生成 抽离 算法 抽取 取出 转化 | ||
本发明公开了一种ART下使用自修改技术进行软件保护的方法,包括步骤1:选取被保护应用的待保护关键代码;步骤2:将步骤1所选关键代码进行抽取;步骤3:将步骤2抽取出的关键代码进行破坏,并转化为动态加载的dex文件;步骤4:根据步骤3处理所得的代码和最初的关键代码,生成用于自修改修复的native代码;步骤5:使用自修改状态机算法对步骤4中的native代码进行保护;步骤6:对步骤5生成的代码集成编译并打包,生成最终被保护的APK。首先将选取的关键代码进行抽离,再将关键代码构造出被保护的dex,根据构造时所进行的破坏信息生成相应的自修改修复的native代码,对此native代码运用自修改状态机算法生成最终的so库;最后集成编译打包生成最终被保护的APK。
技术领域
本发明属于软件技术领域,具体涉及一种ART下使用自修改技术进行软件保护的方法。
背景技术
随着移动网络以及手机行业的迅速发展,智能手机已经成为人们生活必不可少的部分,而Android系统作为移动终端中最为流行的系统,其安全问题也越发的突出。据《阿里聚安全2016年报》显示,2016年度,Android平台约10台设备就有一台染毒,设备感染率达10%,89%的热门应用存在仿冒,移动欺诈损失超数亿美金。应用遭到逆向破解,被重新打包,知识产权遭到侵犯的现象屡有发生,严重的损害了开发者以及用户的利益。为了对抗逆向攻击者,保护Android软件的安全,国内外学者提出了许多Android软件保护技术,例如混淆、加壳、虚拟机保护等。Android新版本ART虚拟机的诞生,使原本的一些应用保护方法受到了严重的影响而不再适用或受到局限。
Android应用程序很容易遭到逆向,由于恶意逆向工程的攻击,许多Android应用程序被篡改并重新打包成恶意应用。软件逆向工程是分析程序结构及其行为,来了解程序是如何运作与实现的。逆向工程可以通过了解现有的应用程序的结构与行为,以一个相对较低的代价创造出一个新的有竞争力的应用程序。不仅如此,逆向工程可以用来篡改或破解移动应用程序来获取非法利益,如绕过认证或支付。控制医疗设备的黑客通过篡改移动应用甚至可以威胁到人的生命。攻击者常用的逆向手段大致分为静态分析和动态分析。静态分析,是指在不运行程序的情况下,采用词法分析、语法分析等技术手段对程序分析生成程序的反汇编代码,通过阅读反汇编代码来了解程序功能的一种技术。动态分析,较之静态分析而言,难度要大一些,通过调试程序,了解程序运行时的情况,在关键位置下断点,知晓关键位置的数据,动态的分析程序。一般来说,对抗静态分析,可以采用混淆,加密,加壳等手段。而对抗动态分析,需要反调试技术,以及虚拟机检测技术,防止内存dump的措施等。
代码自修改技术,是指在程序可以在运行期间修改自身的指令,最早由日本研究者于2003年提出。自修改技术在PC端的应用较为普遍,现在已比较成熟。根据《A softwareprotection method based on instruction camouflage》所述,自修改代码(self-modifying code,SMC)技术在软件保护等领域有着广泛应用,防止软件破解等代码分析人员使用逆向工具对程序进行静态分析,增加逆向人员对受保护代码分析的难度。对于Android平台下代码自修改的研究,要晚很多,2013年,Bluebox Security网站的一篇文章为自修改技术在Android移动端的应用提供了启示。在文献《基于Android平台的软件保护策略的研究与实现》中,张晓证明了在Android平台下自修改的可行性,并结合Android应用签名验证、完整性验证,提出一种二次SMC的软件保护策略。在文献《基于自修改字节码的Android软件保护技术研究》中,高琦等人,研究并实现了改变代码执行流程的自修改,为Android软件保护提供了新的思路。文献《Android Security Analysis ChallengeTampering DalvikBytecode During Runtime》提出了一种运用自修改的混淆方法,并对应用的执行效率影响不大。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811114145.9/2.html,转载请声明来源钻瓜专利网。