c#開源項目:simay遠程控制管理系統

c#開源項目:simay遠程控制管理系統

一個底層基於iocp異步通信模型的windows遠程控制系統

最后更新 2020/12/4 上午8:33
dWwwang
预计阅读 7 分钟
分类
Winform
专题
winform開源項目 c#開源項目
标签
.NET C# Winform winform開源項目 開源項目

本項目是一個 windows 遠程控制系統,項目完全採用 c#.net 開發,實現了基於逐行掃描算法遠程桌面,桌面視圖牆,文件管理,實時語音、視頻監控,註冊表管理,實時進程管理等功能,各模塊採用獨立連接,支持異常情況重連。實現了中間會話伺服器,支持多主控端同時監控,支持 web 端,歡迎點 start 關注,項目不定時更新,原始碼僅供參考,不得用於非法用途,否則一切後果自負。

gitee 倉庫截圖

Gitee仓库截图

下方基於原項目倉庫 readme

系統居間

  • simay 遠程控制管理系統是一個 windows 遠程控制系統,底層基於 iocp 的異步通信模型,能對海量客戶端實時監控,目前功能已實現:逐行掃描遠程桌面經典的文件管理、實時遠程語音、實時攝像頭、經典註冊表管理、命令行終端、實時系統進程管理、用戶桌面視圖牆輪播等功能。並且可捕獲 uac,winlogon 桌面。系統實現了中間會話伺服器,可支持不同平台多主控端同時監控同一被控端。被控服務端支持綠色啟動及以系統服務方式安裝,項目完全採用 c#.net 開發,代碼僅供參考,項目不定時更新,歡迎關注點星星,fork。歡迎入群技術交流:905958449 :laughing: :blush:

企業功能定製項

  • 遠程桌面升級(綜合性能提升 50%、帶寬占用更小)、web 版遠程桌面、(攝像頭、語音、屏幕廣播)、文件分發、支持遠程伺服器桌面等功能,歡迎進群諮詢群主。

申明

  • 作為創作者,我對由此軟體引起的任何行為和/或損害不承擔任何責任。您對自己的行為承擔全部責任,並承認此軟體僅用於教育和研究目的。不得用於您不擁有或有權使用的任何系統。使用此軟體,您自動同意上述內容,感謝支持。

背景

  • 本項目僅為個人項目,經過幾次重構,系統相對比較成熟了,決定開源反饋開源社區,希望更多人能和我一起進步,歡迎吐槽改進。

主控界面

主控界面

創建服務端

创建服务端

遠程桌面

远程桌面

文件管理

文件管理

語音傳輸

语音传输

註冊表管理

注册表管理

中間伺服器

中间服务器

系統項目結構

simay.core【公共核心功能】

  1. simay.basic --基礎通用庫
  2. simay.core.standard --系統核心統一公共庫【統一通訊指令丶共用組件丶通信數據實體等..】
  3. simay.serialize.standard --輕量級高性能二進位序列化庫【作用:系統通信數據實體化】
  4. simay.modelbinder --調用綁定器

simay.remotemonitor【主控制端】

  1. simay.remotecontrols.core --主控端核心庫
  2. simay.remotemonitor.windows --windows 主控管理端
  3. simay.remotemonitor.web --web 主控端
  4. simay.remotemonitorforwebsite --web 監控前端

simay.platform【平台實現】

  1. simay.platform.windows -- 基於 windows 的功能實現

simay.remoteservice【遠程被控服務端】

  1. simay.remoteservice.loader --內存加載 loader,實現遠程內存載入被控端核心庫
  2. simay.servicecore --被控端核心庫

simay.sessionprovider【會話提供層】

  1. simay.net.sessionprovider --會話提供庫【作用:提供伺服器監聽模式或者中間會話代理協議】
  2. simay.net.sessionprovider.core --代理協議統一公用庫【作用:統一中間庫和伺服器的通信指令及序列化等】
  3. simay.net.sessionproviderservicecore -- 中間服務核心庫
  4. simay.net.sessionproviderservice --中間會話代理伺服器【作用:提供保持服務端會話保持丶數據轉發功能,基於此實現多平台端監控】

simay.sockets【通信層】

  1. simay.socket.standard --輕量級通信引擎
  2. simaysockettestapp --通信引擎測試程式

編譯

bin 為編譯目錄,重新生成後,主控程式將編譯到此目錄,bin->dat 目錄為被控服務端目錄,被控服務端編譯後在此。(沒有目錄新建一下)

運行

  1. 區域網

