(以内容“APK 编译/反编译的工具包 文件:apk_jar.png”创建新页面) |
|||
第2行: | 第2行: | ||
[[文件:apk_jar.png]] | [[文件:apk_jar.png]] | ||
+ | |||
+ | == 工具 == | ||
+ | * dex2jar: [http://dex2jar.googlecode.com dex2jar] 据说是国人开发的,主要能够在Dalvik VM bytecode和JVM bytecode之间互转 | ||
+ | * apktool: [http://apktool.googlecode.com apktool] 可以在apk和Dalvik VM汇编之间互转 | ||
+ | * signapk: android SDK 自带,签名工具 | ||
+ | * ded: [http://siis.cse.psu.edu/ded/ ded] 将APK解包,转换成JVM bytecode,再反汇编 | ||
+ | * kimera: [http://www.cs.cornell.edu/people/egs/kimera/disassembler.html kimera] JVM bytecode反汇编器 | ||
+ | * soot: [http://www.sable.mcgill.ca/soot/ Soot] JVM bytecode优化器/反编译器 | ||
+ | * jasmin: [http://jasmin.sourceforge.net jasmin] 开源jvm汇编器 | ||
+ | * jdgui: [http://java.decompiler.free.fr/ JD] JVM bytecode反编译器 | ||
+ | * javac, zip, unzip: 我就不说什么了…… | ||
+ | * dx: android SDK 自带,转换JVM bytecode为Dalvik VM bytecode | ||
+ | * smali/baksmali: [http://smali.googlecode.com smali] Dalvik VM 汇编器/反汇编器 | ||
+ | |||
+ | == 修改APK == | ||
+ | === 可选路线1 === | ||
+ | |||
+ | APK -> [apktool] -> 一堆.smali文件和资源 -> [修改] -> 修改结果 -> [apktool] -> 修改APK -> [signapk] -> 签名了的APK | ||
+ | |||
+ | === 可选路线2 === | ||
+ | |||
+ | APK -> [dex2jar] -> JAR -> [dex2jar] -> 一堆.jasmin -> [修改] -> 修改结果 -> [dex2jar] -> DEX -> [zip] -> 修改APK -> [dex2jar] -> 签名了的APK |
2012年7月12日 (四) 21:50的版本
APK 编译/反编译的工具包
工具
- dex2jar: dex2jar 据说是国人开发的,主要能够在Dalvik VM bytecode和JVM bytecode之间互转
- apktool: apktool 可以在apk和Dalvik VM汇编之间互转
- signapk: android SDK 自带,签名工具
- ded: ded 将APK解包,转换成JVM bytecode,再反汇编
- kimera: kimera JVM bytecode反汇编器
- soot: Soot JVM bytecode优化器/反编译器
- jasmin: jasmin 开源jvm汇编器
- jdgui: JD JVM bytecode反编译器
- javac, zip, unzip: 我就不说什么了……
- dx: android SDK 自带,转换JVM bytecode为Dalvik VM bytecode
- smali/baksmali: smali Dalvik VM 汇编器/反汇编器
修改APK
可选路线1
APK -> [apktool] -> 一堆.smali文件和资源 -> [修改] -> 修改结果 -> [apktool] -> 修改APK -> [signapk] -> 签名了的APK
可选路线2
APK -> [dex2jar] -> JAR -> [dex2jar] -> 一堆.jasmin -> [修改] -> 修改结果 -> [dex2jar] -> DEX -> [zip] -> 修改APK -> [dex2jar] -> 签名了的APK