Moukthar通话录音与摄像头控制:远程监控功能实战详解
【免费下载链接】mouktharAndroid remote administration tool项目地址: https://gitcode.com/gh_mirrors/mo/moukthar
想对Android设备进行远程监控,却不知道如何下手?Moukthar 是一款开源的Android 远程监控工具(Remote Administration Tool),它把手机变成可被远程操控的"监控终端":远程通话录音、前后摄像头控制、视频录制、短信与通知监听、键盘记录、定位追踪等能力一应俱全。本文将以新手视角,重点拆解通话录音与摄像头控制两大核心功能的实现原理与实战操作,并附上完整源码路径,帮你快速掌握这套远程监控系统的用法。
一、Moukthar是什么?先认识这套远程监控系统
Moukthar 由三部分组成,整体架构非常清晰:
| 组件 | 作用 | 技术栈 |
|---|---|---|
| Android 客户端 | 安装在目标手机上,接收命令并执行 | Java / Kotlin |
| C2 控制面板 | 网页端管理界面,展示设备与数据 | PHP + MySQL |
| WebSocket 服务器 | 实时转发命令与状态消息 | PHP |
它支持的功能包括:通话录音、拍照、视频录制、键盘记录(Keylogger)、短信监听、通知监听、读写联系人、文件上传下载、GPS 定位、已安装应用列表等。客户端通过 WebSocket 保持长连接,控制端下发命令后,手机端立即执行并把结果回传,全程近乎实时。
想先看整体效果?项目根目录的 README.md 里有完整功能清单和安装步骤。
二、通话录音功能实战:自动录音并上传到C2服务器
Moukthar 的通话录音非常"自动化"——无需手动操作,来电响铃、接通、挂断三个节点都会被自动捕捉。
1. 录音如何被触发?核心在广播接收器
系统通过PHONE_STATE电话状态广播驱动整个流程,核心代码在 Call.java:
- 响铃阶段(RINGING):读取来电号码,立即上报给 C2 服务器,记录"谁打来的";
- 接通阶段(OFFHOOK):自动创建临时文件并启动
MediaRecorder开始录音; - 挂断阶段(IDLE):停止录音,把音频文件上传到服务器,同时登记录音记录。
录音采用.3gp格式、AMR 音频编码,体积小、便于回传;三星设备会优先使用VOICE_COMMUNICATION音源,其他机型则使用VOICE_CALL音源,兼顾了不同厂商的兼容性。
2. 录音文件去向:自动上传与数据库登记
录音停止后,文件会通过 FileManager.java 的uploadFile()上传到 C2 服务器/recording接口,服务端 ControlPanel.php 的uploadRecording()会把录音文件名、号码、时间戳写入数据库。
之后在控制面板的Recordings(录音)页面,就能按设备查看历史通话录音,点击即可在线播放或下载。录音数据模型可参考 Recording.php。
三、摄像头控制实战:远程调用前后摄像头拍照
如果说通话录音是"听",那么摄像头控制就是"看"。Moukthar 支持远程操控手机前置或后置摄像头拍照,照片即时回传。
1. 控制面板操作:三步完成远程拍照
在控制面板打开某台设备的Images(图片)页面,点击相机图标,会弹出摄像头选择窗口:
- 选择Front(前置摄像头)或Back(后置摄像头);
- 点击Send message下发拍照命令;
- 几秒钟后,新照片就会出现在图片列表中,点击即可预览。
2. 拍照背后的代码逻辑
命令由Command枚举中的CAMERA_FRONT/CAMERA_BACK定义,定义见 Command.java。客户端收到命令后,由 WebSocketClient.java 调用 Screenshot.java 的captureImage():
- 根据参数选择对应朝向的摄像头(
getCamera()自动遍历查找前置/后置); - 启动相机预览并执行
takePicture()拍照; - 照片以 PNG 格式保存到相册目录;
- 通过
FileManager.uploadFile()上传至/image接口,并回传文件名与时间戳。
整个过程不需要手机端任何操作,真正实现"远程抓拍"。
四、视频录制功能:定时录制720p视频
除了拍照,Moukthar 还能远程录制视频,且支持自定义时长,这是监控场景中非常有用的能力。
1. 控制面板操作:设定时长即可录制
在Videos(视频)页面点击视频图标,会弹出录制设置窗口:
- 填写Duration(录制时长,单位秒);
- 同样选择前置或后置摄像头;
- 点击Send message下发命令,手机端会自动开始录制。
2. 录制原理:相机 + MediaRecorder 组合
video录制代码 的核心逻辑在captureVideo():
- 打开指定朝向的摄像头并解锁给
MediaRecorder; - 视频源设置为摄像头、音频源设置为
CAMCORDER; - 输出720p(1280×720)、30fps的 MP4 文件;
- 到达设定时长后自动停止录制并上传到
/video接口。
视频文件保存后同样会被登记入库,控制面板 ControlPanel.php 的videos()方法负责视频列表展示与在线播放。
五、统一监控面板:设备管理、实时日志与指令下发
以上所有功能,最终都汇聚在一个统一的 Web 监控面板里。登录后(默认账号android/android)即可看到设备仪表盘:
- 设备列表:显示每台设备的型号、设备ID、IP 地址、系统 API 版本、电话号码;
- 快捷操作:每行右侧提供电话、相机、定位、播放、麦克风等图标,一键下发对应命令;
- 实时日志:底部黑色区域实时滚动 WebSocket 连接状态与指令 JSON,方便排查问题。
设备上线后会自动注册,客户端通过 MainService.java 每 5 秒尝试建立 WebSocket 连接并上报设备ID,断线会自动重连,保证远程监控的持续性。
六、快速上手:从零部署一套远程监控环境
想动手实验,可按以下步骤搭建(详细安装见 README.md 的 Installation 章节):
- 克隆仓库:
git clone https://gitcode.com/gh_mirrors/mo/moukthar - 准备环境:安装 PHP、Composer、MySQL、Apache2;
- 部署服务端:把
Server/目录移动到 Web 根目录,分别在c2-server/和web-socket/执行composer install; - 初始化数据库:导入
database.sql,并在.env配置数据库账号; - 启动 WebSocket:运行
php Server/web-socket/App.php,或使用仓库自带的websocket.service注册为系统服务; - 编译客户端:用 Android Studio 打开
Client/工程,在 Utils.java 中填入 C2 服务器与 WebSocket 地址,编译 APK 安装到目标设备。
⚠️ 注意:Moukthar 目前对 Android 12 以下版本有更好的权限绕过支持,高版本系统可能需要手动授予相关权限。
七、安全与合规提醒
Moukthar 具备强大的远程监控能力,请务必仅将其用于合法授权的场景,例如:
- 家长对未成年子女手机的监护管理;
- 企业设备管理与安全审计;
- 个人丢失设备的定位与取证;
- 安全研究人员的教学实验。
未经他人同意私自安装监控软件,可能触犯《刑法》侵犯公民个人信息罪、非法侵入计算机信息系统罪等相关法律。技术本身无善恶,使用者的边界决定了一切。
总结
通过本文的实战拆解可以看到,Moukthar 用一套简洁的「WebSocket 指令下发 + Android 广播/相机监听 + 文件自动回传」机制,把通话录音、前后摄像头拍照、定时视频录制等远程监控能力完整串联了起来:
- 🔇通话录音:利用
PHONE_STATE广播自动触发,录音上传后可在线回放; - 📷摄像头控制:前后摄像头任选,远程拍照即拍即传;
- 🎬视频录制:自定义时长、720p 高清输出;
- 🖥️统一面板:设备管理、实时日志、一键指令,监控效率极高。
对于想学习远程监控系统架构、Android 端广播与相机编程、PHP + WebSocket 实时通信的开发者来说,Moukthar 是一份非常值得研究的开源参考实现。赶紧克隆源码动手试试吧!
【免费下载链接】mouktharAndroid remote administration tool项目地址: https://gitcode.com/gh_mirrors/mo/moukthar
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考