Skip to content

WesternCivilization/SiMay-

 
 

Repository files navigation



系统介绍

  • SiMay远程控制管理系统一套Windows远程控制系统,底层基于IOCP的异步通信模型,能对海量客户端实时监控,目前功能已实现了采用可视区域逐行扫描的远程桌面控制,只发送桌面变化区域,有效节省传输流量;经典的文件管理方式,支持快速上传下载文件和文件夹;语音监听实时传输远程语音,发送语音;视频监视采用Dx组件捕获视频画面,兼容市场主流摄像头;键盘监控全局Hook键盘,支持离线记录;经典的注册表管理;cmd终端;系统进程管理,桌面视图墙等功能,并且实现了中间会话服务器(测试阶段),支持Web端监控,项目完全采用C#.NET开发,代码仅供参考,项目不定时更新,欢迎关注点星星,fork。欢迎入群技术交流:905958449 😆 😊

申明

  • 作为创作者,我对由此软件引起的任何行为和/或损害不承担任何责任。 您对自己的行为承担全部责任,并承认此软件仅用于教育和研究目的。 不得用于您不拥有或有权使用的任何系统。 使用此软件,您自动同意上述内容,感谢支持。

背景

  • 项目仅是个人在平时开发中的技术试验性项目,用于积累在工作中所遇到的有趣技术,或者试验新技术,比如系统架构,语法等。经过几次重构,系统相对比较成熟了,决定开源反馈开源社区,希望更多人能和我一起进步,欢迎吐槽改进。

主控界面 创建服务端 远程桌面 文件管理 语音传输 视频监控,请忽略我的帅脸!

系统项目结构

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目录为服务端目录,被控服务端编译后在此。(没有目录新建一下)

运行

1.局域网 主控端:打开主控程序SiMayRemoteMonitor.exe,确认系统设置服务器地址为0.0.0.0(监听本机所有网卡),端口默认5200,确认会话模式为:本地服务器,然后保存配置重启程序, 重启后日志输出监听成功,即主控端设置正确。

被控服务端:打开主控端-->创建客户-->地址输入本机ip地址(或127.0.0.1)-->端口设置为服务端监听端口(默认5200)-->点击连接测试检查配置是否正确-->创建服务端文件,服务端文件即为配置完成的被控端程序(如提示找不到文件,请检查编译步骤是否正确),双击运行即可连接至主控端,如连接不成功,请检查上述步骤是否配置正确。

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. 修复了系统管理

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 98.2%
  • HTML 1.8%