搜尋此網誌

2011年1月10日

Android APK 反組譯 - APK deassembly / decompile / reengineering / Unpacking

[2012/12/3 Update]
1. Download "dex2jar-0.0.9.11.zip".
2. Download "jd-gui-3.3.zip".
3. Uncompressed.
4. shell:/> dex2jar.bat xxx.apk => output xxx.jar
5. Launch jd-gui.exe then open the jar file.
Done.

==============================================================
目的: 反組譯 Android APK package。若要一般的資訊,aapt 工具就可以達到。
延伸用途:
  1. 修改此 APK 的內容 (參數、語系等)
  2. 取得 Activity name / Class name
  3. 取得 AndroidManifest.xml 資訊
  4. 了解 resource 內容
  5. APK+ODEX => Single APK

Study 路徑: Signed apk -> deassembly (XML / .dex / .jar / .smali / ...) -> Interpret -> modify / get information -> rebuild -> signed

APK build flow (From Android Dev Guide page)




使用工具:
  • dexdump
  • dedexer
  • smali (APK deassembly / APK+ODEX)
  • axml2xml.pl / wbxml2xml / AXMLPrinter2.jar (Decode raw XML file)
  • apktool => 似乎最好用
  • XMLDump
  • AXMLPrinter2
  • dex2jar / jar2java (JD-GUI) => 似乎最好用
  • ddx1.5.jar
  • aapt

參考 URL:
  • [Good] http://jserv.blogspot.com/2010/05/android.html
  • [Good] http://tw.myblog.yahoo.com/blue-comic/article?mid=666&prev=667&next=664
  • [Good] http://jjnnykimo.pixnet.net/blog/post/31851139
  • [Good] http://www.th7.cn/Article/bc/Android/201007/393121.html
  • [Good] http://webcache.googleusercontent.com/search?q=cache:uMR0Ur_MvWQJ:www.mask.org.tw/blog/page/2/+mask+deassembly+apk&cd=1&hl=zh-TW&ct=clnk&gl=tw
  • [Good] http://www.geeka.net/2010/05/android-apk-odex-classes-dex/
  • [Good] http://www.ophonesdn.com/article/show/38
  • http://mylifewithandroid.blogspot.com/2009/01/disassembling-dex-files.html
  • http://ysl-paradise.blogspot.com/2008/10/android_27.html
  • http://w26.javaeye.com/blog/501553
  • http://zeaster.blogspot.com/2007/11/how-to-decompile-dex-file-on-android_28.html
  • http://code.google.com/p/android-apktool/
  • http://developer.android.com/guide/publishing/licensing.html
  • http://stackoverflow.com/questions/2097813/how-to-parse-the-androidmanifest-xml-file-inside-an-apk-package
  • http://blog.lytsing.org/archives/250.html
  • http://www.cuteandroid.com/open-source-android-apps-for-developers-android-apktool
  • http://zenz.ourcafe.mobi/archives/188
  • http://www.eoeandroid.com/thread-28882-1-1.html

Keyword:
  • reengineering 
  • decompile / decompiling
  • deassembly / Disassembling
  • Unpacking the APK
  • DEX to java source code
  • Decoding the raw XML files
  • APK 反組譯 / 反編譯
  • APK 代碼分析
  • Reverse engineering of APK

沒有留言:

張貼留言