# SiMay远程控制系统 **Repository Path**: treelee/SiMayRemoteMonitorOS ## Basic Information - **Project Name**: SiMay远程控制系统 - **Description**: 。。开源了,本项目是一个Windows远程控制系统,系个人平时在开发中的一个试验总结性项目,项目完全采用C#.NET开发,实现了热区域逐行扫描算法的远程桌面,桌面视墙,文件管理,语音监听,视频监控,注册表管理,进程管理,各模块采用独立连接,支持异常情况重连。实现了中间会话服务器,在此基础上实现了Web端监控,欢迎点Start关注,项目不定时更新,源代码仅供参考,不得用于非法用途,否则一切后果自负。 - **Primary Language**: C# - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1199 - **Created**: 2019-07-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README  # 系统介绍 - SiMay远程控制管理系统一套Windows远程控制系统,底层基于IOCP的异步通信模型,能对海量客户端实时监控,目前功能已实现了采用可视区域逐行扫描的远程桌面控制,只发送桌面变化区域,有效节省传输流量;经典的文件管理方式,支持快速上传下载输文件,文件夹;语音监听实时传输远程语音,发送语音;视频监视采用Dx组件捕获视频画面,兼容市场主流摄像头;键盘监控全局Hook键盘,支持离线记录;经典的注册表管理;cmd终端;系统进程管理,桌面视图墙等功能,并且实现了中间会话服务器(测试阶段),支持Web端监控,项目完全采用C#.NET开发,代码仅供参考,项目不定时更新,欢迎关注点星星,fork。欢迎入群技术交流:905958449 :laughing: :blush: # 背景 - 项目仅是个人在平时开发中的技术试验性项目,用于积累在工作中所遇到的有趣技术,或者试验新技术,比如系统架构,语法等。经过几次重构,系统相对比较成熟了,决定开源反馈开源社区,希望更多人能和我一起进步,欢迎吐槽改进。 ![主控界面](https://images.gitee.com/uploads/images/2019/0717/225727_cc5c40c8_1654743.jpeg "主控制界面") ![创建服务端](https://images.gitee.com/uploads/images/2019/0717/225801_d0ccad61_1654743.jpeg "创建服务端") ![远程桌面](https://images.gitee.com/uploads/images/2019/0717/225853_2d8f4f8d_1654743.jpeg "远程桌面") ![文件管理](https://images.gitee.com/uploads/images/2019/0717/225829_9fed04ca_1654743.jpeg "文件管理") ![语音传输](https://images.gitee.com/uploads/images/2019/0717/225918_159b8bec_1654743.jpeg "语音传输") ![视频监控,请忽略我的帅脸!](https://images.gitee.com/uploads/images/2019/0717/230524_9a3d8c07_1654743.jpeg "视频监控,请忽略我的帅脸!") # 系统项目结构 ##SiMay.Common.Core【公共核心功能】## - SiMay.Basic--框架级通用库 - SiMay.Core--系统统一公共库【如统一的通讯指令丶共用组件丶通信数据实体丶字符串编解码等..】 - SiMay.Serialize--轻量级二进制序列化器【作用:系统通信数据实体化】 ##SiMay.RemoteMonitor.Windows【Windows控制端】## - SiMay.RemoteMonitor--控制端主程序 ##SiMay.RemoteService【远程服务端】## - SiMay.RemoteClient.NewCore--服务端主程序 - SiMay.UpdateClient--服务端更新程序【未启用】 - SiMay.Daemon--服务端守护进程【未启用】 ##SiMay.SessionProvider【会话提供库】## - SiMay.Net.SessionProvider--会话提供库【作用:提供服务器监听模式或者中间会话代理协议】(技术验证,不定时重构) - SiMay.Net.SessionProvider.Core--代理协议统一公用库【作用:统一中间库和服务器的通信指令及序列化等】(技术验证,不定时重构) - SiMay.Net.SessionProviderService--中间会话代理服务器【作用:提供保持服务端会话保持丶数据转发功能,基于此实现多平台端监控】(技术验证,不定时重构) ##SiMay.Sockets【Socket通信库】## - SiMay.Socket.V4 1.0--通信引擎【.NET4.0】 - SiMay.Socket 1.0--通信引擎【支持.NET 4.0以下】 - SiMaySocketTestApp--通信引擎测试程序 ##SiMay.Web.MonitorService【Web监控服务端】## - SiMay.Net.HttpRemoteMonitorService--WebSocket监控服务端 - WebRemoteMonitorSystem--Web监控前端页面 ##编译 1.Bin目录为生成目录,重新生成后,主控程序将编译到此目录,Bin->dat目录为服务端目录,dat->3.5 or 4.0代表框架版本(版本5.0后3.5不再支持),需手动将SiMayService.exe拷贝到4.0目录下即可。 ##运行 1.局域网 主控端:打开主控程序SiMayRemoteMonitor.exe,确认系统设置服务器地址为0.0.0.0(监听本机所有网卡),端口默认5200,确认会话模式为:本地服务器,然后保存配置重启 重启后日志输出监听成功,即主控端设置正确。 被控服务端:打开主控端-->创建客户-->地址输入本机ip地址(或127.0.0.1)-->端口设置为服务端监听端口(默认5200)-->点击连接测试检查配置是否正确-->选择运行时版本4.0--创建服务端文件,服务端文件即为配置完成的被控端程序,双击运行即可连接至主控端,如连接不成功,请检查上述步骤是否配置正确。 2.广域网 条件:需要主控端处于公网环境(或者设置路由内网映射),并且开放主控端监听端口。 创建客户端-->被控服务端连接至主控端的公网地址,端口即可 3.中间服务器部署 条件:需要中间服务器处于公网环境(或者设置路由内网映射),并且开放中间服务器监听端口(默认522端口)。 主控端系统设置会话服务器地址为 中间服务器的地址,端口。-->设置会话模式为:中间会话模式-->(中间会话服务器系统设置位于系统菜单右键)确认连接密码与中间服务器密码一致。-->创建客户端,将ip,端口指向中间服务器即可 4.web端监控 配置IIS,部署SiMay.WebRemoteMonitor网站,编译启动SiMay.Net.HttpRemoteMonitorService,配置地址指向中间服务器ip,端口即可(无系统设置,需手动配置配置文件),如连接成功,中间服务器出现主控制连接在线日志即可 使用浏览器,访问SiMay.WebRemoteMonitor网站,输入SiMay.Net.HttpRemoteMonitorService配置的账号密码即可,当有中间服务器有被控端会话时,将自动连接至http服务,此时网页可看到被控服务端计算机屏幕视图,长按视图打开更多功能。 # 技术架构 - 基于IOCP的异步Socket高性能通信模型 - 采用热区域逐行扫描算法的远程桌面 - 语音通讯采用Windows WaInXX等Api实现,支持高清音质 - 视频监控采用Dx组件捕获图像 - 键盘记录采用HOOK技术捕获全局键盘消息 - Web端监控采用了WebSocket等技术实现 # 开发环境 - Visual Studio 2015 以上 # 参与贡献 - Fork 本仓库 - 新建 Feat_xxx 分支 - 提交代码 - 新建 Pull Request # 未来构想 - 实现多平台控制端同步监控 - 完善更多web监控功能 # SiMay远程监控管理系统更新说明 --by_koko ##5.0更新## 1. 优化了通讯库,支持FULL丶PACK数据处理方式,更友好的配置接口 2. 新增中间会话转发服务,增加了SessionProvider层,控制端支持监听模式丶中间会话模式,在此基础上实现了Web监控服务,支持Web方式监控 3. 增强了远程桌面,支持全屏监控的远程鼠标控制 4. 重构代码结构,实现了组件化代码框架,使功能轻松扩展 --2019.5.19 5. 远程桌面采用了热区域扫描算法,仅扫描可视区域变化部分,优化了远程桌面模块,速度更加快了 --2019.4.2 6. 增强系统管理模块,实时进程监控 --待实现 7. 语音监听,视频监控支持录制功能 --待实现 8. 服务端支持服务方式开机启动 --待实现 9. 文件管理功能增强,重构文件夹传输 2019.7.13 10.系统传输数据实体化 -- 2019-6-4 11.二进制序列化器采用反射缓存,提高系统性能 --待实现 ##4.0更新## 1. 重写了通讯层,解决网络环境极差时频繁断开连接的情况,实现了对象池,以更好的并发能力应对大规模的客户端数据交互 2. 设计了更稳定的通讯层接口,通讯层彻底与逻辑层分离 3. 优化了部分功能的通讯协议 4. 优化了远程桌面模块 5. 修复远程桌面在高分屏笔记本时显示不完全的问题 6. 修复视频监控显示不完全的问题 7. 增强了语音监听模块 8. 优化了窗体上的设计,用户体验更好了 9. 修复了系统管理