问题描述
最近安装并运行了DiskDigger以恢复被意外删除的图像,发现有大量屏幕截图记录,这些截图来自用户的活动,包括聊天应用和比特币钱包等敏感应用。用户希望了解哪些应用程序截取了这些屏幕截图,并希望获得详细的审计方法。
解决方案
方案1:撤销所有应用程序的root权限
注意:此操作可能会影响部分应用程序的功能,请谨慎执行。
步骤1:撤销所有应用程序的root权限
- 打开终端或ADB shell。
- 使用命令
adb shell pm list packages -3
列出所有具有root权限的应用程序。 - 对每个具有root权限的应用程序执行
adb shell pm clear <package_name>
命令撤销其root权限。 - 重启设备以确保更改生效。
方案2:监控磁盘写入活动
步骤1:安装inotifywait-for-Android
- 下载inotifywait-for-Android源码。
- 使用NDK编译源码,生成可执行文件。
- 将生成的可执行文件传输到设备上。
- 使用命令
./inotifywait-for-Android -m /path/to/folder
监控指定文件夹的写入活动,记录每次写入的时间戳、负责的应用程序名称和文件名。
方案3:替换screencap
工具
- 下载并编译
screencap
工具的替代版本。 - 使用
adb push
命令将替代版本的screencap
工具推送到设备。 - 修改系统环境变量,使
screencap
工具指向新版本。
方案4:使用SELinux策略进行审计
注意:此方法需要设备支持SELinux,并且Google有意使此过程变得困难。
1. 检查SELinux状态:adb shell getenforce
。
2. 设置SELinux为permissive模式:adb shell setenforce 0
。
3. 使用sealert
工具或其他SELinux审计工具监控应用程序的文件访问行为。
方案5:使用第三方审计应用
- 查找并安装提供类似功能的第三方审计应用。
- 通过应用界面或日志查看应用程序的文件访问记录。
方案6:分析最近应用切换器
根据回复2的信息,屏幕截图可能来源于Android内置的“最近应用”切换器。用户可以通过查阅相关文档或博客进一步了解具体原因。
通过上述方法,用户可以逐步排查并确定哪些应用程序截取了屏幕截图。建议结合多种方法进行综合审计,以确保结果的准确性。
正文完