java反编译工具_Android APP 取证之逆向工具篇

6402529a4a2a5280d99cf924743769b9.gif

一、前言

此系列文章将针对 Android APP 取证领域展开讨论。在国内,由于最近几年国产手机厂商之间的竞争和努力,如今 Android 平台的使用数量和广度,已经远超苹果的 iOS 了。如今 Android 的生态环境已经变得相当良好和成熟,广大老百姓的衣食住行也早已融入其中。故而,Androd的众多 APP 里蕴含着海量的广大用户的数据。但是其中也滋生了很多黑色产业的链条,窃取着用户信息,损害者用户利益。无论是从有效数据的丰富性角度,还是从黑产 APP 恶意分析和溯源分析的角度,Android APP 取证显得愈发重要起来。我们先从介绍 APP 逆向工程介绍开始,今天先看下有哪些 APP 逆向工具。

二、逆向工具介绍

IDA

IDA PRO 这是一款强大的反编译工具,和逆向打交道的人应该都有所耳闻。IDA 会对可识别的文件进行代码反编译,反编译过程依据文件大小而定,例如:几百 KB 大小的文件,IDA 可短时间分析完毕;更大文件,IDA则自动分析一段时间,越大的文件 IDA 分析的时间通常会越长(因为可执行文件越大,意味着可执行文件中代码段也越大,IDA 分析时间自然会越长)。IDA软件会利用回归方式递进分析可执行文件反汇编代码。

它可以运用于反汇编 Android 系统的内核镜像和 native 层的动态链接 .so 文件等。

809cd078f23e2181af5227c9d2dd5a18.png

下载地址:https://www.hex-rays.com/products/ida/

JEB

JEB是一款功能强大的为安全专业人士设计的 Android 应用程序的反编译工具。用于逆向工程或审计APK文件,可以提高效率减少许多工程师的分析时间。JEB 的独特功能是,其 Dalvik 字节码反编译为 Java 源代码的能力,无需 DEX-JAR 转换工具。当处理混淆的或受保护的代码块时,JEB 拥有强大的用户界面,可以检查交叉引用,重命名的方法,字段,类,代码和数据之间导航,做笔记,添加注释,以及更多。使用Java或Python,用户可以编写自己的脚本和插件来自动执行逆向工程流程。

231ccaf5b5a3b850d0c46cf1d0a2b67d.png

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

JADX

JADX同样是一款功能非常的强大的 Android 应用程序反编译的工具。它的优点在于拥有图形化的界面、拖拽式的操作、直接反编译输出 Java 代码、可以导出 Gradle 工程等。JADX 提供的搜索功能,非常强大,而且搜索速度也不慢。它支持四种维度的搜索,Class、Method、Field、Code,可以根据所需的内容进行勾选,范围最大的就是 Code ,基本上就是文本匹配搜索。但是,JADX 反编译一些小的 APK ,一点压力都没有,对于一些比较重的 APK,一般大于 50MB 时,就可能遇到使用 JADX 反编译的时候卡死的问题。

332a752d82497478f6b90748f250ef51.png

下载地址:https://github.com/skylot/jadx

Smali/Baksmali

SMALI/BAKSMALI 这是一款强大的 apk 文件编辑工具。众所周知,Android虚拟机的可执行文件并不是普通的 class 文件,而是再重新整合打包后生成的 dex 文件。dex 文件反编译之后就是 Smali 代码,所以说,Smali 语言是 Android 虚拟机的反汇编语言。SMALI/BAKSMALI 通过修改 Smali 代码,更改了 APK 运行逻辑,可以反编译和重新编译 classes.dex 文件,同时它也实现了 dex 格式所有功能,例如调试信息,线路信息等。

然而,它是一款没有图形界面的命令行工具:

ccddaf063c1fe5eb64fabb49e18feca8.png

下载地址:https://bitbucket.org/JesusFreke/smali/downloads/

Adb

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具。ADB 是一种功能多样的命令行工具,可以在电脑端与设备进行通信。ADB 命令可用于执行各种设备操作,例如安装和调试应用,具有良好的拓展性,提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

