如何检查
Android智能手机上的任何应用程序是否有照片或视频报告,尽管他从来不需要它? 以下选项根本不是完美的选择,但不需要“ root”或自定义固件。
PS我在文章中添加了对监视应用程序对麦克风访问的描述。您需要安装什么:
- ADB ( Android调试桥 )(例如,作为Android SDK平台工具的一部分 -您可以在此处下载);
- 手机的驱动程序(例如,如有必要,可以在此处下载Google USB驱动程序 )。
我们打开手机上的
USB调试模式,然后将智能手机连接到计算机的
USB端口 ,您应该选择
USB连接模式,而不是“仅充电”。
隐藏文字例如,在“设备管理器”中显示智能手机,如下所示:
在“照片”或“文件”模式下

在USB驱动器模式下

因此,在
lsusb命令的输出中:

在安装“工具”的目录中打开命令行。
检查连接是否成功(显示已连接智能手机的序列号):
adb devices
(对于
Windows )

对于
Linux,命令如下所示:
./adb devices
如果未授权该计算机使用此智能手机(适用于
Android 4.2.2及更高版本),则序列号旁边将显示警告消息“
未经授权 ”。
要进行授权,您需要通过智能手机上的
USB确认调试许可。
隐藏文字在Linux下 ,可能会出现“ 无权限 ”消息-在我的情况下,我设法通过将智能手机切换为“媒体设备( MTP )”模式来解决此问题。
在设备上启动外壳程序(我们收到“ $”提示):
adb shell

然后,我们介绍以下“魔术”符号:
while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" ; date; sleep 1; done
改进的版本,删除了输出“ NAME”和空行:
while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
而且什么也没有发生:-)直到某件事决定采取一点射击:-)
指示的“魔术”字符集开始尽快监视对照相机服务
media.camera的访问(此服务由
libcameraservice.so库实现)。 如果摄像机未激活,则
dumpsys将显示以下内容:

如果需要摄像头,则会显示:
grep检查“
PID ”是否存在,如果存在,则从字符串中删除进程号,并将其输入
ps命令,该命令显示有关该进程的数据,而另一个
grep则剪切其名称。 检测到相机的活动后,请暂停一秒钟,以使消息不会太频繁地溢出。 要中断命令,请使用组合键
CTRL-C并退出外壳程序
CTRL-D 。
最简单的示例是,在启动用于照片/视频拍摄的常规智能手机应用程序之后,带有进程名称和日期/时间的消息开始以1秒的间隔倒入:

”
但是还有更多狡猾的应用程序,可以通过关键字“间谍凸轮”找到它们(例如,使用技巧进行单像素预览(
http://www.ez.ai/2014/05/exploring-limits-of-covert-data .html ))。 这样的创作在拍摄和报告开始时就崩溃了,但是消息却定期地流入:

我还检查了在单击浮动按钮时单拍的应用程序中建议方法的功能

没有任何可见的预览窗口。
该脚本成功捕获了对摄像机的调用,并在每次拍摄时发出了两条消息:

但是,没有什么能阻止您在名称更纯正的应用程序中实现类似的功能(
https://www.zdnet.com/article/this-scary-android-malware-can-record-audio-video-and-steal-your- data / )和权限-好,有各种各样的情况。 而且,“合法”应用程序可以在需要时进行报告(我已经提到过其中一种情况)。 而且,
Android P采取措施防止后台应用程序访问相机并非徒劳。
该方法已经在智能手机
Huawei SCL-L01 (
Android 5.1.1)和
Huawei G700-U20 (
Android 4.2.1)上进行了测试,在其他智能手机型号上
dumpsys的输出
格式可能有所不同(
media.camera服务未标准化),这需要代码更正。 。
消息格式在
/system/lib/libcameraservice.so库中进行了硬编码-例如,对于
Huawei SCL-L01智能手机:

在
评论中 -提示如何更改在
Android 9下使用智能手机的代码。
此评论显示了由
HTC U11维护的摄像机访问日志。
但是,例如,在“古老的”
华为 U8650 (
Android 2.3.4)上,
dumpsys可以正常工作:

而且权限还不够...
grep :-)
麦克风访问监控可以应用类似的方法来监视应用程序对麦克风的访问。 在这种情况下,您需要监视服务
media.audio_flinger 。
我们在“外壳”中输入命令(给定的代码可在智能手机
Huawei SCL-L01 (
Android 5.1.1)上使用):
while true; do ps `while ! (dumpsys media.audio_flinger | grep -A20 Input| grep -A1 Client | grep yes | grep -o "[^yes ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
如果某些应用程序通过麦克风记录声音,则在
dumpsys media.audio_flinger的输出中有一个类似的片段:

(
输入线程 -输入流,
22467-过程记录声音的
PID )。
通过标准应用程序“语音记录器”录制声音并启用监听(通过上述代码)时,将显示以下消息:

但是,当激活
Google翻译语音输入时,会注入哪些消息:
在其他智能手机上, dumpsys输出格式可能会有所不同,这需要进行代码校正。例如,在智能手机
Huawei G700-U20 (
Android 4.2.1)上:

在这种情况下,监视代码将如下所示:
while true; do ps `while ! (dumpsys media.audio_flinger | grep -A3 Input| grep -A1 Clien | grep -o "[^ ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
这是“复活”的爱丽丝在这种情况下的表现形式:
