Android Apk反编译系列教程(二)APK重打包

教程导航

背景简介

APK反编译分析的时候,难免需要对APK进行重打包来辅助反编译的分析。比如通过重打包给APK添加可调试功能或者添加可抓https包的功能,都需要应用到重打包的技术。

操作步骤

(一)APKTool反编译

// 清除framwork,避免framwork过期,拉取最新的framwork资源
apktool empty-framework-dir --force
// 开始反编译
apktool d -f org.fedorahosted.freeotp.apk
复制代码

(二)修改反编译的资源代码或者smali代码

以反编译的包支持debug和支持charles https抓包为例

(1)修改manifest

 <application
        // 支持debug
        android:debuggable="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        // 支持https抓包
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
复制代码

(2)在res目录下新建xml文件夹,新建network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>
复制代码

(三)重新编译APK

(1)apktool编译:编译修改后的代码生成新的apk

apktool b org.fedorahosted.freeotp -o new.apk
复制代码

(3)zipalign对齐:将新生成的apk对齐

zipalign -f -v -p 4 new.apk new_zip_align.apk
复制代码

(4)apksigner签名:只有签名后的apk才可以安装

  • --ke:签名文件
  • --ks-key-alias:签名文件alias
  • --ks-pass pass:112112:签名文件密码
apksigner sign --ks /Users/weishenhong/Desktop/wsh/code/android/android_learning/app/keystore --ks-key-alias key0 --ks-pass pass:112112 --out rebuild_signed.apk new_zip_align.apk
复制代码

(5)安装apk

adb install -r -t rebuild_signed.apk
复制代码

至此,你重打包的apk就成功安装了。

相关链接

转载于:https://juejin.im/post/5cb31b89f265da039955cef0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值