APP加壳
APP加壳
目的:
- 熟悉常用Android编译工具的使用
原理:
APP加壳是在二进制的程序中植入一段代码,在程序的外面再包裹上一段代码,在运行的时候优先取得程序的控制权,保护里面的代码不被非法修改或反编译。
AndroidDex文件加壳涉及到三个程序:①加壳程序:对源Apk进行加密和脱壳项目的Dex的合并;②脱壳程序:解密壳数据;③源程序:需要加壳处理的被保护代码。
APP加壳的优势在于保护核心代码,提高破解的难度,还可以缓解代码注注入攻击。缺点是影响程序的运行效率。
过程:
导入项目ForceApkObj,点击源程序项目。
右键项目,选择Android Tools
,Export Signed Application Package
默认,点击next
选择create keystore
,点击browse选择目录,密码随便设(123456),填完参数点击next
创建密钥信息(SimpleEdu11;123456;123456;100;SimpleEdu),点击next
选择APK生成位置,点击Browse,默认为SimpleEdu11
点击finish完成操作
成功生成源程序APK文件
右击脱壳程序项目ReforceApk,点击Android Tools
,Export UnSigned Application Package
接下来的步骤和源程序相同,生成脱壳程序APK
右击脱壳程序apk,解压到…,得到解压文件
修改dex文件的名称为ForceApkObj.dex
将FoceApkOBj.dex文件与ForceApkObj.apk文件放在C:\AndroidSec\SimpleEdu11\DexShellTools\force,如下为加壳程序的代码,它的作用是将源程序APK和脱壳程序dex文件合成新的dex文件
点击按键
选择Debug As
,2
成功运行
按照导入的文件路径,找到生成的dex文件
右击脱壳程序,用压缩工具打开
将class文件替换脱壳程序中的dex文件
重新签名,将之前替换好的APK放入APK重签名
文件中
双击签名程序后生成NewApk.apk