一、前言

此系列文章将针对 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 文件等。

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

JEB

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

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

JADX

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

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

Smali/Baksmali

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

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

下载地址: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 服务器通信。

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

Apktool

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

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

AndroidKiller

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

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

Gdb

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

下载地址: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 的命令了。

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

Janus

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

其他工具

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

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

java反编译工具_Android APP 取证之逆向工具篇相关推荐

  1. java反编译软件_安卓强大的逆向软件,媲美MT管理器!

    手机上目前功能最强大的反编译工具是MT管理器,为手机用户提供了强大的逆向功能. 包括APK签名,优化,共存以及dex反编译等功能 虽然功能强大,但是目前很多功能都要收费,一百多的价格对一般用户来说,确 ...

  2. java 反编译 class文件 jad eclipse乱码

    java 反编译 class文件 jad eclipse 编程 破解 工具 工具使用jad(还有joda,jd等工具) 1.使用jad反编译class文件,jad可以配置到eclipse中当做插件,直 ...

  3. java反编译工具_ReverseTool逆向工具集合

    反向工具 逆向工具集合 真棒骇客 Java和Jar(Android) jd-gui jar包浏览工具,对应的IDE插件,JD-Eclipse / JD-IntelliJ Luyten一个用于Procy ...

  4. 【转载】Mac安装 Java 反编译工具 JD-GUI

    一.安装 下载地址:https://github.com/java-decompiler/jd-gui/releases 选择对应平台的资源进行下载,这里可选择:jd-gui-osx-1.6.6.ta ...

  5. 一些Java反编译工具/源代码查看工具的介绍

    2019独角兽企业重金招聘Python工程师标准>>> 有的朋友抱怨他们在使用他们公司的闭源框架时看不到底层的源代码.那么可以尝试使用一些Java反编译工具. 下面我举个例子介绍具体 ...

  6. 推荐一款非常好用的java反编译工具(转)

    源: 推荐一款非常好用的java反编译工具 转载于:https://www.cnblogs.com/LittleTiger/p/4556239.html

  7. Java反编译工具-JD-GUI解决直接打开.class文件卡顿问题

    场景 Java反编译工具JD-GUI目前是1.4.0 下载以及安装参照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/84317 ...

  8. Java反编译工具-JD-GUI下载以及使用

    介绍 Java反编译工具-JD-GUI 下载 https://download.csdn.net/download/badao_liumang_qizhi/10798142 使用 下载工具,双击exe ...

  9. 开源Java反编译工具

    Java 反编译器 1. JD-GUI JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows.Linux和苹果Mac Os三个平台 ...

最新文章

  1. linux awk(good)
  2. 微软VS.NET(visual studio.net)中FreeTextBox控件的详细使用视频教程
  3. openstack的云主机相关命令
  4. MFC中混合使用Duilib制作界面
  5. 【开源】.net 分布式架构之监控平台
  6. caffeine 读操作源码走读 为什么读这么快
  7. 航拍高手、吉他十级,6500+Star 开源项目作者,后浪程序员给力!
  8. android 定时关机 app,定时关机X下载-定时关机X(强制关机)下载v1.1 安卓版-西西软件下载...
  9. C++ 代码整洁之道
  10. Windows重装为Linux
  11. 空降领导想活下去必须做好的5点
  12. uoj132/BZOJ4200/洛谷P2304 [Noi2015]小园丁与老司机 【dp + 带上下界网络流】
  13. 目前三款国内最靠谱最良心的杀毒软件推荐 | 国内杀毒软件哪个好用?威航软件园诚意推荐这三个
  14. Flex(AS) JS抓取HTML页面元素数据
  15. 娑罗双树,半枯半荣,娑罗花开,盛者必衰
  16. 阿里P8大牛匠心独运,用图解的方式让繁杂的计算机网络一目了然
  17. 层次低的人复杂,境界高的人简单,总结得真深刻!
  18. 格杰仁波切:修佛根本在修心…
  19. 投基取巧:如何通过基金投资获得 20%+ 的收益?基金理财干货分享,附思维导图!
  20. 直播课堂系统,打造出超过线下培训场景200%的在线学习课堂

热门文章

  1. 金融行业创新突围,华为如何趟过产业数字化深水区?
  2. 长沙望城:以“速”大干一百天,以“质”实现双过半
  3. 小数向上_【实操技巧】社保计算方法:向上取整见分进角(上)
  4. 显示纯服务器_不止于手机!华为台式机真的来了,网友:这次真的“纯国产”...
  5. 关系查询处理 查询优化 论文_每日论文33:关系数据库中的关键词查询结果动态优化...
  6. java raster_Raster
  7. 删除 jar 的 asset_【unity游戏开发】SDK学习(1)-C#与jar交互
  8. python 代码转程序_python将代码转换成网页
  9. mysql的dml全,MySQL数据管理----DML语言(全记住)(示例代码)
  10. 景观设计主题命名_好听的景观名字