ASO114

「Android开发与逆向」常用工具介绍

李相公 • 7月前发布

Android常用工具介绍

开发与逆向常用工具

作者:@越狱

  来源:整理收集

Android Studio

官方 Android IDE专为所有 Android 设备而开发

"「Android Studio」提供用于为各类 Android 设备开发应用的最快速的工具。利用世界一流的代码编辑、调试、性能工具、一套灵活的构建系统以及一套即时构建/部署系统,您可以专注于构建独特的高品质应用"

「Android Studio」官方文档:

https://developer.android.com/studio/intro/index.html

「Android Studio」下载地址:

https://developer.android.com/studio/index.html

「Android SDK」可用于Linux、Mac OS X和Windows操作系统,目前已包含在Android Studio官方Android IDE工具中。

「Android NDK」提供了使用C和C++开发原生应用程序所需的一切。NDK包括在Linux、Mac OS X和Windows操作系统上为ARM、MIPS和x86架构交叉编译二进制原生代码的完整工具

下载地址:https://developer.android.com/ndk/index.html

Eclipse

Eclipse」是一个支持多种语言的IDE,具有可扩展的插件系统,支持各种特性。从Android SDK早期版本开始,Eclipse就是官方支持的Android开发IDE。

下载地址:http://www.eclipse.org

ADT插件及软件包

https://developer.android.com/studio/tools/sdk/eclipse-adt.html

adb

「adb」一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。该工具作为一个客户端-服务器程序,包括三个组件: 

1.客户端,该组件发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。

2.后台程序,该组件在设备上运行命令。后台程序在每个模拟器或设备实例上作为后台进程运行。 

3.服务器,该组件管理客户端和后台程序之间的通信。服务器在开发计算机上作为后台进程运行。

可以在 android_sdk/platform-tools/ 中找到 adb 工具

Android官方说明:

https://developer.android.com/studio/command-line/adb.html

极简主义之∣图标的应用

fastboot

使用USB将Android设备与主机连接后,通过「fastboot」工具及其协议可以与设备的bootloader进行通信。基于fastboot通信协议,fastboot工具可以对设备闪存中的分区内容进行刷入或清除。

所有的Nexus设备都支持fastboot协议。Android设备厂商可以自由选择在其生产设备的bootloader中支持fastboot或实现其独有的刷写协议。

可以在 android_sdk/platform-tools/ 中找到 fastboot 工具。

Android Dev Tools

收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。

项目地址:https://github.com/inferjay/AndroidDevTools

(重点是很多工具无需梯子可以下载到)

静态分析工具

1

smali/baksmali

smali」是用户Dalvik可执行文件(DEX)格式的汇编器,「baksmali」是对应的Dalvik字节码反汇编。smali完整的支持DEX格式的所有功能,包括注解,调试信息和代码行信息等。

下载地址:https://github.com/JesusFreke/smali

2

「Apktool」是一个开源的java工具,它可以将Android APK文件进行逆向工程,将APK文件中包含的资源文件解码为具有可读性的XML格式,还使用了smali将其中包含的所有类和方法进行反汇编并输出。

用Apktool将应用反汇编后可以修改资源文件,汉化资源字符串,改变程序主题样式,在smali代码中增加新功能或者修改已有功能的行为,完成后可以再次使用Apktool将这些修改过的文件重新生成一个新的APK文件。

下载地址:https://ibotpeaches.github.io/Apktool/

3

ShakaApktool」前身算的上是RsApktool,也可以说是一个全新的项目.两者在理念上都是增强Apktool工具。

RsApktool是基于未发布的Apktool1.5.3分支做的增强,并在其代码上做的修改.只发布过一个版本,并未开源。

ShakaApktool在2013-12-25号初始化项目,使用AspectJ切面编程方式对原Apktool增强。

下载地址:https://github.com/rover12421/ShakaApktool

4

dex2jar」是使用java编写的开源项目,提供操作Android DEX文件盒java CLASS文件的工具。

