Android反编译分析工具

通常我们会看到好的APP,都想知道内部结构是如设计的,希望能借鉴一些好的设计和功能,因此需要找到可以通过反编译的方式去查看一些想看的APP


  • META-INF: 存放签名文件签名信息的目录,用于系统签名校验;
  • res: 存放资源文件的目录,包含项目中的 xml 和 图片资源等;
  • AndroidManifest.xml: Android项目中的配置文件;
  • classes.dex: 由Java产生的字节码文件打包生成为虚拟机可以解读的字节码文件,所有的源码都在其中;
  • resources.arsc: 资源文件的ID索引表,如:layout、drawable、mipmap都会在R文件生成相应的ID资源;
  • 其他目录:开发者自行添加的目录,如:存放资源的 asserts 、存放依赖包的 lib 目录等。

Fiddler

工具名: Fiddler

官网: http://www.telerik.com/fiddler

下载地址: https://www.telerik.com/download/fiddler

使用文档: 直接参考 Trinea 的文章 http://www.trinea.cn/android/android-network-sniffer/ 即可。

功能: 支持对 HTTP 和 HTTPS 两种协议进行抓包。

相比 Tcpdump ,它的好处在于手机不需要 Root,且有自己的 GUI 。不过它只支持 HTTP 和 HTTPS 两种协议。另外在使用时,手机也需要连接 Wi-Fi 并设置好代理,

Fiddler 是本文介绍的最后一个工具,Mac 下使用 Charles


工具名: WireShark

官网: https://www.wireshark.org/

下载地址: https://www.wireshark.org/#download

使用文档: http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html (非常齐全的文档)

功能:

  • 配置 Tcpdump 生成打 pcap 文件,进行分析;
  • 或者可以让电脑建立热点,手机连上电脑创建的热点进行抓包,这种方式处理起来更加方便灵活。

工具名: TcpDump

官网: http://www.androidtcpdump.com/

下载地址: http://www.androidtcpdump.com/android-tcpdump/downloads

使用文档:

功能: 对手机进行网络抓包,前提是手机已经获取 Root 权限。支持 HTTP 和 HTTPS ,还支持更多其他协议。


工具名: ClassyShark

官网: http://classyshark.com/

源码: https://github.com/google/android-classyshark

配置文档: 通过下载链接 https://github.com/google/android-classyshark/releases ,下载 jar 包到本地即可

使用文档:

功能: 可直接浏览 Apk,支持对.dex, .aar, .so,.apk, .jar, .class等文件的操作。

工具名: Procyon

源码: https://bitbucket.org/mstrobel/procyon

配置文档: 通过下载链接 https://bitbucket.org/mstrobel/procyon/downloads,下载 jar 包到本地即可。

使用文档: https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler

功能: 将反编译得到 jar 包还原成 java 文件,同时能够更强的还原代码的逻辑结构。

 Procyon 的优势所在了。直接去到 Procyon 的目录下,并将 enjarify 反编译好的微信 jar 文件放置到同级目录,


enjarify

工具名: enjarify

源码: https://github.com/google/enjarify

配置文档: 下载源码到本地,并安装 Python3 的环境,同时配置好环境变量。

使用文档: 可以参考上面的源码地址中的说明,或者乌云平台的文章 http://wiki.wooyun.org/android:tools:enjarify

功能: 可直接将 apk 文件还原成为 jar 文件,也可以和 dex2jar 一样,直接操作某个dex。

这是 Google 出品的一个逆向分析工具,从反编译成 jar 包的流程来说,要比 dex2jar 方便得多。下载完工具到本地并配置好 Python 环境后,需要修改 enjarify 目录下的 enjarify.bat 文件,将 python3 改为 python。



jd-gui

工具名: jd-gui

官网: http://jd.benow.ca/

源码: https://github.com/java-decompiler/jd-gui

功能:

  • 查看 dex 文件还原成为 jar 文件代码;
  • 将 jar 文件中所有的 class 文件转换成为 java 文件。

使用很方便,下载后,直接把用 dex2jar 生成的微信 jar 包拖曳进去即可查看到对应的源代码。


dex2jar

工具名: dex2jar

官网: https://sourceforge.net/projects/dex2jar/

源码:

配置文档: 很简单,去官网链接直接下载到本地即可。

使用文档: 同样比较简单,直接看下面示例,或者 Google 一下。

功能:

  • 将 dex 文件还原成为 jar 文件;
  • 将 dex 文件还原成为 smali 文件;
  • 其他一些命令行很少用,喜欢折腾的童鞋,同样自行摸索。

SmaliIdea: https://github.com/JesusFreke/smali/wiki/smalidea

反正我一看到 SmaliIdea 是震惊了。目前 SmaliIdea 最新的版本是 0.03,喜欢玩耍的童鞋可以到下面的下载地址中:

https://bitbucket.org/JesusFreke/smali/downloads



Apktool

工具名: Apktool

官网: http://ibotpeaches.github.io/Apktool/

源码:

配置文档: http://ibotpeaches.github.io/Apktool/install/, 教你如何配置 Apktool 的使用环境。

使用文档: http://ibotpeaches.github.io/Apktool/documentation/, 教你各种基本的命令的使用。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值