1.谷歌提供的工具:android-classyshark

下载地址:https://github.com/google/android-classyshark/releases,下载下来之后是一个可执行的jar文件,win下或者mac下都只要双击即可运行。

功能:带有界面,一键反编译Apk工具,直接打开Apk文件,就可以看到Apk中所有的文件结构,甚至还集成了dex文件查看,java代码查看,方法数分析、导入混淆mapping文件等一系列工具。谷歌推出这个工具的目的是为了让我们开发者更清楚的了解自己的Apk中都有什么文件、混淆前后有什么变化,并方便我们进一步优化自己的Apk打包实现。下面带上几张截图,真是帅气的一笔的好工具啊!

即将到来的Android Studio 2.2中集成了一个叫做APK Analyzer的功能,这个功能不知道是不是和这个工具有关系呢,本人还没有尝试过2.2版本,有兴趣的朋友可以体验一下preview版本

2.Python实现的工具:AndroidGuard

下载地址:https://github.com/androguard/androguard/releases

功能:集成了反编译资源、代码等各种文件的工具包。需要安装Python环境来运行这个工具,这个工具按照不同的反编译需求,分别写成了不同的py功能模块,还有静态分析的功能。所以如果想要用Python开发一个解析Apk文件并进行静态扫描分析的服务,可以引用这个工具来实现。

用法:具体用法比较多,这里也不再展开了。可以通过工具内置的-h帮助指令查看各个模块的功能。

unclechendeiMac:androguard-2.0 unclechen$ python androaxml.py -h
Usage: androaxml.py [options] Options:
-h, --help show this help message and exit
-i INPUT, --input=INPUT
filename input (APK or android's binary xml)
-o OUTPUT, --output=OUTPUT
filename output of the xml
-v, --version version of the API // androaxml.py这个模块是用来解析AndroidManifest文件的,`-i` 表示输入的apk文件,`-o` 表示输出xml文件。

3.Mac专属工具:Android-Crack-Tool

功能:这是网上一位名为Jermic的大神开发的、在Mac环境下使用的App,集成了Android开发中常见的一些编译/反编译工具,方便用户对Apk进行逆向分析,提供Apk信息查看功能。工具的截图如下所示,非常强大。

4.手机上的反编译工具:ApkParser

功能:在电脑上已经有了这么多的工具,在手机上的也有很方便的工具。APKParser是一款在查看手机上已经安装的Apk的信息的工具,他可以查看软件的AndroidManifest.xml文件、方法数、res资源文件,并在手机上直接展示出来。个人觉得这是一个非常实用的工具,作为开发者,手机里面必须要有它。

5.工具汇总

以上几款工具都是我体验过、感觉不错的集成工具,推荐给大家。临近本文结束前,又发现了这么一个福利网站-http://www.androiddevtools.cn/,其中有一章专门总结了各种Apk反编译的工具。相信有了这么多的利器,大家应该有100种方法将一个App扒得干干净净了。


Android反编译,apk反编译技术总结的更多相关文章

  1. 【Android】Android如何对APK反编译

    本文笔者粗略的介绍如何利用一些工具,对Android进行反编译,从而得到源码,希望对你有所帮助,笔者的android环境为4.4.2. 1.准备资源. 在开始之前,需要准备三项工具:apktool  ...

  2. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

  3. 爬虫app信息抓取之apk反编译抓取

    之前也抓过一些app,数据都比较好取,也没有研究的太深,毕竟还有android 模拟器+ appium 的方法.直到遇见了一款app ,具体名字就不说了,它安装在模拟器上竟然打不开 !!第一次遇见上网 ...

  4. Android中的Apk的加固(加壳)原理解析和实现

    一.前言 今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理.现阶段.我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk, ...

  5. Android中的Apk的加固(加壳)原理解析和实现(转)

    一.前言 今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理.现阶段.我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk, ...

  6. 【转】Android中的Apk的加固(加壳)原理解析和实现

    一.前言 今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理.现阶段.我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk, ...

  7. Android开发:APK的反编译(获取代码和资源文件)

    一.反编译工具: 1.APKTool: APKTool是由GOOGLE提供的APK编译工具,能够完成反编译及回编译apk的工作.同时,它也有着安装反编译系统apk所需要的framework-res框架 ...

  8. Atitit.反编译apk android源码以及防止反编译apk

    Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool  apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...

  9. 【转】Android APK反编译就这么简单 详解(附图)

    转载地址:http://blog.csdn.net/vipzjyno1/article/details/21039349 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂 ...

随机推荐

  1. asp.net代码审计起始篇之系统搭建

    最近开始学习asp.net的代码审计,在开始审计之前除了要对语言有些基本的了解,还需要会在本地搭建demo网站方便调试和复现漏洞 准备工作:操作系统:我用的是win10 数据库:我用的sql serv ...

  2. MySQL Connection--使用tcpkill杀掉MySQL活跃连接

    当MySQL连接被打满,连管理员也无法本地登录时,可以考虑使用tcpkill杀掉一些应用服务器创建的连接. CentOS 6安装tcpkill rpm安装包: libnids-1.24-1.el6.x ...

  3. Yarn Nodemanager启动不了报YarnRuntimeException: Failed to initialize container executor error=13 权限不够

    1.现象:有一个节点的NodeManager启动不了. 后台报错日志如下: org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Failed ...

  4. kubernetes使用Traefik暴露web服务-转载51cto

    Traefix介绍(摘自网络) traefik 是一个前端负载均衡器,对于微服务架构尤其是 kubernetes 等编排工具具有良好的支持:同 nginx 等相比,traefik 能够自动感知后端容器 ...

  5. docker版本lnmp

    也不是全部的docker,比如php-fpm,这个可以用docker版. 但第三方插件就不灵活,所以原生的就好. 另外,在建设ftp服务时,以后要弃vsftpd而选用pure-ftp了. pure-f ...

  6. 微信小程序API~用户信息

    UserInfo 用户信息 属性 string nickName 用户昵称 string avatarUrl 用户头像图片的 URL.URL 最后一个数值代表正方形头像大小(有 0.46.64.96. ...

  7. gsoup webservice

    SoapUI调用webservice实现的两种方式 gsoup https://blog.csdn.net/zhuzhihai1988/article/details/8131370

  8. 怎么给win10进行分区?

    新安装的win10系统的朋友,对于win10系统分区不满意应该如何是好呢?今天给大家介绍两种win10系统分区的方法,一个是windows自带分区管理软件来操作;另一个就是简单方便的分区助手来帮助您进 ...

  9. SQLyog(MYSQL图形化开发工具)

    安装:下载一个免安装的SQLyog,可以直接使用 使用:输入用户名.密码,点击连接按钮,进行访问MySQL数据库进行操作 在Query窗口中,输入SQL代码,选中要执行的SQL代码,按F8键运行,或按 ...

  10. Redis中如何保证数据库和缓存双写时的数据的一致性?

    简单的场景: 直接使用 1. 使用Cache Aside pattern 读取的时候,先读取缓存中是否有数据,缓存中没有数据,再去数据库中进行查询,查询出来以后,然后再存入到缓存中 更新的时候,先删除 ...