亚行vs间谍cam和麦克风

如何检查Android智能手机上的任何应用程序是否有照片或视频报告,尽管他从来不需要它? 以下选项根本不是完美的选择,但不需要“ root”或自定义固件。

PS我在文章中添加了对监视应用程序对麦克风访问的描述。

您需要安装什么:
  • ADBAndroid调试桥 )(例如,作为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-L01Android 5.1.1)和Huawei G700-U20Android 4.2.1)上进行了测试,在其他智能手机型号上dumpsys的输出格式可能有所不同( media.camera服务未标准化),这需要代码更正。 。
消息格式在/system/lib/libcameraservice.so库中进行了硬编码-例如,对于Huawei SCL-L01智能手机:

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

而且权限还不够... grep :-)


麦克风访问监控

可以应用类似的方法来监视应用程序对麦克风的访问。 在这种情况下,您需要监视服务media.audio_flinger
我们在“外壳”中输入命令(给定的代码可在智能手机Huawei SCL-L01Android 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-U20Android 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 

这是“复活”的爱丽丝在这种情况下的表现形式:

Source: https://habr.com/ru/post/zh-CN435098/


All Articles