android apk 防止反编译技术第三篇 – 加密(转)
接下来我们将介绍另一种简单适用的防止 apk 反编译的技术 – 对 apk 进行伪加密。
一、伪加密技术原理
我们知道 android apk 本质上是 zip 格式的压缩包,我们将 android 应用程序的后缀.apk 改为.zip 就可以用解压软件轻松的将 android 应用程序解压缩。在日常生活或者工作中,我们通常为了保护我们自己的文件在进行压缩式都会进行加密处理。这样的方法对于 android apk 同样适用。原理很简单,在 zip 的文件格式中有一个位用来标示该 zip 压缩文件中的文件是否被加密,我们只要找到该标志位将其置 1 就可以实现我们的目的。而 android 的包安装服务(PackageManagerService)在进行 apk 安装时并不关心这个加密位(暂时我们就这么叫它吧)可以进行正常的安装并且也不会影响 apk 的运行。
二、zip 文件格式
zip 的文件格式通常有三个部分组成:压缩文件源数据、压缩目录源数据、目录结束标识。这三个部分中和我们说的加密位有关的是压缩目录源数据部分,我们接下来详细介绍这一部分。
压缩目录源数据部分记录着所有的压缩目录源数据。其结构如下:
该结构中的 General purpose bit flag 部分的第 0 位如果置 1,标识该压缩包被加密;置为 0 标识该压缩包没有被加密。
三、具体实施
我们可以利用 ZipCenOp.jar 这个 jar 包对 apk 进行加密和解密操作(也有用 python 实现这个操作的这里我们不做介绍)。
(1) 对 apk 进行加密
加密后,我们用解压缩软件进行解密会看如下的提示信息:
用 apktool 进行反编译会提示如下的错误信息:
加密后 apk 是可以正常的安装和运行的。
(2) 对 apk 进行解密
解密对我们来说没有多大的用途,只是了解一下。
本期内容就到这里啦~以上内容均可在 方包博客「http://fang1688.cn」 网站直接搜索名称访问哦。欢迎感兴趣的小伙伴试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️
欢迎大家加入方包的「优派编程」学习圈子,和多名小伙伴们一起交流学习,向方包 1 对 1 提问、跟着方包做项目、领取大量编程资源等。Q群「763256989」欢迎想一起学习进步的小伙伴~
另外方包最近开发了一款工具类的小程序「方包工具箱」,功能包括:抖音、小红书、快手去水印,天气预报,小说在线免费阅读(内含上万部热门小说),历史今天,生成图片二维码,图片识别文字,ai伪原创文章,数字摇号抽奖,文字转语音MP3功能...
定期分享 it编程干货