主控端:打開位與 bin 目錄下的主控端程式 simayremotemonitor.exe,確認系統設置伺服器地址為0.0.0.0 (監聽本機所有網卡),埠默認 5200,使用會話模式為=本地伺服器,然後保存配置重啟程式, 重啟後日誌輸出監聽成功,即主控端設置正確。

被控服務端創建:打開主控端-->創建客戶-->地址輸入本機物理地址(或127.0.0.1),埠設置為服務端監聽埠(默認 5200)-->點擊連接測試檢查配置是否正確-->創建服務端文件,服務端文件即為配置完成的被控端程式(如提示找不到文件,請檢查被控服務程式是否存在[編譯步驟是否正確]),雙擊運行被控服務程式即可在主控端看見服務在線信息,如主控端無在線信息,請檢查上述步驟是否配置正確。

  1. 廣域網

條件:需要主控端處於公網環境(或者設置路由內網映射、使用內網映射工具[如花生殼,內網通]),並且開放主控端監聽埠(注意檢查埠是否開放、防火牆通行規則)。 創建客戶端-->被控服務端連接至主控端的公網地址,埠即可

  1. 中間伺服器部署

條件:需要中間伺服器處於公網環境(建議部署在公網伺服器,或者設置路由內網映射),並且開放中間伺服器監聽埠(默認 522 埠、注意檢查埠是否開放、防火牆通行規則)。

主控端設置: 系統設置-->會話伺服器地址 輸入 中間伺服器的公網地址,埠。-->設置會話模式為:中間會話模式-->確認 accesskey 與中間伺服器 accesskey 一致。(中間會話伺服器系統設置位於標題欄系統菜單右鍵)-->創建客戶端並選擇會話模式為中間會話模式,ip,端輸入中間伺服器的公網地址即可

  1. web 端監控

編譯 simay.remotemonitor.web.exe,web 服務為控制台形式無系統設置界面,可直接使用 windows 控制端保存的系統配置文件 simayconfig.ini,會話模式可使用伺服器模式或者中間會話模式啟動,啟動成功後控制台列印監聽成功或初始化成功字樣即設置正確(伺服器模式為監聽成功,中間會話模式為初始化成功 及 websocket 埠監聽成功),如有被控端連接成功,控制台會實時列印上線連接信息,web 服務設置完成。

上述 web 服務設置完成後,下一步需要部署 web 網站 simay.webremotemonitor,首先打開 index.html 文件編輯 websocket 連接地址,指向 web 服務的公網地址與埠即可。

使用瀏覽器,訪問 simay.webremotemonitor 網站,頁面彈出 id,key 輸入框即表示與 web 服務連接成功,輸入 simay.remotemonitorfor.web.exe 配置的帳號密碼即可登錄,連接成功後頁面可看到被控服務端計算機桌面視圖,長按視圖可打開更多功能。

技術

  1. 組件式系統架構設計
  2. 遠程同步調用
  3. 實體消息傳輸協議
  4. 應用多連接會話支持
  5. 可視區域逐行掃描算法的遠程桌面
  6. 中間會話服務轉發,支持多個主控端同時實時監控
  7. hook 技術
  8. websocket web 端監控
  9. iocp 異步 socket 高性能通信模型
  10. 基於 windows wainxx 系列實現的語音通訊
  11. 基於 dx 組件捕獲攝像頭

開發環境

  1. 建議 visual studio 2019 企業版

參與貢獻

  1. fork 本倉庫
  2. 新建 feat_xxx 分支
  3. 提交代碼
  4. 新建 pull request

未來構想

  1. 移動 web 監控端
  2. 跨平台的系統管理監控
Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2024/2/29

winform中也可以這樣做數據展示

在做winform開發的過程中,經常需要做數據展示的功能,之前一直使用的是gridcontrol控制項,今天想通過一個示例,跟大家居間一下如何在winform blazor hybrid中使用ant design blazor中的table組件做數據展示。

继续阅读
同分类 / 同标签 2024/2/29

winform的界面也可以變好看?

前幾天跟大家居間了在winform中使用blazor hybrid,而且還說配上blazor的ui可以讓我們的winform程式設計的更加好看,接下來我想以一個在winform blazor hybrid中繪圖的例子來進行說明,希望對你有所幫助。

继续阅读
同分类 / 同标签 2021/11/21

開源winform控制項庫:花木蘭控制項庫

可以編譯該項目。整個控制項控除了動畫函數由silverlight提取出來和coloreditorext.cs顏色面板視圖設計器擴展器在網上例子修改而來,其他都是自己在原生控制項基礎上寫的,沒有使用任何第三方庫,所以放心使用,沒有侵犯他人著作權的問題。

继续阅读