android反编译步骤改进版

本文介绍了如何反编译apk,以获取源代码、图片、XML配置和资源。主要涉及两个工具:dex2jar用于将classes.dex转换为jar,JD-GUI用于查看jar包源代码。此外,还提及了AXMLPrinter2.jar、baksmali.jar和smali.jar的使用,以解析AndroidManifest.xml和main.xml。
一。反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
二。反编译Apk得到Java源代码
首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工 具,可以直接查看Jar包的源代码。
具体步骤:
首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录,
运行 “dex2jar.bat  classes.dex”
生成classes.dex.dex2jar.jar

首先解决关于命令行定位问题:(命令行快捷键是  win+R)
    “CMD”后 要确定你的工具包所在的位置,当不在c盘时首先定位为相应的盘,如:D盘。转换方式为“D:”按enter键确定,
然后在首先输入“CD”空格后 再定位dex2jar.bat所在文件位置,最后把“dex2jar.bat  classes.dex”复制到dex2jar.bat所在文件位置的后面按下enter键即可。
生成classes.dex.dex2jar.jar
如下
生成classes.dex.dex2jar.jar
然后,进入jdgui文件夹双击jd-gui.exe,找到生成的
classes.dex.dex2jar.jar压缩包打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了,如下图:


三、AXMLPrinter2.jar + baksmali.jar + smali.jar 方法

      这个方法就强大了,AXMLPrinter2是还原AndroidManifest.xml和main.xml的工具,直接打开这两个xml文件是乱码,而通过还原之后,可以很明白的看到里面的内容(我猜测还是使用了字节异或的方式加的密)。

      baksmali.jar是反解析dex的工具,smali.jar则是再还原成dex的工具

      操作方式如下:

     1、java -jar AXMLPrinter2.jar D:\play\AndroidManifest.xml > AndroidManifest.txt

     2、java -jar AXMLPrinter2.jar D:\play\res\layout\main.xml > main.txt

     3、java -jar baksmali-1.2.5.jar -o classout/ d:\play\classes.dex

完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值