摘 要:研究了基于TCP/IP網絡協議、windows操作系統平臺、運輸層TCP協議下的遠程監控的技術,并用C++語言實現了遠程控制中常用技術。
關鍵詞:遠程控制;多線程;WINSOCK
中圖分類號:TP273.5 文獻標識碼:A 文章編號:1674-7712 (2014) 10-0000-01
(1)遠程監控與MFC。遠程監控是管理人員在異地通過計算機網絡,異地撥號或雙方都接入Internet等手段,連接目標計算機,并通過本地計算機對遠程計算機進行管理和維護的行為。或者說是在網絡上由一臺電腦(主控端/客戶端)遠距離去監控另一臺電腦(被控端/服務器端)的技術。遠程控制既可以作為黑客攻擊手段之一,也可以作為遠程維護、家庭辦公等應用領域的支持工具。MFC全稱Microsoft Foundation Classes,即微軟基礎類庫,是一套面向對象的函數庫,以類的方式供我們使用。利用這些類可以完成基于windows應用程序的開發。(2)遠程監控技術。遠程監控系統一般分為客戶端和服務器端。服務器端程序在電腦開機后自動運行,然后在主控端電腦上執行客戶端程序,這樣就可以像一個普通的客戶一樣向被控端電腦中的服務器端程序發出信號,建立一個特殊的遠程服務,然后通過這個遠程服務,使用各種遠程監控功能發送遠程監控命令,監控被控端電腦中的各種應用程序運行,因此稱為基于遠程服務的遠程監控。
一、客戶端遠程監控技術
客戶端監控技術主要包括通信連接技術、屏幕圖像操作、外設鼠標和鍵盤的命令模擬。這些技術主要應用在遠程屏幕抓取、鍵盤和鼠標的控制和遠程文件的管理模塊當中。
由于圖像處理相關技術較復雜,文中僅給出鍵盤和鼠標的控制技術以及文件傳輸技術的實現。
(一)鍵盤和鼠標控制技術。(1)鼠標控制。鼠標是一個定位輸入裝置。要控制鼠標,就要控制鼠標所在的屏幕位置,并控制鼠標的按鍵操作;(2)模擬按鍵操作。模擬按鍵操作是通過向系統發送按鍵消息來實現的,一般虛擬鍵值(VK)由OnKeyDown()或者0nKeyUp()事件得到。
(二)遠程文件管理技術。在遠程控制中,遠程文件管理主要包括文件上傳與下載、文件刪除、瀏覽目錄、修改文件的相關信息等。這些功能可通過文件傳輸協議FTP來實現。(1)MFC中的常用FTP函數。VC++開發環境下,要進行FTP的相關文件操作,需要用到兩個類:CInternetSession和CFtpConnection。如果在程序運行期間需要保持和服務器的連接,可以創建一個CInternetSession對象作為類CWinApp的成員;(2)FTP是MFC的WinInet支持的三個Internet功能之一,這里只需要先創建一個CInternetSession實例和一個CFtpConnection對象,就可以實現和一個FTP服務器的通信。
二、服務器端監控實現技術
為滿足多客戶端的實現,需要采用多線程技術的支持.在本軟件服務器端會對每個客戶端創建一個監聽線程,并針對每個監聽線程實例化一個CServer類提供其數據及服務。另一個主要技術是程序的自啟動和隱藏技術。
(一)多線程技術。以下是多線程實現多客戶端的核心代碼。
while(TRUE)
{
Accept=accept(Listen,(struct scokaddr*)client,iAddrSize);
if(Accept!=INVALID_SCOKET)
{
//傳送到客戶端線程的信息的數據結構
Clientinfo.socket=Accept;
memset(szClientIP,’\0’,sizeof(szClientIP));
sprintf(szClientIP,”%s”,inet_ntoa(client.sin_addr));
//為每一個客戶創建一個線程,線程創建函數為CreateTread
CreateTread(NULL,0,ClientThread,(LPVOID)clientinfo,dwThread);
if(thread)
{
//關閉線程句柄
CloseHandle(thread);
}
}
}
(二)程序的自啟動。程序自啟動有兩種可行的方法:(1)利用win.ini文件實現相關程序的自動啟動win.ini是系統保存在c:\windows目錄下的一個系統初始化文件。系統在啟動時會檢索該文件中的相關項,以便對系統環境進行初始設置;(2)利用注冊表實現相關程序的自動啟動。系統注冊表保存著系統的軟件、硬件及其他與系統配置有關的重要信息。在計算機的系統注冊表中的子目錄中有一個目錄,其名稱為HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current_Version\Run,可以向該目錄添加一個子項,這樣程序在系統啟動的過程中啟動該程序。
三、遠程監控技術展望與應用
隨著網絡技術的高速發展,遠程操作與監控技術越來越引起人們的關注。目前很多遠程監控技術提供通過Web頁面以Java技術來監控遠程電腦,這樣可以實現不同操作系統下的遠程監控。
從信息安全的角度,遠程監控技術的使用對于網絡管理員來說,可以監控網絡的數據傳輸,截斷遠程主機非法接入本網絡,保證了網絡的安全。該軟件與防火墻的配合使用,提高了網絡的安全性與可靠行。如在國防軍事、航空領域等安全系數要求高的應用領域都要用到遠程監控系統。
隨著聯網人數的增加,基于網絡的遠程監控系統在人們的日常生活中也發揮著越來越大的作用。如遠程辦公、遠程技術支持、遠程交流、遠程維護和管理等
參考文獻:
[1]張友生.遠程控制編程技術[M].北京:電子工業出版社,2006:160-200.
[2]任泰明.TCP/IP協議與網絡編程[M].北京:電子工業出版社,2004:8-20.
[3]湯路,賴唐春.對遠程監控技術應用的探討[J].科技與企業,2012(21).