Android apk加壳技术的工作流程及实现步骤

来源:互联网 发布:mac使用java开发 编辑:程序博客网 时间:2024/05/20 20:47

什么是加壳?加壳就是在二进制程序中植入一段代码,运行时优先取得程序控制权,然后做一些额外的工作,它的作用是阻止对程序反汇编分析,从而达到它不可告人的目的,加壳技术也常用来保护软件版权,有效防止软件被破解。众所周知,Android应用为了有效防止被反编译以及二次打包,会使用Android apk加壳技术实现安全保护。

00000.png

加壳程序工作流程:

1、加密源程序APK文件为解壳数据

2、把解壳数据写入解壳程序Dex文件末尾,并在文件尾部添加解壳数据的大小。

3、修改解壳程序DEX头中checksumsignature 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加壳技术请到几维安全官网查阅。

原创粉丝点击