什么是加壳?加壳就是在二进制程序中植入一段代码,运行时优先取得程序控制权,然后做一些额外的工作,它的作用是阻止对程序反汇编分析,从而达到它不可告人的目的,加壳技术也常用来保护软件版权,有效防止软件被破解。众所周知,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 加壳技术请到几维安全官网查阅。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.