[发明专利]一种android应用程序防盗版的方法及系统有效
申请号: | 201310426325.1 | 申请日: | 2013-09-18 |
公开(公告)号: | CN103473488A | 公开(公告)日: | 2013-12-25 |
发明(设计)人: | 霍梅梅;吴明晖;蔡建平;吴剑钟;孙霖;王云武 | 申请(专利权)人: | 浙江大学城市学院 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 杭州宇信知识产权代理事务所(普通合伙) 33231 | 代理人: | 张宇娟 |
地址: | 310015 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 应用程序 盗版 方法 系统 | ||
技术领域
本发明涉及移动终端技术领域,尤其涉及一种android应用程序防盗版的方法及系统。
背景技术
随着移动互联网的飞速发展,移动终端操作系统已经形成ios与android两大主阵营。基于android操作系统的应用程序采用主流编程语言Java。Java程序编译后生成字节码,运行在虚拟机上。对于android系统,采用Java编写的应用程序经编译后运行在Dalvik VM上的DEX字节码,应用程序所有的字节码文件打包成APK文件安装到android系统。当前,Java编程语言工具并没有对Java字节码采取有效保护措施,同时Java字节码文件的结构本身特点使其易于被逆向工程,从而存在源码安全问题。
因此,在目前的市场上,android应用程序正面临严重的盗版问题,被盗版的应用程序可能被植入病毒、广告,还可能被二次打包以及篡改,这些都严重损害了应用程序的开发者以及消费者的权益。针对这一情况,移动互联网的各个产业链都在做一些努力,来保护android应用程序的安全。目前,普遍采用的加密技术手段有:代码混淆、加密、水印等,但采用这些技术手段都给开发者带来了一定的工作量,而且即使采用了这些技术,应用程序仍然可以被逆向。Google曾经有提供LVL的反盗版机制,但很快就被破解了。因此,目前android应用市场上的盗版行为仍然十分盛行。
发明内容
为解决上述问题,本发明提出了一种android应用程序防盗版的方法及系统,该方法不增加开发者的工作量,能过有效的防止应用程序被逆向工程和盗版。
为实现上述目的,本发明的技术方案为:
一种android应用程序防盗版的方法,包括如下步骤:
S10:将android应用程序拆分成两部分代码:代码一中加入一个桩类(Stub.java)代码后编译成生成文件一;代码二编译生成文件二,上传所述两部分文件至服务器;
S20:客户端下载运行所述android应用程序的文件一,其中桩(Stub)首先运行判断该客户端是否是第一次运行该应用程序,如果是则继续以下步骤,否则执行步骤S60;
S30:客户端向服务器申请认证和下载文件二,服务器对所述申请进行认证,认证通过则继续,否则终止程序运行;
S40:服务器对应用程序对应的文件二进行加密并发送给客户端;
S50:客户端所述应用程序文件一的桩(Stub)解密文件二并将其存入到安全空间;
S60:客户端启动可加载内核模块(LKM)程序判断应用程序桩(Stub)是否有权限访问安全空间的文件二,如果判断通过,则加载文件二,应用程序运行,否则终止程序运行。
其中,所述代码二为应用程序的的启动代码或者核心算法,所述代码一为应用程序除代码二以外的其它代码。
其中,所述文件一为APK文件,文件二为JAR文件。
进一步的,所述安全空间是在客户端的应用程序存储空间内开辟的一块存储区域。
进一步的,所述步骤S60包括:可加载内核模块程序(LKM)判断应用程序进程ID号是否与安全空间中对应的文件二提供的ID号一致,如果一致则加载运行,否则终止应用程序运行。
此外,本发明还提供了一种采用上述方法的android应用程序防盗版系统,包括服务器端和客户端,其中所述服务器端包括:
存储模块:用于存储程序发布者上传的android应用程序的文件一和文件二;其中:所述文件一由android应用程序被拆分成两部分后的代码一加入一个桩类(Stub.java)代码后编译成生成,所述文件二由应用程序的另一部分代码二编译生成;
认证模块:对客户端的申请进行认证,认证通过则启动加密模块,否则终止程序运行;
加密模块:对文件二进行加密并将加密后的文件二发送给客户端;
所述客户端包括:
判断模块:判断下载的android应用程序的文件一是否是第一次在该客户端运行,如果是则向服务器端申请认证和下载文件二,否则启动可加载内核模块程序(LKM);
安全空间:设置于客户端的应用程序存储空间内的一块存储区域,只有获得授权的应用程序进程可以访问所述安全空间;
解密模块:对从服务器端收到的文件二进行解密并将其存入安全空间;
可加载内核模块(LKM):判断应用程序桩(Stub)是否有权限访问安全空间的文件二,如果判断通过,则加载文件二,应用程序运行,否则终止程序运行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学城市学院,未经浙江大学城市学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310426325.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:真空吸尘器
- 下一篇:一种强心健体吊瓜子仁粉的制作方法