您的位置:首页 > 移动开发 > Android开发

Android反编译工具介绍与简单实用方法

2014-05-10 08:09 666 查看
Android反编译工具介绍与简单实用方法

Android反编译的目的无非就是为了看到APK的xml、资源和代码:

  得到代码的方式:直接解压APK文件 --> 得到classes.dex文件 --> 使用 dex2jar classes.dex classes.jar生成jar文件 --> [可选的解压jar文件] -->使用XJad或者JDCompiler查看源代码

得到XML的方式:

    方式1:直接解压APK文件 --> 通过axmlprinter工具查看XML文件(这种方式查看的XML文件的id都是数字--即R文件中id对应的值)

方式2:使用APKTool工具解压APK文件可以直接查看XML文件

Android反编译常常使用如下的一些工具:

1、反编译命令:

  apktool d D:\\Developer\androidDecode\Test0201.apk D:\\Developer\androidDecode\test0201

    D:\\Developer\androidDecode\Test0201.apk:要反编译的APK文件

    D:\\Developer\androidDecode\test0201:反编译文件的保存目录,必须为空目录

2、从反编译的文件编译成APK apktool b D:\\Developer\androidDecode\test0201 D:\\Developer\androidDecode\test020101.apk

  D:\\Developer\androidDecode\test0201:保存编译后文件的目录

  D:\\Developer\androidDecode\test020101.apk:生成的新的APK文件的保存的绝对路径

3、签名APK文件:

  singedAPK.bat文件

    java -jar "%~dp0signapk.jar" "%~dp0testkey.x509.pem" "%~dp0testkey.pk8" %1 signed.apk

  执行singedAPK.bat命令

    singedAPK D:\\Developer\androidDecode\test020101.apk 生成一个singed.apk文件和test020101.apk在同一个目录

4、使用baksmali.jar把一个dex文件转换为一个smali文件

    java -jar D:\\Developer\ApkTool\baksmali.jar -o D:\\Developer\androidDecode\baksmaliout D:\\Developer\androidDecode\Hello.dex

      D:\\Developer\ApkTool\baksmali.jar:baksmali.jar文件所存在的全路径

      D:\\Developer\androidDecode\baksmaliout:生成的smali文件的保存目录

      D:\\Developer\androidDecode\Hello.dex:要转成smali文件的路径

5、使用ddx.jar把一个dex文件转换为ddx文件

    java -jar D:\\Developer\ApkTool\ddx.jar -d D:\\Developer\androidDecode\ddxout D:\\Developer\androidDecode\Hello.dex

      D:\\Developer\ApkTool\ddx.jar:ddx.jar文件的绝对路径

      D:\\Developer\androidDecode\ddxout:要保存ddx文件的路径

      D:\\Developer\androidDecode\Hello.dex:要转换的dex路径

6、Android自带dexdump工具:dex文件转为smali文件 dexdump -d xxxx.dex > xxxx.smali

7、dex2jar.jar:dex2jar XXX.dex YYY.jar

说明:

  apktool项目地址:https://code.google.com/p/android-apktool/

  baksmali项目地址:https://code.google.com/p/smali/

dex2jar项目地址:https://code.google.com/p/dex2jar/downloads/list

java Decompiler(JD)项目地址:http://jd.benow.ca/

  XJAD百度网盘下载地址:http://pan.baidu.com/share/link?shareid=406366626&uk=3558809438&fid=881236853

  axmlprinter项目地址:https://code.google.com/p/android4me/downloads/detail?name=AXMLPrinter2.jar&can=2&q=
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: