C#開源項目:SiMay遠程控制管理系統(tǒng)


C#開源項目:SiMay遠程控制管理系統(tǒng)

下方基于原項目倉庫readme
系統(tǒng)介紹
SiMay遠程控制管理系統(tǒng)是一個Windows遠程控制系統(tǒng),底層基于IOCP的異步通信模型,能對海量客戶端實時監(jiān)控,目前功能已實現(xiàn):逐行掃描遠程桌面經(jīng)典的文件管理、實時遠程語音、實時攝像頭、經(jīng)典注冊表管理、命令行終端、實時系統(tǒng)進程管理、用戶桌面視圖墻輪播等功能。并且可捕獲UAC,WinLogon桌面。系統(tǒng)實現(xiàn)了中間會話服務器,可支持不同平臺多主控端同時監(jiān)控同一被控端。被控服務端支持綠色啟動及以系統(tǒng)服務方式安裝,項目完全采用C#.NET開發(fā),代碼僅供參考,項目不定時更新,歡迎關(guān)注點星星,fork。歡迎入群技術(shù)交流:905958449 :laughing: ?:blush:
申明
作為創(chuàng)作者,我對由此軟件引起的任何行為和/或損害不承擔任何責任。您對自己的行為承擔全部責任,并承認此軟件僅用于教育和研究目的。不得用于您不擁有或有權(quán)使用的任何系統(tǒng)。使用此軟件,您自動同意上述內(nèi)容,感謝支持。
背景
本項目僅為個人項目,經(jīng)過幾次重構(gòu),系統(tǒng)相對比較成熟了,決定開源反饋開源社區(qū),希望更多人能和我一起進步,歡迎吐槽改進。







