加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

如何开始对Android应用的逆向分析?

发布时间:2018-09-04 13:39:40 所属栏目:评论 来源:secist
导读:副标题#e# 技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战 本文是我的关于如何开始Android逆向系列文章的第一部分。在文末提供了一个文档,你可以根据该文档说明部署同我一样的实验环境。 在了解android应用的逆向之前,你必须对a
副标题[/!--empirenews.page--] 技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

本文是我的关于如何开始Android逆向系列文章的第一部分。在文末提供了一个文档,你可以根据该文档说明部署同我一样的实验环境。

在了解android应用的逆向之前,你必须对android平台及其架构和android应用程序的构建块(组件)已有了一个较好的理解。如果你并不了解这些,那么我建议你先参阅以下链接,然后再继续浏览本文。

  • Android平台架构
  • Android应用程序及其组件
  • Android应用程序及其架构(PPT)

我当前的实验室环境如下:

  • 主机系统为windows,其中安装了virtual box 和 genymotion
  • virtual box 和 genymotion的设备都处于桥接模式
  • Android 4.4 (kitkat API version 19)
  • 在virtual box中,kali linux也同时运行(与genymotion一起)

注:该设置并非固定,你可以根据自身需求环境进行调整。例如,你也可以使用kali linux作为你的主机系统,并在上面安装genymotion。

在正式开始我们的逆向之旅前,我想先向大家介绍一下名为adb(android debugger bridge)的工具/服务器。它可以帮助我们连接,获取数据并将指令传递给远程Android设备(调试模式可以通过设备设置中的开发者模式打开)。当前情况下,我们将使用genymotion设备(虚拟设备)。

对于安卓应用的逆向,这里有一个非常好的可供我们学习和练习的apk - DIVA ( Damn insecure and vulnerable mobile Application )。这是一个由Payatu的安全分析师开发的脆弱安卓应用。下面我们也将以该应用为例:

首先,让我们来启动genymotion设备:

  • 在Windows/Linux中搜索Genymotion应用
  • Start genymotion

如何开始对Android应用的逆向分析?

选中你想要启动的设备,然后点击Start按钮。

如何开始对Android应用的逆向分析?

如果你以上步骤正确执行,则应该能看到类似以下的界面:

如何开始对Android应用的逆向分析?

可以看到Android设备已经启动,现在我们来启动虚拟机中的kali linux。步骤如下:

  • 启动virtual box
  • 从中启动kali虚拟机

注:这两个虚拟机处于桥接模式。如果有DHCP服务器,则需要连接到路由器或网络。

现在两台机器都已启动,下面让我们来检查下kali和Android设备之间的连接情况。为此,我们需要获取Android设备的IP地址。

  • 导航到设置菜单
  • 单击WiFi选项
  • 你会在网络中看到WiredSSID
  • 长按“WiredSSID”选项
  • 你会看到如下所示界面

如何开始对Android应用的逆向分析?

获取IP后我们回到kali终端,并键入以下命令检查连接情况:

  1. adb connect 192.168.20.74 

如果命令正确执行,你将会看到以下输出。

如何开始对Android应用的逆向分析?

现在让我们通过执行以下命令,来验证设备是否真正连接:

  1. adb devices 

如何开始对Android应用的逆向分析?

通过确认我们得知设备已连接到IP地址192.168.20.74和5555端口(adb默认的连接端口为5555)。

现在,我们就可以在Android设备上执行不同的adb命令了。通过-h选项查看可用参数:

  1. adb -h 

如何开始对Android应用的逆向分析?

在帮助信息中会为你列出所有可用的参数选项。下面是一些在逆向中时常会用到的命令:

ADB 调试

  1. adb devices – Lists all the connected devices  
  2. adb forward – used for forwarding socket connections  
  3. adb kill-serve 

无线

  1. adb connect – connects to the remote device 
  2. adb usb – connects to the USB attached device 

包管理器

  1. adb install – install a package adb uninstall – uninstall a package adb shell pm list packages – used for displaying lists of packages installed adb shell pm path – used for displaying package path on device adb shell pm clear 

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读