Android逆向(Apktool)

1. 安装 apktool

✅ Windows 安装

1️⃣ 下载 apktool.jarapktool.bat

  • apktool 官方 GitHub
  • 下载 apktool.jarapktool.bat 放入 C:\Windows\

2️⃣ 测试是否安装成功

apktool -version

2. 反编译 APK

使用 apktool 反编译 APK(解包):

apktool d myapp.apk -o myapp

说明

  • d 反编译(decompile)
  • myapp.apk 目标 APK
  • -o myapp 输出文件夹 myapp/

解包后目录结构

myapp/
├── AndroidManifest.xml  # 应用核心配置
├── smali/               # 反编译的 Smali 代码
├── res/                 # 资源文件(图片、布局)
├── assets/              # 应用资源文件
└── original/            # 原始信息

3. 修改 APK

✅ 修改 AndroidManifest.xml

找到 myapp/AndroidManifest.xml,可以:

  • 开启调试模式

  • 修改权限

✅ 修改 strings.xml

可以修改应用 UI 文本,如 res/values/strings.xml

修改后的应用名称

1️⃣ 打开 res/values/colors.xml,修改主颜色:

#1E88E5  
#1565C0  
#D32F2F  

2️⃣ 修改 styles.xml 主题:


4. 重新打包 APK

修改完成后,需要重新编译:

apktool b myapp -o newapp.apk

如果出现错误

apktool b myapp --use-aapt2 -o newapp.apk

APK 重新打包完成!

5. 签名 APK(重要)

使用 keytool 生成签名

keytool 是 Java JDK 自带的工具,用于生成 Keystore(密钥库),然后你可以用 apksignerjarsigner 给 APK 签名。

1. 生成 Keystore

如果你还没有 Keystore,需要先用 keytool 生成:

keytool -genkey -v -keystore my-release-key.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000

如果乱码运行chcp 936

检查 Keystore 是否正确生成

keytool -list -keystore my-release-key.keystore

参数解析

  • -genkey -v 生成密钥
  • -keystore my-release-key.keystore 密钥文件
  • -alias myalias 密钥别名
  • -keyalg RSA 加密算法
  • -keysize 2048 密钥长度
  • -validity 10000 密钥有效期(单位:天)

完成后会生成 my-release-key.keystore 文件!

2. 用 apksigner 签名 APK

apksigner sign --ks my-release-key.keystore --ks-key-alias myalias --out signed.apk myapp.apk

说明

  • --ks my-release-key.keystore Keystore 文件
  • --ks-key-alias myalias Keystore 别名
  • --out signed.apk 输出签名后的 APK
  • myapp.apk 需要签名的 APK

6. 安装已修改的 APK

adb install signed.apk

你可能感兴趣的:(android)