The invention provides a Android platform application software protection method based on so paper, in this method, decryption and dynamic loading operations on the DEX file on the protected so file, first of all to the protected function in the so file for non symmetric encryption, then the entire protected so file non symmetric encryption, the two keys are stored in the server, with the server authentication technology to ensure the safety of the source code. The field is associated with the section so file in the shell for the random number, increase the static decompilation difficulty, at the same time during the loading of the protected so file related check field is set to 0, increased the difficulty of the attack of dump memory. The so shell file as the custom Linker loaded on protected so files loaded on their own, and protected so files Program Header all set 0 to prevent memory dump attacks and Linker attacks to modify the system.
【技术实现步骤摘要】
一种基于so文件加壳的Android平台应用软件保护方法
本专利技术涉及软件信息安全研究领域,特别涉及一种基于so文件加壳的Android平台应用软件保护方法。
技术介绍
Android系统是Google于2007年11月推出的基于Linux、开放源码的智能手机操作系统。该系统自推出以来,以其开源的特性席卷了全球的移动智能终端市场,得到大批开发者以及许多厂商的支持,已经逐步成为了移动终端最普及的操作系统。虽然Android平台采用了多层次的安全保护机制,但由于Android平台自身的缺陷,使用易于反编译的Java语言,其软件仍然受到来自各方面的威胁,其中最重要的威胁便是逆向攻击。即通过逆向工程破解软件的关键部位,从而获取软件信息或实施一系列恶意攻击。逆向Android软件的一般步骤是:首先是对其进行反编译,然后阅读反汇编代码,如果有必要还会对其进行动态调试,找到突破口后注入或直接修改反汇编代码,最后重新编译软件进行测试。处于Java层的apk应用极容易被逆向从而得到Java源代码,而Native层的原生程序具有较高的安全性,同时直接和CPU打交道,不仅逆向难度大,而且程序的性能得到提高。由于Native层的so文件难被静态反编译,所以针对so文件的攻击大多是动态调试和内存dump分析,甚至可以通过修改系统Linker来实现对so文件的自动化攻击从而获得解密的数据。
技术实现思路
为了解决上述存在的问题,本专利技术提出了一种基于so文件加壳的Android平台应用软件保护方法,该方法修改so壳文件和对受保护so文件的关键函数进行加密,同时so壳文件作为自定义Li ...
【技术保护点】
一种基于so文件加壳的Android平台应用软件保护方法,其特征在于,所述方法包括以下步骤:A、加密过程(1)对受保护so文件动态加载dex文件;(2)对受保护so文件及其函数进行非对称加密,并将密钥上传到服务器;(3)对受保护so文件和so壳文件进行修改;(4)受保护so文件加密后,将其密文嵌入到so壳文件尾部,然后将so壳文件作为自定义Linker替代系统Linker对受保护so文件进行加载;B、解密过程(5)程序运行时,so壳文件首先对受保护so文件使用从服务器返回的密钥进行解密,接着作为Linker运行和对受保护so文件中的函数使用服务器返回的密钥进行解密,加载完成后,对自身和受保护so文件进行修改;(6)受保护so文件对dex文件进行解密后在Native层动态加载其dex文件。
【技术特征摘要】
1.一种基于so文件加壳的Android平台应用软件保护方法,其特征在于,所述方法包括以下步骤:A、加密过程(1)对受保护so文件动态加载dex文件;(2)对受保护so文件及其函数进行非对称加密,并将密钥上传到服务器;(3)对受保护so文件和so壳文件进行修改;(4)受保护so文件加密后,将其密文嵌入到so壳文件尾部,然后将so壳文件作为自定义Linker替代系统Linker对受保护so文件进行加载;B、解密过程(5)程序运行时,so壳文件首先对受保护so文件使用从服务器返回的密钥进行解密,接着作为Linker运行和对受保护so文件中的函数使用服务器返回的密钥进行解密,加载完成后,对自身和受保护so文件进行修改;(6)受保护so文件对dex文件进行解密后在Native层动态加载其dex文件。2.如权利要求1所述的方法,其特征在于,在步骤(2)中,先对加载受保护so文件期间的相关检验字段置为0后再进行加密,对其加密的算法是AES算法。3.如权利要求2所述的方法,其特征在于,在...
【专利技术属性】
技术研发人员:凌捷,林擎宇,谢锐,周喨,罗玉,龚怡,
申请(专利权)人:广东工业大学,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。