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

下方基於原項目倉庫 readme
系統居間
- simay 遠程控制管理系統是一個 windows 遠程控制系統,底層基於 iocp 的異步通信模型,能對海量客戶端實時監控,目前功能已實現:逐行掃描遠程桌面經典的文件管理、實時遠程語音、實時攝像頭、經典註冊表管理、命令行終端、實時系統進程管理、用戶桌面視圖牆輪播等功能。並且可捕獲 uac,winlogon 桌面。系統實現了中間會話伺服器,可支持不同平台多主控端同時監控同一被控端。被控服務端支持綠色啟動及以系統服務方式安裝,項目完全採用 c#.net 開發,代碼僅供參考,項目不定時更新,歡迎關注點星星,fork。歡迎入群技術交流:905958449 :laughing: :blush:
企業功能定製項
- 遠程桌面升級(綜合性能提升 50%、帶寬占用更小)、web 版遠程桌面、(攝像頭、語音、屏幕廣播)、文件分發、支持遠程伺服器桌面等功能,歡迎進群諮詢群主。
申明
- 作為創作者,我對由此軟體引起的任何行為和/或損害不承擔任何責任。您對自己的行為承擔全部責任,並承認此軟體僅用於教育和研究目的。不得用於您不擁有或有權使用的任何系統。使用此軟體,您自動同意上述內容,感謝支持。
背景
- 本項目僅為個人項目,經過幾次重構,系統相對比較成熟了,決定開源反饋開源社區,希望更多人能和我一起進步,歡迎吐槽改進。
主控界面

創建服務端

遠程桌面

文件管理

語音傳輸

註冊表管理

中間伺服器

系統項目結構
simay.core【公共核心功能】
- simay.basic --基礎通用庫
- simay.core.standard --系統核心統一公共庫【統一通訊指令丶共用組件丶通信數據實體等..】
- simay.serialize.standard --輕量級高性能二進位序列化庫【作用:系統通信數據實體化】
- simay.modelbinder --調用綁定器
simay.remotemonitor【主控制端】
- simay.remotecontrols.core --主控端核心庫
- simay.remotemonitor.windows --windows 主控管理端
- simay.remotemonitor.web --web 主控端
- simay.remotemonitorforwebsite --web 監控前端
simay.platform【平台實現】
- simay.platform.windows -- 基於 windows 的功能實現
simay.remoteservice【遠程被控服務端】
- simay.remoteservice.loader --內存加載 loader,實現遠程內存載入被控端核心庫
- simay.servicecore --被控端核心庫
simay.sessionprovider【會話提供層】
- simay.net.sessionprovider --會話提供庫【作用:提供伺服器監聽模式或者中間會話代理協議】
- simay.net.sessionprovider.core --代理協議統一公用庫【作用:統一中間庫和伺服器的通信指令及序列化等】
- simay.net.sessionproviderservicecore -- 中間服務核心庫
- simay.net.sessionproviderservice --中間會話代理伺服器【作用:提供保持服務端會話保持丶數據轉發功能,基於此實現多平台端監控】
simay.sockets【通信層】
- simay.socket.standard --輕量級通信引擎
- simaysockettestapp --通信引擎測試程式
編譯
bin 為編譯目錄,重新生成後,主控程式將編譯到此目錄,bin->dat 目錄為被控服務端目錄,被控服務端編譯後在此。(沒有目錄新建一下)
運行
- 區域網
主控端:打開位與 bin 目錄下的主控端程式 simayremotemonitor.exe,確認系統設置伺服器地址為0.0.0.0 (監聽本機所有網卡),埠默認 5200,使用會話模式為=本地伺服器,然後保存配置重啟程式, 重啟後日誌輸出監聽成功,即主控端設置正確。
被控服務端創建:打開主控端-->創建客戶-->地址輸入本機物理地址(或127.0.0.1),埠設置為服務端監聽埠(默認 5200)-->點擊連接測試檢查配置是否正確-->創建服務端文件,服務端文件即為配置完成的被控端程式(如提示找不到文件,請檢查被控服務程式是否存在[編譯步驟是否正確]),雙擊運行被控服務程式即可在主控端看見服務在線信息,如主控端無在線信息,請檢查上述步驟是否配置正確。
- 廣域網
條件:需要主控端處於公網環境(或者設置路由內網映射、使用內網映射工具[如花生殼,內網通]),並且開放主控端監聽埠(注意檢查埠是否開放、防火牆通行規則)。 創建客戶端-->被控服務端連接至主控端的公網地址,埠即可
- 中間伺服器部署
條件:需要中間伺服器處於公網環境(建議部署在公網伺服器,或者設置路由內網映射),並且開放中間伺服器監聽埠(默認 522 埠、注意檢查埠是否開放、防火牆通行規則)。
主控端設置: 系統設置-->會話伺服器地址 輸入 中間伺服器的公網地址,埠。-->設置會話模式為:中間會話模式-->確認 accesskey 與中間伺服器 accesskey 一致。(中間會話伺服器系統設置位於標題欄系統菜單右鍵)-->創建客戶端並選擇會話模式為中間會話模式,ip,端輸入中間伺服器的公網地址即可
- 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 配置的帳號密碼即可登錄,連接成功後頁面可看到被控服務端計算機桌面視圖,長按視圖可打開更多功能。
技術
- 組件式系統架構設計
- 遠程同步調用
- 實體消息傳輸協議
- 應用多連接會話支持
- 可視區域逐行掃描算法的遠程桌面
- 中間會話服務轉發,支持多個主控端同時實時監控
- hook 技術
- websocket web 端監控
- iocp 異步 socket 高性能通信模型
- 基於 windows wainxx 系列實現的語音通訊
- 基於 dx 組件捕獲攝像頭
開發環境
- 建議 visual studio 2019 企業版
參與貢獻
- fork 本倉庫
- 新建 feat_xxx 分支
- 提交代碼
- 新建 pull request
未來構想
- 移動 web 監控端
- 跨平台的系統管理監控
- 仓库地址:SiMay 远程控制管理系统