C#開(kāi)源項(xiàng)目:SiMay遠(yuǎn)程控制管理系統(tǒng)


C#開(kāi)源項(xiàng)目:SiMay遠(yuǎn)程控制管理系統(tǒng)

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







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