系統(tǒng)項目結(jié)構(gòu)
SiMay.Core【公共核心功能】
SiMay.Basic --基礎(chǔ)通用庫 SiMay.Core.Standard --系統(tǒng)核心統(tǒng)一公共庫【統(tǒng)一通訊指令丶共用組件丶通信數(shù)據(jù)實體等..】 SiMay.Serialize.Standard --輕量級高性能二進制序列化庫【作用:系統(tǒng)通信數(shù)據(jù)實體化】 SiMay.ModelBinder --調(diào)用綁定器
SiMay.RemoteMonitor【主控制端】
SiMay.RemoteControls.Core --主控端核心庫 SiMay.RemoteMonitor.Windows --Windows主控管理端 SiMay.RemoteMonitor.Web --Web主控端 SiMay.RemoteMonitorForWebSite --Web監(jiān)控前端
SiMay.Platform【平臺實現(xiàn)】
SiMay.Platform.Windows -- 基于Windows的功能實現(xiàn)
SiMay.RemoteService【遠程被控服務端】
SiMay.RemoteService.Loader --內(nèi)存加載Loader,實現(xiàn)遠程內(nèi)存載入被控端核心庫 SiMay.ServiceCore --被控端核心庫
SiMay.SessionProvider【會話提供層】
SiMay.Net.SessionProvider --會話提供庫【作用:提供服務器監(jiān)聽模式或者中間會話代理協(xié)議】 SiMay.Net.SessionProvider.Core --代理協(xié)議統(tǒng)一公用庫【作用:統(tǒng)一中間庫和服務器的通信指令及序列化等】 SiMay.Net.SessionProviderServiceCore -- 中間服務核心庫 SiMay.Net.SessionProviderService --中間會話代理服務器【作用:提供保持服務端會話保持丶數(shù)據(jù)轉(zhuǎn)發(fā)功能,基于此實現(xiàn)多平臺端監(jiān)控】
SiMay.Sockets【通信層】
SiMay.Socket.Standard --輕量級通信引擎 SiMaySocketTestApp --通信引擎測試程序
編譯
1.Bin為編譯目錄,重新生成后,主控程序?qū)⒕幾g到此目錄,Bin->dat目錄為被控服務端目錄,被控服務端編譯后在此。(沒有目錄新建一下)
運行
1.局域網(wǎng)
主控端:打開位與Bin目錄下的主控端程序SiMayRemoteMonitor.exe,確認系統(tǒng)設(shè)置服務器地址為0.0.0.0(監(jiān)聽本機所有網(wǎng)卡),端口默認5200,使用會話模式為=本地服務器,然后保存配置重啟程序, 重啟后日志輸出監(jiān)聽成功,即主控端設(shè)置正確。
被控服務端創(chuàng)建:打開主控端-->創(chuàng)建客戶-->地址輸入本機物理地址(或127.0.0.1),端口設(shè)置為服務端監(jiān)聽端口(默認5200)-->點擊連接測試檢查配置是否正確-->創(chuàng)建服務端文件,服務端文件即為配置完成的被控端程序(如提示找不到文件,請檢查被控服務程序是否存在[編譯步驟是否正確]),雙擊運行被控服務程序即可在主控端看見服務在線信息,如主控端無在線信息,請檢查上述步驟是否配置正確。
2.廣域網(wǎng)
條件:需要主控端處于公網(wǎng)環(huán)境(或者設(shè)置路由內(nèi)網(wǎng)映射、使用內(nèi)網(wǎng)映射工具[如花生殼,內(nèi)網(wǎng)通]),并且開放主控端監(jiān)聽端口(注意檢查端口是否開放、防火墻通行規(guī)則)。創(chuàng)建客戶端-->被控服務端連接至主控端的公網(wǎng)地址,端口即可
3.中間服務器部署
條件:需要中間服務器處于公網(wǎng)環(huán)境(建議部署在公網(wǎng)服務器,或者設(shè)置路由內(nèi)網(wǎng)映射),并且開放中間服務器監(jiān)聽端口(默認522端口、注意檢查端口是否開放、防火墻通行規(guī)則)。
主控端設(shè)置: 系統(tǒng)設(shè)置-->會話服務器地址 輸入 中間服務器的公網(wǎng)地址,端口。-->設(shè)置會話模式為:中間會話模式-->確認AccessKey與中間服務器Accesskey一致。(中間會話服務器系統(tǒng)設(shè)置位于標題欄系統(tǒng)菜單右鍵)-->創(chuàng)建客戶端并選擇會話模式為中間會話模式,ip,端輸入中間服務器的公網(wǎng)地址即可
4.Web端監(jiān)控 編譯SiMay.RemoteMonitor.Web.exe,Web服務為控制臺形式無系統(tǒng)設(shè)置界面,可直接使用Windows控制端保存的系統(tǒng)配置文件SiMayConfig.ini,會話模式可使用服務器模式或者中間會話模式啟動,啟動成功后控制臺打印監(jiān)聽成功或初始化成功字樣即設(shè)置正確(服務器模式為監(jiān)聽成功,中間會話模式為初始化成功 及 WebSocket端口監(jiān)聽成功),如有被控端連接成功,控制臺會實時打印上線連接信息,Web服務設(shè)置完成。
上述Web服務設(shè)置完成后,下一步需要部署Web網(wǎng)站SiMay.WebRemoteMonitor,首先打開Index.html文件編輯WebSocket連接地址,指向Web服務的公網(wǎng)地址與端口即可。
使用瀏覽器,訪問SiMay.WebRemoteMonitor網(wǎng)站,頁面彈出Id,Key輸入框即表示與Web服務連接成功,輸入SiMay.RemoteMonitorFor.Web.exe配置的賬號密碼即可登錄,連接成功后頁面可看到被控服務端計算機桌面視圖,長按視圖可打開更多功能。
技術(shù)
組件式系統(tǒng)架構(gòu)設(shè)計 遠程同步調(diào)用 實體消息傳輸協(xié)議 應用多連接會話支持 可視區(qū)域逐行掃描算法的遠程桌面 中間會話服務轉(zhuǎn)發(fā),支持多個主控端同時實時監(jiān)控 HOOK技術(shù) WebSocket Web端監(jiān)控 IOCP異步Socket高性能通信模型 基于Windows WaInXX系列實現(xiàn)的語音通訊 基于Dx組件捕獲攝像頭
開發(fā)環(huán)境
建議 Visual Studio 2019 企業(yè)版
參與貢獻
Fork 本倉庫 新建 Feat_xxx 分支 提交代碼 新建 Pull Request
未來構(gòu)想
移動Web監(jiān)控端 跨平臺的系統(tǒng)管理監(jiān)控
SiMay遠程監(jiān)控管理系統(tǒng)更新及更新計劃說明
6.0更新
跨平臺支持,重構(gòu)中間會話服務器使其支持多主控端同步監(jiān)控 --2020.2.15 二進制序列化器采用反射緩存,提高系統(tǒng)性能 -- 2020.1.25 屏幕視圖輪播 --2020.1.15 Web端主控端 --2020.5.15(預覽) 遠程核心庫加載并行控制 --未完成 遠程桌面,語音監(jiān)聽,攝像頭監(jiān)控支持錄制功能 --2.26 遠程核心庫載入更新(可實現(xiàn)功能快速升級及邏輯調(diào)整) -- 6.7 框架升級調(diào)整(實現(xiàn)"應用"的開放封閉設(shè)計原則,減少"應用代碼"對核心代碼的影響) --11.10 遠程被控端服務文件更新 --11.23 10.框架升級調(diào)整(應用模塊實現(xiàn)遠程同步調(diào)用) --11.13 11.框架升級調(diào)整(應用模塊支持多應用服務獨立連接并可斷線重連、增強復用性) --7.20 12.增加下載管理模塊 - 11.22
5.0更新
優(yōu)化了通訊庫,支持FULL丶PACK數(shù)據(jù)處理方式,實現(xiàn)了更友好的配置接口 新增中間會話轉(zhuǎn)發(fā)服務,增加了SessionProvider層,控制端支持監(jiān)聽模式丶中間會話模式,在此基礎(chǔ)上實現(xiàn)了Web監(jiān)控服務,支持Web方式監(jiān)控 增強了遠程桌面模塊,支持全屏監(jiān)控的遠程鼠標控制及多屏幕切換 重構(gòu)代碼結(jié)構(gòu),實現(xiàn)了組件化系統(tǒng)框架,屏蔽了系統(tǒng)底層實現(xiàn)細節(jié),增強了可擴展性 --2019.5.19 遠程桌面增加了可視區(qū)域掃描算法,僅掃描可視區(qū)域變化部分,優(yōu)化了遠程桌面模塊,速度更加快了 --2019.4.2 增強系統(tǒng)管理模塊,實現(xiàn)了進程實時監(jiān)控 --8.28 語音監(jiān)聽,視頻監(jiān)控支持錄制功能 --6.0已實現(xiàn) 被控服務實現(xiàn)了以服務方式安裝,使用服務方式可實現(xiàn)Session隔離穿透捕獲桌面(鎖屏,UAC), --11.9 文件管理功文件夾傳輸重構(gòu)優(yōu)化 2019.7.13 系統(tǒng)傳輸數(shù)據(jù)消息實體化 -- 2019-6-4 二進制序列化器采用反射緩存,提高系統(tǒng)性能 --已實現(xiàn) 遠程桌面增加畫面質(zhì)量調(diào)整,優(yōu)化低速率網(wǎng)絡下的控制體驗,使畫面更加流暢 -- 7.27 支持遠程更新服務端 -- 7.27 增加列表排序功能 -- 7.27 注冊表組件更新,支持二進制丶多種類型數(shù)據(jù)編輯 -- 9.6 重構(gòu)主控端,主控端邏輯核心庫與展示層徹底分離(如:基于核心庫橫向擴展Web主控端,實現(xiàn)多平臺邏輯復用) - 11.2
4.0更新
重寫了通訊層,解決網(wǎng)絡環(huán)境極差時頻繁斷開連接的情況,實現(xiàn)了對象池,以更好的并發(fā)能力應對大規(guī)模的客戶端數(shù)據(jù)交互 設(shè)計了更穩(wěn)定的通訊層接口,通訊層徹底與邏輯層分離 優(yōu)化了部分功能的通訊協(xié)議 優(yōu)化了遠程桌面模塊 修復遠程桌面在高分屏筆記本時顯示不完全的問題 修復視頻監(jiān)控顯示不完全的問題 增強了語音監(jiān)聽模塊 優(yōu)化了窗體上的設(shè)計,用戶體驗更好了 修復了系統(tǒng)管理
一些推薦
【開源Blazor控件庫】點擊瀏覽
【開源B/S項目】WTM
【開源WPF控件庫】點擊瀏覽
【開源WPF項目】點擊瀏覽
【開源Xamarin項目】全球優(yōu)秀Xamarin.Forms項目收集
【開源Winform控件庫】HZHControls、SunnyUI
【開源Winform項目】SiMay遠程控制管理系統(tǒng)
【開源Qt控件庫】QWidgetDemo、Material風格的Qt控件
【開源Qt項目】點擊瀏覽
【更多分享】點擊瀏覽
資源分享
回復數(shù)字【01】:獲取DotNet技術(shù)資料 回復數(shù)字【02】:獲取Java技術(shù)資料 回復數(shù)字【03】:獲取Android技術(shù)資料 回復數(shù)字【04】:獲取C++技術(shù)資料 回復數(shù)字【05】:獲取Qt技術(shù)資料 回復數(shù)字【06】:獲取React資源 添加號主微信號【dotnet9】:備注【入群】加入與大佬們的技術(shù)交流
?時間如流水,只能流去不流回。
公眾號:Dotnet9 號主微信號:dotnet9 原文作者:dWwwang 倉庫地址:SiMay遠程控制管理系統(tǒng) 編輯:沙漠之盡頭的狼 日期:2020-12-04 微信公眾號:Dotnet9
點擊閱讀原文,關(guān)注Dotnet9更多好文。
