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

转自:http://www.cnblogs.com/xinye/p/3719807.html


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路径

dedexer详细介绍:http://dedexer.sourceforge.net/

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

dexdump的详细参数和使用方法参见:http://blog.csdn.net/xiruanliuwei/article/details/7664660

dexdump的使用参见:http://ybxu-123.blog.163.com/blog/static/59473770201023112220323/

该文章翻译自:http://www.phonesdevelopers.com/1745400/

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=


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值