apk文件的反编译及加固分析

本文探讨了Android APK文件的反编译、重打包、重签名过程,以及APK的加固技术和第三方加固产品的分析。通过相关工具,对某个App进行了实践操作,并提供了参考链接供进一步学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文使用某App的apk文件对Android App的反编译和加固技术进行了初步分析,后续会进行深入的剖析并进行加固产品的开发,本文涉及的相关工具都能在google上正常下载,同时也能在附件中提到的参考链接中下载。

1. apk文件及相关工具准备


1.1 工具准备
apktool: https://github.com/pqy330/apktool
dex2jar: https://github.com/ufologist/onekey-decompile-apk/tree/master/onekey-decompile-apk/_tools/dex2jar
signapk: https://github.com/maks/aosp-signapk
本文工具打包下载链接: http://download.youkuaiyun.com/download/liushaofang/9372646(供自己以后查阅方便,所以设了5分,没分的可以评论中留下Email,我给发过去)
1.2 App准备
http://app.mi.com/download/120336?ref=search
App原始界面如下所示:
App原始主界面图

2. apk文件反编译、重打包及重签名


2.1 源代码反编译
用winzip等解压工具解压apk文件得到classes.dex文件
apk加压缩结果图
将classes.dex文件拷贝到dex2jar目录并使用dex2jar反编译得到源码文件,反编译命令为:dex2jar.bat classes.dex
反编译得到的反编译结果及文件目录结构如下:
dex反编译结果图
反编译目录结构图
使用jd-gui工具查看反编译得到的jar包源码文件如下:
反编译得到的源码目录结构图
2.2 apk反编译
通过命令行采用apktool工具对apk文件进行反编译,反编译命令如下。
apktool.bat d com.zhtc.ipark.app.apk
反编译结果如下图所示。
反编译结果
2.3 修改代码重打包
本文仅仅为了测试只是修改了layout中的一部分,要修改AndroidManifest.xml和代码逻辑有了源码也不算太难吧,重打包命令如下。
apktool.bat b com.zhtc.ipark.app
重打包过程中如果遇到
brut.common.BrutException:at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java)等错误,错误截图如下图所示。
重打包错误信息
可以通过如下方式解决:
尝试将aapt.exe的路径加到属性的Path环境变量中;
尝试分析错误原因针对apk中重打包的错误原因进行处理,本文发现错误是png文件出现错误,因此采用的处理的方式是res\drawable-xhdpi-v4\img.png另存为为PNG文件,并重新用上面的命令进行重打包解决了该问题。重打包结果如下。
重打包成功信息
重打包的结果是得到一个未签名的apk数据包。
2.4 代码打包之后重签名
重打包后的App是没有签名的App,需要采用签名工具进行签名,签名后才能够在Android终端上进行安装,本文使用的签名工具为signapk,签名命令如下。
java -jar signapk.jar testkey.x509.pem testkey.pk8 com.zhtc.ipark.app.apk com.zhtc.ipark.app.signed.apk
签名得到的apk结果如下图所示。
apk签名结果信息
签名之后安装重打包的apk并运行截图如下所示。
cracked文件运行截图

3. apk文件的加固和签名


本文使用的是360加固保进行加固,但是貌似360加固保会在加固的同时插入其他额外的代码,这个还在进一步分析和研究过程中,本文仅仅说明使用360加固保进行加固的过程。加固可以通过 http://jiagu.360.cn/在线完成。加固之后反编译得到的结果如下图所示。
加固APK反编译结果
然后使用360Signer进行签名就得到了加固后的APK文件。

4. 第三方加固产品分析及技术研究


第三方加固产品主要包括:
360加固保
爱加密
梆梆加固
APKProtect
娜迦信息
阿里聚安全

5. 参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值