Android apk加壳技术的工作流程及实现步骤
什么是加壳?加壳就是在二进制程序中植入一段代码,运行时优先取得程序控制权,然后做一些额外的工作,它的作用是阻止对程序反汇编分析,从而达到它不可告人的目的,加壳技术也常用来保护软件版权,有效防止软件被破解。众所周知,Android应用为了有效防止被反编译以及二次打包,会使用Android apk加壳技术实现安全保护。
加壳程序工作流程:
1、加密源程序APK文件为解壳数据
2、把解壳数据写入解壳程序Dex文件末尾,并在文件尾部添加解壳数据的大小。
3、修改解壳程序DEX头中checksum、signature 和file_size头信息。
4、修改源程序AndroidMainfest.xml文件并覆盖解壳程序AndroidMainfest.xml文件。
Android apk加壳技术实现步骤:
1、 apktool 反编译apk文件,得到反编译后文件夹(assets(项目原始的assets),smali(项目的经过特殊处理的代码库,后缀smali),res(项目原始res),AndroidManifest.xml(项目原始manifest文件))
2、 创建一个新的android项目,实现相关的类(尽量不去使用xml,所有需要用到的内容用代码实现),并生成apk文件
3、使用apktool反编译2(步骤2)中生成的apk文件,得到smali文件夹
4、将3(步骤3)中得到的smali文件夹加入1(步骤1)中的smali文件夹,并修改1(步骤1)中的AndroidManifest.xml,比如说设置应用从自己的activity启动,执行部分代码后再跳转至原始应用的启动页。
5、使用apktool对处理完的文件夹进行编译,得到apk文件(未签名),然后再进行签名,得到已签名apk文件。
几维安全平台是专业的Android apk加壳保护平台,Android应用主要保护是在dex加壳的基础上实现的,通过给Android apk加壳实现Android应用加密保护,防止Android apk被反编译以及破解。更多Android apk加壳技术请到几维安全官网查阅。