1.    客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 ADB 命令来从命令行终端调用客户端。

2.    守护进程 :在设备上运行命令。守护进程在每个设备上作为后台进程运行。

3.    服务器:管理客户端和守护进程之间的通信。服务器在开发机器上作为后台进程运行。

当启动某个 ADB 客户端时,客户端会先检查是否有 ADB 服务器进程正在运行。如果没有,它将启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 ADB 客户端发出的命令 - 所有 ADB 客户端均通过端口 5037 与 ADB 服务器通信。

0f8834b7988e18be45fc4b8e737fa5b9.png

下载地址:https://developer.android.com/studio/releases/platform-tools

Apktool

APKTool 是谷歌提供的 APK 编译工具,能够反编译及回编译 apk。而且它安装反编译系统 apk 所需要的 framework-res 框架,清理上次反编译文件夹等功能。它可以完整解包APK,解包后你可以看到 APK 里面的声明文件、布局文件、图片资源文件、由 dex 解包出来的 smali 文件、语言文件等。APKTool也 可以帮助完成汉化、修改界面、修改代码的等任务。

82b03d087f3dc6e6733dde99c13e3c55.png

下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads/

AndroidKiller

AndroidKiller是一款可视化的安卓应用逆向工具,集APK反编译、APK打包、APK签名,编码互转,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一身,支持logcat日志输出,语法高亮,基于关键字(支持单行代码或多行代码段)项目内搜索,可自定义外部工具;吸收融汇多种工具功能与特点,打造一站式逆向工具操作体验,大大简化了安卓应用/游戏修改过程中各类繁琐工作。同时还可以用于汉化 app,因为某些国外app没有中文,所以有人专门做汉化app,AndroidKiller就是汉化的利器。

5b922f507fe663f9f99c8c1c27f0c933.png

下载地址:https://www.52pojie.cn/thread-319641-1-1.html

Gdb

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。对于一名Linux下工作的c++程序员,gdb是必不可少的工具。如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。

6d4d15ab06e7b8906b926abbde2d329f.png

下载地址:https://www.gnu.org/software/gdb/

Ndk-gdb

为了调试android native程序,谷歌推出了 NDK-gdb 工具使用。在手机上启动安装的程序,准备让 ndk-gdb 挂接。注意:手机需要root,否则ndk-gdb可能没有相关权限启动gdbserver。进入工程目录,执行 $NDK_PATH/NDK-gdb 。它会分析当前目录下的AndroidManifest.xml文件,提取包名,并且判断是否是 debuggable 模式,然后自动连接包名对应的程序上。如果启动成功,程序会被中断,在控制台上就可以输入 gdb 的命令了。

ad35abf0d52940bc7a607eadef17766a.png

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

Janus

Janus 由盘古团队研发,里面除了恶意代码检测、APP 漏洞分析、大数据 APP 行为监控等功能外,还集成了深度扫描后的交互式逆向分析环境。而且,很多时候弥补了 JEB 和 jadx 的反编译部分失败的不足之处。最近,Janus 相关能力也融合进了盘古石的 APP 取证服务平台。

18d01c0e61292726c26548d9f5b3ec05.png

其他工具

其实Android APP 相关的逆向工具还有很多,比如 GDA 和 Smali2Java 等优秀的工具,这里不再一一列举。上面诸多的优秀工具已经能满足很多的逆向场景了。

“盘古石”团队是奇安信科技集团股份有限公司旗下专注于电子数据取证技术研发的团队,由来自国内最早从事电子数据取证的成员组成。盘古石团队以“安全为先,洞鉴未来”为使命,以“漏洞思维”解决电子数据取证难题,以“数据驱动安全”为技术思想,以安全赋能取证,研发新一代电子数据取证产品,产品涵盖计算机取证、移动终端取证、网络空间取证、IoT取证、取证数据分析平台等电子数据取证全领域产品和解决方案,为包括公安执法、党政机关、司法机关以及行政执法部门等提供全面专业的支持与服务。

74f842dbe5debf2f447fe45ebb49b2c1.png

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值