47326-collab/Digital-forensics-Project
GitHub: 47326-collab/Digital-forensics-Project
这是一个Bash脚本工具,通过ADB从Android设备提取数据,支持数字取证和社交分析。
Stars: 0 | Forks: 0
# 📱 ADB 数据提取与系统快照脚本
这是一个通过ADB(Android Debug Bridge)从Android设备提取全面数据和系统快照的Bash脚本。适用于对授权设备进行**数字取证**、**设备审计**和**OSINT调查**。
## 📋 功能
- ✅ 设备信息与系统属性
- ✅ 电池、运行时间与连接状态
- ✅ 网络接口配置
- ✅ 已注册账户与电子邮件地址
- ✅ 联系人与电话号码
- ✅ 完整通话记录转储
- ✅ 短信消息转储
- ✅ 已安装应用包(全部 + 第三方)
- ✅ 活跃的系统服务
- ✅ Logcat 系统日志快照
- ✅ 完整的 Android 错误报告(后台生成)
- ✅ 每次运行创建带时间戳的输出文件夹
- ✅ 彩色终端输出
## 🔧 要求
| 要求 | 详情 |
|---|---|
| 操作系统 | Linux / macOS / WSL (Windows) |
| ADB | 已安装 Android 平台工具 |
| 设备 | 已启用 USB 调试 |
| 连接 | USB 数据线 |
### 安装 ADB
**Ubuntu/Debian:**
```
sudo apt install android-tools-adb
```
**macOS (Homebrew):**
```
brew install android-platform-tools
```
**Windows:**
从 [Android 平台工具](https://developer.android.com/tools/releases/platform-tools) 下载
## 🚀 使用方法
### 1. 在 Android 设备上启用 USB 调试
`设置 → 开发者选项 → USB 调试 → 启用`
### 2. 通过 USB 连接设备并验证
```
adb devices
```
你应该看到你的设备被列为 `device`(而非 `unauthorized`)。
### 3. 克隆仓库
```
git clone https://github.com/your-username/adb-extractor.git
cd adb-extractor
```
### 4. 使脚本可执行
```
chmod +x extract.sh
```
### 5. 运行脚本
```
./extract.sh
```
## 📁 输出结构
每次运行都会创建一个带时间戳的文件夹:
```
ADB_Report_20260516_143022/
├── device_info.txt # Model, manufacturer, Android version, serial
├── device_state.txt # Uptime, battery, connectivity
├── network_info.txt # IP addresses, network interfaces
├── registered.txt # Apps with linked accounts
├── emails.txt # Extracted email addresses
├── reboots.txt # Boot count
├── numbers.txt # Contacts with phone numbers (formatted)
├── contacts.txt # Full raw contacts dump
├── call_logs.txt # Complete call history
├── sms.txt # All SMS messages
├── packages_all.txt # All installed apps
├── packages_thirdparty.txt # User-installed apps only
├── services.txt # Active Android system services
├── logcat_snapshot.txt # Last 1000 lines of system log
└── bugreport_*.zip # Full Android bug report
```
## ⚙️ 工作原理
该脚本使用一个核心辅助函数 `run_adb_command`,它接受:
- 一条描述(打印到终端)
- 要运行的 ADB shell 命令
- 一个输出文件名
- 一个可选的 `silent` 标志(用于在冗长命令中抑制终端输出)
命令按顺序运行。错误报告作为**子进程**在后台启动,因为它可能需要几分钟时间,这允许脚本的其余部分无需等待即可完成。
## 📸 命令参考
| 命令 | 用途 |
|---|---|
| `getprop` | 系统属性 |
| `dumpsys battery` | 电池状态 |
| `dumpsys connectivity` | 网络状态 |
| `dumpsys account` | 同步的账户和电子邮件 |
| `content query --uri content://contacts/phones/` | 联系人 |
| `content query --uri content://call_log/calls` | 通话记录 |
| `content query --uri content://sms/` | 短信消息 |
| `pm list packages` | 所有已安装应用 |
| `pm list packages -3` | 仅第三方应用 |
| `dumpsys -l` | 活跃服务列表 |
| `logcat -d -v time` | 系统日志快照 |
| `adb bugreport` | 完整的系统错误报告 |
## 🛡️ 伦理使用场景
- 个人设备备份与审计
- 移动设备数字取证(授权调查)
- 安全研究与渗透测试(在范围内)
- 学术/教育目的
- IT 支持与设备故障排除
## 👤 作者
**Muhammad Hammad**
网络安全学生 | 数字取证与 OSINT
## 📄 许可证
本项目采用 MIT 许可证。详情请参阅 [LICENSE](LICENSE)。
标签:ADB工具, Android取证, HTTP工具, OSINT工具, 安装包管理, 应用安全, 数字取证, 数据提取, 日志收集, 服务监控, 漏洞报告, 目录枚举, 短信备份, 社交分析, 移动安全, 系统快照, 网络配置, 联系人提取, 自动化脚本, 设备审计, 通话记录, 隐私研究