什么是加壳?加壳就是在二进制程序中植入一段代码,运行时优先取得程序控制权,然后做一些额外的工作,它的作用是阻止对程序反汇编分析,从而达到它不可告人的目的,加壳技术也常用来保护软件版权,有效防止软件被破解。众所周知,Android 应用为了有效防止被反编译以及二次打包,会使用 Android apk 加壳 http://www.kiwisec.com/ 技术实现安全保护。
加壳程序工作流程:
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 加壳技术请到几维安全官网查阅。
1
chenyiping1995 2017-06-06 15:48:08 +08:00 via Android
@Livid 这算是硬广么
|
2
Livid MOD |