第4行: 第4行:
  
 
== 工具 ==
 
== 工具 ==
* dex2jar: [http://dex2jar.googlecode.com dex2jar] 据说是国人开发的,主要能够在Dalvik VM bytecode和JVM bytecode之间互转
+
* [http://dex2jar.googlecode.com dex2jar] 据说是国人开发的,主要能够在Dalvik VM bytecode和JVM bytecode之间互转
* apktool: [http://apktool.googlecode.com apktool] 可以在apk和Dalvik VM汇编之间互转
+
* [http://apktool.googlecode.com apktool] 可以在apk和Dalvik VM汇编之间互转
 
* signapk: android SDK 自带,签名工具
 
* signapk: android SDK 自带,签名工具
* ded: [http://siis.cse.psu.edu/ded/ ded] 将APK解包,转换成JVM bytecode,再反汇编
+
* [http://siis.cse.psu.edu/ded/ ded] 将APK解包,转换成JVM bytecode,再反汇编
* kimera: [http://www.cs.cornell.edu/people/egs/kimera/disassembler.html kimera] JVM bytecode反汇编器
+
* [http://www.cs.cornell.edu/people/egs/kimera/disassembler.html kimera] JVM bytecode反汇编器
* soot: [http://www.sable.mcgill.ca/soot/ Soot] JVM bytecode优化器/反编译器
+
* [http://www.sable.mcgill.ca/soot/ soot] JVM bytecode优化器/反编译器
* jasmin: [http://jasmin.sourceforge.net jasmin] 开源jvm汇编器
+
* [http://jasmin.sourceforge.net jasmin] 开源jvm汇编器
* jdgui: [http://java.decompiler.free.fr/ JD] JVM bytecode反编译器
+
* [http://java.decompiler.free.fr/ jdgui] JVM bytecode反编译器
 
* javac, zip, unzip: 我就不说什么了……
 
* javac, zip, unzip: 我就不说什么了……
 
* dx: android SDK 自带,转换JVM bytecode为Dalvik VM bytecode
 
* dx: android SDK 自带,转换JVM bytecode为Dalvik VM bytecode
* smali/baksmali: [http://smali.googlecode.com smali] Dalvik VM 汇编器/反汇编器
+
* [http://smali.googlecode.com smali/baksmali] Dalvik VM 汇编器/反汇编器
  
 
== 修改APK ==
 
== 修改APK ==

2012年7月12日 (四) 21:51的版本

APK 编译/反编译的工具包

Apk jar.png

工具

  • dex2jar 据说是国人开发的,主要能够在Dalvik VM bytecode和JVM bytecode之间互转
  • apktool 可以在apk和Dalvik VM汇编之间互转
  • signapk: android SDK 自带,签名工具
  • ded 将APK解包,转换成JVM bytecode,再反汇编
  • kimera JVM bytecode反汇编器
  • soot JVM bytecode优化器/反编译器
  • jasmin 开源jvm汇编器
  • jdgui JVM bytecode反编译器
  • javac, zip, unzip: 我就不说什么了……
  • dx: android SDK 自带,转换JVM bytecode为Dalvik VM bytecode
  • smali/baksmali Dalvik VM 汇编器/反汇编器

修改APK

可选路线1

APK -> [apktool] -> 一堆.smali文件和资源 -> [修改] -> 修改结果 -> [apktool] -> 修改APK -> [signapk] -> 签名了的APK

可选路线2

APK -> [dex2jar] -> JAR -> [dex2jar] -> 一堆.jasmin -> [修改] -> 修改结果 -> [dex2jar] -> DEX -> [zip] -> 修改APK -> [dex2jar] -> 签名了的APK