使用dex2jar主要目的是将DEX或ODEX文件转换为java JAR包格式,这样就可以使用已有的任意java反编译器对其进行反编译。

dex2jar的其他特性还包括在CLASS文件盒jasmin格式汇编语言之间进行汇编盒反汇编,对DEX文件中的字符串进行解密。如果字节码使用ProGuard混淆过那么这个功能尤其有用。

下载地址:https://github.com/pxb1988/dex2jar

5

Enjarify」是一个用 Python 写的, Google 官方开源的可以将 Dalvik 字节码转换为 Java 字节码的工具。类似于dex2jar工具

下载地址:https://github.com/google/enjarify

6

「Androguard」是一个实用Python编写的开源逆向工程和逆向分析框架。它可以将Android的二进制XML格式转换成可读的XML,还包括一个可以将Dalvik字节码反编译为java源代码的Dalvik反编译工具。

「Androguard」可以反编译以及修改DEX文件和ODEX文件,并将其完全转为python对象,还可以操作代码块,指令和权限等,进行静态代码分析。

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

7

「JAD」是一个用于java语言,闭源不再维护的反编译工具,jad通过命令界面将CLASS文件转换为可读的java源代码

jad通常和dex2jar一起使用,对没有源代码的Android应用程序进行反编译

下载地址:https://varaneckas.com/jad/

8

JD-GUI」是一个从CLASS文件中重新构造出java源代码的java反编译工具,提供了一个图形化界面用户浏览反编译得到的源代码。

JD-GUI通常与dex2jar结合用户反编译Android应用程序,充当jad的替代工具。

下载地址:https://github.com/java-decompiler/jd-gui

9

JEB」是一个闭源商业版Dalvik字节码反编译工具,用于将DEX文件转换为可读的java源代码。JEB在创建java源代码时不需要通过「dex2jar」或「Enjarify」对DEX文件进行转换,JEB的主要优势是,它是一个交互式的反编译工具,可用于检查交叉引用,在代码和数据之间导航,并通过交互对方法、域、类和包名进行重命名来处理ProGuard的混淆。

下载地址:https://www.pnfsoftware.com

10

IDA Pro」和Hex-Rays Decompiler

交互式反汇编工具支持多种二进制格式和处理器类型的私有反汇编和调试器,提供了许多特性,例如自动化代码分析、开发插件的SDK和分析脚本支持等等。从6.1版本开始,IDA Pro版本就包含了Dalvik处理器模块,用户反汇编Android字节码。

Hex-Rays Decompiler是IDA Pro的一个插件,用于将x86和ARM可执行文件的反汇编输出结果进一步转换为可读的类C伪代码。

更多信息:https://www.hex-rays.com

「Android Killer」

「Android Killer」是一款可视化的安卓应用逆向工具

集Apk反编译、Apk打包、Apk签名,编码互转

ADB通信(应用安装-卸载-运行-设备文件管理)

等特色功能于一 身,支持logcat日志输出

语法高亮,基于关键字(支持单行代码或多行代码段)

项目内搜索,可自定义外部工具;吸收融汇多种工具功能与特点

打造一站 式逆向工具操作体验,大大简化了用户在

Android应用/游戏修改过程中的各类繁琐工作

下载地址:http://www.pd521.com/thread-136-1-1.html

使用说明:http://www.pd521.com/thread-509-1-1.html

(图片来源于网络,如有侵权请联系删除)

「本文主要将Android开发以及静态分析时所需的工具进行整理收集,具体用什么工具还需要根据个人习惯来定


本人越狱-搞机屌丝,曾流浪在各大手机论坛

长按二维码关注|搞机我是认真的

30
标签:
Android
创业者们,如果你或你的朋友想被优派网报道,请狠戳这里    寻求报道
李相公驻站作者
作者简介
0
文章总数
0万
总阅读量
ASO114市场数据分析平台
>