[发明专利]一种基于so文件加壳的Android平台应用软件保护方法有效
申请号: | 201710324703.3 | 申请日: | 2017-07-07 |
公开(公告)号: | CN107273723B | 公开(公告)日: | 2022-01-28 |
发明(设计)人: | 凌捷;林擎宇;谢锐;周喨;罗玉;龚怡 | 申请(专利权)人: | 广东工业大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 广东广信君达律师事务所 44329 | 代理人: | 杨晓松 |
地址: | 510062 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 so 文件 android 平台 应用软件 保护 方法 | ||
1.一种基于so文件加壳的Android平台应用软件保护方法,其特征在于,所述方法包括以下步骤:
A、加密过程
(1)对受保护so文件动态加载dex文件;
(2)对受保护so文件中的函数进行非对称加密,并将密钥上传到服务器;
(3)对受保护so文件和so壳文件进行修改,同时对修改后的受保护so文件进行非对称加密,并将密钥上传到服务器;
(4)受保护so文件加密后,将其密文嵌入到so壳文件尾部,同时对dex文件加密,加密后的密文和密钥嵌入资源文件中;
B、解密过程
(5)程序运行时,so壳文件首先对受保护so文件使用服务器密钥进行解密,然后将so壳文件作为自定义Linker替代系统Linker对受保护so文件进行加载,接着作为Linker运行和对受保护so文件中的函数使用服务器密钥进行解密,加载完成后,对自身和受保护so文件进行修改;其中,程序运行时系统Linker先加载so壳文件;
(6)解密后的受保护so文件从资源文件中找到加密的dex文件和资源文件密钥,使用资源文件密钥对dex文件进行解密;
(7)受保护so文件对dex文件进行解密后在Native层动态加载其dex文件;其中,将so壳文件作为自定义Linker加载解密后的受保护so文件时跳过验证文件操作;
其中,由系统Linker加载so壳文件后,把控制权移交给so壳文件。
2.如权利要求1所述的方法,其特征在于,在步骤(2)中,先对加载受保护so文件期间的相关检验字段置为0后再进行加密,对其加密的算法是AES算法。
3.如权利要求2所述的方法,其特征在于,在步骤(3)中还包括将so壳文件中部分字段置为随机数的步骤。
4.如权利要求3所述的方法,其特征在于,在步骤(5)中由so壳文件剥离出加密的受保护so文件,再对其进行解密和函数解密。
5.如权利要求4所述的方法,其特征在于,在步骤(5)中,加载完成后对so壳文件和受保护so文件的修改内容是把其中的Program header全部置为0。
6.如权利要求1所述的方法,其特征在于,在步骤(3)中,对受保护so文件的修改内容是把文件中的e_ident[16]、e_type、e_machine、e_version、e_flag检验相关字段全部置为0,对so壳文件的修改内容是把so壳文件中的e_entry、e_shoff、e_shentsize、e_shnum和e_shstrndx字段置为随机数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工业大学,未经广东工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710324703.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种图形图像压缩系统
- 下一篇:会话分割方法及装置