通常我们会看到好的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

使用文档:

  • Trinea版本:http://www.trinea.cn/android/tcpdump_wireshark/
  • MrPeak版本:http://mrpeak.cn/blog/tutorial-tcpdump/

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

工具名: ClassyShark

官网: http://classyshark.com/

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

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

使用文档:

  • Github markdown版本:https://github.com/borisf/classyshark-user-guide
  • Github PDF版本:https://github.com/google/android-classyshark/blob/master/CommandLine.pdf
  • 简书版本:http://www.jianshu.com/p/8e8b88ea2197

功能: 可直接浏览 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/

源码:

  • Github地址:https://github.com/pxb1988/dex2jar
  • Bitbucket地址:https://bitbucket.org/pxb1988/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/

源码:

  • Github地址:https://github.com/iBotPeaches/Apktool
  • Bitbucket地址:https://bitbucket.org/iBotPeaches/apktool/downloads

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

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

Android反编译分析工具相关推荐

  1. android 反编译 jadx,jadx gui下载 jadx(Android反编译gui工具) v0.6.1 官方版 下载-脚本之家...

    jadx是一款Android反编译gui工具,它支持apk.dex.jar.class.zip.aar等文件.jadx操作方便,反编译后的代码可读性高,同时还拥有较完善的gui界面,除去混淆部分的代码 ...

  2. android 反编译apktool工具

    下载地址:http://pan.baidu.com/s/1bnHANtd 1.将编译的*.apk放在apktool的根目录下: 2.双击"解压软件.bat"后,会提示完成:这样就反 ...

  3. Android反编译工具与实践

    版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl What is Android Android is a mobile operating s ...

  4. 26款Android反编译工具

    译文: http://www.freebuf.com/sectool/111532.html 原文: https://hackerlists.com/android-reverse-engineeri ...

  5. Android反编译工具的使用(保姆级教程)

    Android反编译工具的使用(保姆级教程) 网上关于Android反编译的文章很多,但是好多都比较杂,就打算自己写一下,顺便也能加深一下印象. 一.常用反编译文件的介绍 apktool apktoo ...

  6. android反编译工具jadx卡死解决方案。

    jadx卡死解决 概述 问题点 解决方案 概述 在android的app中,由于dex部分是由java代码实现的,dex可以直接被apktool,androidkiller,jeb等工具进行反编译分析 ...

  7. 【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

    文章目录 一.apktool 1.apktool 简介 2.直接解压 3.使用 apktool 反编译 4.使用 apktool 重新打包 二.dex2jar 1.dex2jar 简介 2.dex2j ...

  8. Android反编译工具与反编译步骤及常见问题

    Android代码混淆很大程度上就是为了别人反编译我们的代码,用反编译工具也可以测试我们的代码是否混淆成功. "工欲善其事,必先利其器",先介绍一下反编译的工具: apktool. ...

  9. Android反编译工具的使用-Android Killer

    今天百度搜索"Android反编译"搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android ...

最新文章

  1. OC基本数据存储方式
  2. 【Java8新特性】浅谈方法引用和构造器引用
  3. libtool: Version mismatch error. 解决方法
  4. springmvc rest风格化案例
  5. sklearn 神经网络_机器学习100天-Day2404 循环神经网络RNN(预测时间序列)
  6. 支付宝一项重要服务突然改名!官方:已启动品牌隔离,服务不受影响
  7. visio中虚线粘贴到word中变实线的解决办法(转)
  8. Exchange Server 2016管理系列课件22.通讯组概述
  9. 计算机程序的思维逻辑 (91) - Lambda表达式
  10. java go md5_Go语言中三种不同md5计算方式的性能比较
  11. HTML+CSS【超浪漫的表白网页代码】不会编程也能制作送给女朋友的表白网站 (1)
  12. 建模国赛2016A-系泊系统的设计优秀论文
  13. SWAT模型在水文水资源、面源污染模拟中的实践技术应用
  14. Scrapy爬虫四步法:爬取51job网站
  15. 【码上实战】【立体匹配系列】经典AD-Census: (5)扫描线优化
  16. 从汽车到可穿戴设备的设计都利用 PMIC 实现电源效率
  17. MEMS传感器领域关于薄膜性能的中国国家标准,“带状薄膜抗拉性能的试验方法”由北京智芯传感等单位发布并实施
  18. 嘉信给你介绍新加坡10大特色美食
  19. java八大数据类型_java的八大基本数据类型分别是什么?
  20. [A Beginner‘s Guide to Irrational Behavior][怪诞行为学]Week1: 你的直觉是对还是错?

热门文章

  1. 别告诉我你懂Javascript
  2. 常用机器学习算法汇总
  3. 大数据分析的目的与意义
  4. 寻找链表中值域最小的节点并移到链表的最前面
  5. python密码编程_Python密码学编程
  6. idea中build project不能用_Java语言编程第40讲——如何在一个项目中组织多个SpringBoot服务
  7. php pdo $_GET,PHP PDOStatement::getColumnMeta讲解
  8. [tensorflow]tensorflw2.1.0张量和变量介绍
  9. qml设置Text中的文字居中(不是整个Text居中)
  10. txt文件参数化200用户,返回在表格中查看只能看到100行数据