2.jpg

手机上的许多应用都有权访问您的麦克风,这是不可否认的事实。除了手机自带的应用,你肯定会下载其他应用,比如WhatsApp, Skype和 Facebook。

从你允许这些应用访问麦克风的那刻起,它们就能随时随地监听你,而你不会发现。

今年年初,Intel就闹出了巨大的BUG问题,可Android这边似乎也不让人省心,虽然和硬件无关,可Android应用监听用户的消息同样让不少小伙伴紧张了一下。一家叫作Alphonso的公司的软件利用智能手机麦克风去监听电视广告和电视节目中的声音信号。Alphonso此前对《纽约时报》表示,该公司的软件并不记录用户的电话通话,只是监听电视发出的音频信号,从而跟踪和观察用户行为。这些数据反过来也可以出售给广告商。

理论上,你永远不会知道一个app是否越界。然而在实际生活中,有方法可以检测app是否在监听你。检测app行为是项简单的技能,接下来介绍如何查看安卓手机应用是否在监听。

根据教程,您可以准确跟踪app访问麦克风的时间。

 

跟踪Android API调用


用来检测app是否在监听的工具叫AppMon.AppMon的Android Tracer可以通过在调用Java时跟踪它们来监控手机上的应用程序(几乎所有安卓的应用程序都是用Java编写的)。

想要使用麦克风的应用会使用AudioRecord,用Android Tracer检测,我们可以看到应用访问麦克风的方式和时间。大部分AppMon都集中在macOS和Linux上,但在本文中我们将向您展示如何在Windows上安装它。

AppMon通过名为Frida的应用程序登陆Android,所以您需要现在需要检测的安卓设备上安装这款监测软件。

Frida允许您将脚本插入Android程序,与功能挂钩并监视加密API。由于安装在测试环境之外的任何手机上,它是一个可怕的应用程序。在谷歌游戏商店找不到它,所以你只能拷贝它。此,您需要在手机上启用调试,并在Windows上安装ADB。

 

在Android上启用USB调试


首先,将您的Android设备调到开发者模式,并且启用USB调试:

  • 打开“设置”。

  • 选择“系统”(仅适用于安卓8.0或以上)。

  • 滑倒底部,然后选择“关于”。

  • 滑倒底部,然后按“创建”7次。(没错,就是要按七次。)

  • 返回到上一个界面,找到位于底部的“开发者”。

打开开发者模式,然后一直往下滑动,找到新显示的选项USB调试,然后将其打开。用USB线将Android设备插入Windows机器,进入下一阶段。

 

在Windows上安装ADB


ADB是使Android手机交互的便捷工具,我们将用它将Frida安装到设备上。

下载适用于Windows 的android-sdk命令行工具。

下载并解压后,您可以从命令行运行adb.exe。

在adb.exe当前所在的目录中打开命令窗口。您可以通过按住shift键并右击adb.exe所在的资源管理器窗口并选择“在此处打开命令窗口”来执行此操作。

使用新打开的命令提示符,键入 adbdevices,单击回车。

然后会显示当前连接的启用了调试的Android设备列表。
例如:

 C:\Users\User1> adb devices
    List of devices attached
    XXXXXXXXX    device

 

在Android上运行Frida

下载frida-server,您需要它在Android设备上监控正在运行的应用程序。

下载文件名为“Frida-server-NN.N.NNN-android-MMM.xz”的压缩二进制文件,其中NN.N.NN表示版本号,MMM是手机中的处理器类型(arm, arm64,x86或x86_64)。

将下载的文件解压到adb.exe所在的位置,并将文件重命名为Frida-server。

回到之前打开的命令提示符中,将Frida-server文件放到Android设备上并运行它:

 

adb push frida-server /data/local/tmp/
    adb shell "chmod 755 /data/local/tmp/frida-server"
    adb shell
    su
    /data/local/tmp/frida-server &

这里我们将Frida-server文件放到/ data / local / tmp /,这是Android文件系统上允许您执行脚本的目录。

然后我们使用chmod编辑Frida-server的文件权限,以确保它能够运行。

最后,运行Frida-server程序(命令末尾的&符号使其在后台运行)。

 

准备Windows


Windows现在需要准备好运行Android Tracer。Tracer是用Python编写的,必须安装Python才能运行它。

将Python和adb放在Windows环境变量之后,您可以运行ADB和Python,而无需位于安装adb.exe或python.exe的目录中运行。

 

安装Python 2


以下是Python 2.7入门的快速指南,它是Python 2系列里用于编写本文的最新版本。

浏览Python网站,选择最新版本的python 2旁边的“下载”选项(作者使用版本为2.7.15)。向下滚动,直到您看到64位和32位环境的MSI,根据Windows版本选择相应的MSI。下载后,启动MSI文件并按照安装说明进行操作。

 

Python和ADB Windows环境变量


在Windows 10系统中,打开“控制面板”并搜索“环境变量”。在“系统”选项中选择“编辑”系统的环境变量。


1.jpg


选择窗口底部的“环境变量”。在打开的新窗口里,你会看到用户变量 <用户>和系统变量。在系统变量下,有一个名为Path的变量。

选择此选项使其高亮显示(如下图截屏所示),并进行选择“编辑”...


3.jpg


选择“ 新建”将adb目录添加到现有列表,然后输入adb.exe当前所在的目录(例如C:\Program Files \ ADB \);

再次选择“ 新建”并添加python.exe的位置(例如C:\ Python27 \);

最后一次选择“ 新建”并添加pip.exe的位置(例如C:\ Python27 \ Scripts \)。

 

安装AppMon附属项


为了在Windows上运行AppMon,需要一些必要的Python附属项。AppMon需要使用到argparsefridaflasktermcolor  和dataset

在Windows设备上运行以下命令来安装这些附属项:

  pip install argparse frida flask termcolor dataset --upgrade

 

安装AppMon


AppMon github页面上,选择克隆或下载包含AppMon的压缩文件。您必须将appmon-master主文件夹解压缩到Windows设备上的快捷位置。找到解压缩AppMon的位置,然后进入名为tracer的文件夹。按住shift并右键单击此目录,然后在此处选择打开命令窗口的选项。

现在,您可以使用Tracer来监控移动应用程序是否在不必要的时候进行监听。

以下提供了一个示例命令,用于查看WhatsApp是否正在监听。

 

监听麦克风


我们现在可以运行Android Tracer来监听麦克风何时开始录制:

   python android_tracer.py -a "com.whatsapp" -c "*AudioRecord*" -m "startRecording"

上图中-a "com.whatsapp"表示,你想要监控一个名为com.whatsapp的应用程序;‑c选项指定要监视的项目(Java子程序); -m表示要格外注意的具体方式(Java功能)。文本字符串“* AudioRecord *”中的星号表示您要匹配文本开头和结尾的任何字符。

这样可以很容易就可以关注一整套相关的项目或方法,而无需明确地列出每一条——任何包括“AudioRecord”名称的方法都将匹配。

Android的综合开发者文件里有你可能需要监视的项目和方法的完整列表——例如,我们正在监视AudioRecord项目里的startRecording,然而您可能想要看的却是Camera 项目里的takePicture

如果您喜欢研究移动设备的幕后内容,请查看这篇有关分享应用程序的文章  。


自撰写本文以来,Android 9 Pie已经发布,加入了一些急需的隐私保护功能。在Android开发者博客的一份声明中,工程副总裁DaveBurke表示,在应用程序空闲时,麦克风将无法访问:

系统现在限制空闲的应用程序访问麦克风、摄像头和所有传感器。

来自:MottoIN(微信号:mottoin),作者:1ND