← 返回
未分类

Apk Decompiler

Android APK 逆向工程工具集,支持反编译、修改和重新打包。使用场景:(1) 反编译 APK 查看 Smali/Java 源码 (2) 分析应用架构和权限 (3) 修改 UI 文本、功能、逻辑 (4) 重新打包并签名 APK (5) 提取字符串、权限、组件等信息。触发词:反编译 APK、逆向 Androi...
Android APK 逆向工程工具集,支持反编译、修改和重新打包。使用场景:(1) 反编译 APK 查看 Smali/Java 源码;(2) 分析应用架构和权限;(3) 修改 UI 文本、功能、逻辑;(4) 重新打包并签名 APK;(5) 提取字符串、权限、组件等信息。触发词:反编译 APK、逆向 Android...
tonakic tonakic 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 2
Stars
📥 526
下载
💾 0
安装
1
版本
#latest

概述

APK Decompiler

Android APK 逆向工程工具集,支持完整的反编译、修改和重新打包流程。

快速开始

1. 设置工具

首次使用需要下载必要工具:

cd /path/to/apk-decompiler/scripts
chmod +x setup_tools.sh
./setup_tools.sh

这会下载:

  • baksmali/smali - DEX ↔ Smali 转换
  • apktool - 资源解码/打包
  • dex2jar - DEX → JAR 转换
  • uber-apk-signer - APK 签名

2. 反编译 APK

python3 scripts/decompile.py app.apk

输出目录结构:

app-decompiled/
├── smali-out/         # Smali 源码(可编辑)
├── apktool-out/       # 解码的资源文件
│   ├── AndroidManifest.xml
│   ├── res/
│   └── assets/
└── extracted/         # 原始 APK 内容

3. 修改代码/资源

编辑相关文件:

  • smali-out/ - 修改 Smali 代码
  • apktool-out/AndroidManifest.xml - 修改配置
  • apktool-out/res/values/strings.xml - 修改文本

4. 重新打包

python3 scripts/rebuild.py ./app-decompiled

输出:app-rebuilt.apk(已签名)

脚本说明

脚本功能
------------
setup_tools.sh下载并设置反编译工具
decompile.py反编译 APK
rebuild.py重新打包并签名
analyze.py分析 APK 结构

常用命令

反编译选项

# 基本反编译
python3 decompile.py app.apk

# 同时生成 JAR(可用 jadx 查看 Java 源码)
python3 decompile.py app.apk --java

# 只解码资源
python3 decompile.py app.apk --resources-only

# 只反编译 Smali
python3 decompile.py app.apk --smali-only

分析选项

# 完整分析
python3 analyze.py app.apk

# 只看权限
python3 analyze.py app.apk --permissions

# 查看 Activities
python3 analyze.py app.apk --activities

# 查看应用类(需要先反编译)
python3 analyze.py app.apk --smali ./smali-out --classes

重新打包选项

# 打包并签名
python3 rebuild.py ./project-dir

# 只签名 APK
python3 rebuild.py ./project-dir --sign-only app.apk

# 跳过签名
python3 rebuild.py ./project-dir --no-sign

修改示例

修改字符串

  1. 找到字符串定义:
  2. grep -r "原始文本" ./apktool-out/res/values/
    
  1. 编辑 strings.xml
  2. <string name="app_name">新名称</string>
    

修改逻辑(Smali)

  1. 找到目标类:
  2. find ./smali-out -name "MainActivity.smali"
    
  1. 编辑 Smali 代码:
  2. # 修改返回值
    .method public isEnabled()Z
        const/4 v0, 0x1
        return v0
    .end method
    
  1. 参考 references/smali-syntax.md 了解 Smali 语法

修改 AndroidManifest

编辑 apktool-out/AndroidManifest.xml

  • 添加/移除权限
  • 修改应用名称
  • 添加 Activity
  • 启用调试模式

参考 references/android-manifest.md

工具目录

设置完成后,工具存储在 ~/.apk-tools/

~/.apk-tools/
├── baksmali.jar       # DEX → Smali
├── smali.jar          # Smali → DEX
├── apktool.jar        # 资源解码/打包
├── dex2jar/           # DEX → JAR
└── uber-apk-signer.jar # APK 签名

可设置环境变量:

export TOOLS_DIR=/custom/path

工作流程

┌─────────────┐
│   app.apk   │
└──────┬──────┘
       │ decompile.py
       ▼
┌─────────────────────────┐
│ app-decompiled/         │
│  ├── smali-out/         │ ← 编辑 Smali 代码
│  └── apktool-out/       │ ← 编辑资源/Manifest
└──────┬──────────────────┘
       │ rebuild.py
       ▼
┌─────────────────────┐
│ app-rebuilt.apk     │
│ (已签名,可安装)     │
└─────────────────────┘

注意事项

  1. 签名限制:重新打包后使用调试密钥签名,与原应用签名不同
    • 无法覆盖安装原应用
    • 需要先卸载原应用
  1. 完整性校验:某些应用会校验签名或文件完整性
    • 需要额外处理绕过校验
  1. 混淆代码:ProGuard/R8 混淆后的代码:
    • 类名/方法名会被重命名
    • 需要手动分析理解逻辑
  1. 法律风险:仅供学习研究,请勿用于非法用途

环境要求

  • Java 运行时 (JRE 8+)
  • Python 3.6+
  • unzip (通常已预装)

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-03 07:51 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

it-ops-security

OpenClaw Backup

alex3alex
备份与恢复 OpenClaw 数据。适用于创建备份、设置自动备份计划、从备份恢复或管理备份轮转。处理 ~/.openclaw 目录归档并包含适当的排除规则。
★ 90 📥 30,990
it-ops-security

Free Ride - Unlimited free AI

shaivpidadi
管理OpenClaw的OpenRouter免费AI模型,自动按质量排名模型,配置速率限制备用方案,并更新opencla...
★ 471 📥 78,169
it-ops-security

MoltGuard - Security & Antivirus & Guardrails

thomas-security
MoltGuard — OpenClaw 安全守卫,由 OpenGuardrails 提供。安装后可防止您和您的用户受到提示注入、数据泄露及恶意行为的侵害。
★ 116 📥 30,960