freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

遠程監(jiān)控畢業(yè)設(shè)計論文-資料下載頁

2024-12-03 16:55本頁面

【導讀】時至今日,網(wǎng)絡已經(jīng)深入到世界各個角落了,它使人們脫離了地域的分隔與局限,把地球變成了“地球村”。這極大地方便了人們在大范圍內(nèi)的資源共享與利用。筆者對現(xiàn)有各種遠程控制軟件進行了嚴。格的測試與研究分析,最終設(shè)計出了本文中的遠程控制系統(tǒng)框架。遠程控制技術(shù)主要涉及到了網(wǎng)絡通信,系統(tǒng)內(nèi)核,多媒體三個方面的知識。直接影響到整個系統(tǒng)的成敗?,F(xiàn)在計算機之間的網(wǎng)絡條件發(fā)生了很大的變化,經(jīng)典的。系統(tǒng)中運用的系統(tǒng)內(nèi)核的知識十分廣泛,遠程控制系統(tǒng)中的90%的功能。網(wǎng)絡遠程教學,遠程辦公等領(lǐng)域。目前的軟件市場中,遠程控制軟件的需求日益增長,實踐證明本系統(tǒng)的設(shè)計相當成功,更讓人看到了遠程控制軟件發(fā)展的趨勢。服務端;同時,接受命令并處理命令的程序也是兩者的結(jié)合。服務端這一命名用法。和顯示遠程計算機執(zhí)行程序的結(jié)果,而運行程序所需的系統(tǒng)資源均由被控計算機負責。遠程控制軟件都要求遠程控制的雙方擁有合法的IP地址,

  

【正文】 ,常常稱作 System Call , Sysem Service Call 或 System Service Dispatching 等, 本文 權(quán)且稱之為Windows 系統(tǒng)服務調(diào)用,它提供了操作系統(tǒng)環(huán)境由用戶態(tài)切換到內(nèi)核態(tài)的功能。 Windows 系統(tǒng) 服務 的陷阱調(diào)度 (Trap Dispatching)機制包括了:中斷 (Interrupt),延遲過程調(diào)用 (Deferred Procedure Call),異步過程調(diào)用 (Asynchronous Procedure Call),異常調(diào)度 (Exception Dispatching)和系統(tǒng)服務調(diào)用。在 Intel x86 的 Windows 2021 系統(tǒng)中,處理器執(zhí)行 int 0x2e 指令來激活 Windows 系統(tǒng)服務調(diào)用;在 Intel x86的 Windows XP 系統(tǒng)中處理器卻是通過執(zhí)行 sysenter 指令使系統(tǒng)陷入系 統(tǒng)服務調(diào)用程序中;而在 AMD 的 Windows XP 中使用了指令 syscall 來實現(xiàn)同樣的功能。 本文 使用 x86的 Windows 2021 為例來演示, 先給出一個系統(tǒng)服務調(diào)用的模型: mov eax, ServiceId lea edx, ParameterTable int 2eh ret ParamTableBytes 其中, ServiceId 清楚的說明了傳遞給系統(tǒng)服務調(diào)用的系統(tǒng)服務號,內(nèi)核使用這個標識符來查找系統(tǒng)服務調(diào)度表 (System Service Dispath Table)中的對應系統(tǒng)服務信息 。在系統(tǒng)服務調(diào)度表中的每一項包含了一個指向系統(tǒng)服務程序的指針。 ParameterTable是傳遞的參數(shù),系統(tǒng)服務調(diào)用程序 KiSystemService 必須嚴格校驗傳遞的每一個參數(shù),并將其參數(shù)從線程的用戶堆棧中復制到系統(tǒng)的核心堆棧以備使用。由于執(zhí)行 int 指令會導致陷阱發(fā)生,所以在 Windows 2021 內(nèi)的中斷描述表 (IDT = Interrupt Descriptor Table)中的 0x2e 項指向了系統(tǒng)服務調(diào)用程序。最后返回的 ParamTableBytes 是關(guān)于參數(shù)個數(shù)的信息。 系統(tǒng)服務調(diào)用只是一個接口, 它提供了將用戶模式下的請求轉(zhuǎn)發(fā)到 Windows 內(nèi)核的功能,并引發(fā)處理器模式的切換。在用戶看來,系統(tǒng)服務調(diào)用接口就是 Windows 內(nèi)核組件功能實現(xiàn)對外的一個界面。系統(tǒng)服務調(diào)用接口定義了 Windows 內(nèi)核提供的大量服務。 系統(tǒng)服務的控制與管理 設(shè)計 服務控制管理器擁有一個在注冊表中記錄的數(shù)據(jù)庫,包含了所有已安裝的服務程序和設(shè)備驅(qū)動服務程序的相關(guān)信息。它允許系統(tǒng)管理員為每個服務自定義安全要求和控制訪問權(quán)限。 Windows 服務包括四大部分:服務控制管理器 (Service Control Manager), 第 24 頁 共 52 頁 服務控制程序 (Service Control Program),服務程序 (Service Program)和服務配置程序 (Service Configuration Program)。 (1)服務控制管理器 (SCM) 服務控制管理器在系統(tǒng)啟動的早期由 Winlogon 進程啟動,可執(zhí)行文件名是“ %SystemRoot%\System32\”,它是系統(tǒng)中的一個 RPC 服務器,因此服務配置程序和服務控制程序可以在遠程操縱服務。它包括以下幾方面的信息: 已安裝服務數(shù)據(jù)庫:服務控制管理器在注冊 表中擁有一個已安裝服務的數(shù)據(jù)庫,它在服務控制管理器和程序添加,刪除,配置服務程序時使用,在注冊表中數(shù)據(jù)庫的位置為:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。它包括很多子鍵,每個子鍵的名字就代表一個對應的服務。數(shù)據(jù)庫中包括:服務類型 (私有進程,共享進程 ),啟動類型 (自動運行,由服務控制管理器啟動,無效 ),錯誤類型 (忽略,常規(guī)錯誤,服務錯誤,關(guān)鍵錯誤 ),執(zhí)行文件路徑,依賴信息選項,可選用戶名與密碼。 自動啟動服務:系統(tǒng)啟動時,服務控制管理器啟動所 有“自啟”服務和相關(guān)依賴服務 。 服 務 的 加 載 順 序 : 順 序 裝 載 組 列 表 :HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrde;指定組列表: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList;每個服務所依賴的服務程序。在系統(tǒng)成功引導后會保留一份 LKG(LastKnowGood)的配置信息位于: HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services。 因要求而啟動服務:用戶可以使用服務控制面板程序來啟動一項服務。服務控制程序也可以使用StartService 來啟動服務。服務控制管理器會進行下面的操作:獲取帳戶信息,登錄服務項目,創(chuàng)建服務為懸掛狀態(tài),分配登錄令牌給進程,允許進程執(zhí)行。 服務記錄列表:每項服務在數(shù)據(jù)庫中都包含了下面的內(nèi)容:服務名稱,開始類型,服務狀態(tài) (類型,當前狀態(tài),接受控制代碼,退出代碼,等待提示 ),依賴服務列表指針。 服務控制管理器句柄:服務控制管理器支持句柄類型訪問以下對象:已安裝服務數(shù)據(jù)庫,服務 程序,數(shù)據(jù)庫的鎖開狀態(tài)。 (2)服務控制程序 (SCP) 服務控制程序可以執(zhí)行對服務程序的開啟,控制和狀態(tài)查詢功能: 開啟服務:如果服務的開啟類型為 SERVICE_DEMAND_START,就可以用服務控制程序來開始一項服務。在開始服務的初始化階段服務的當前狀態(tài)為: SERVICE_START_PENDING,而在初始化完成后的狀態(tài)就是: SERVICE_RUNNING。 向正在運行的服務發(fā)送控制請求:控制請求可以是 系 統(tǒng)默 認的 ,也 可以 是用 戶自 定義 的。 標準 控制 代碼 如下 : 停止 服 務(SERVICE_CONTROL_STOP),暫停服務 (SERVICE_CONTROL_PAUSE),恢復已暫停服務(SERVICE_CONTROL_CONTINUE),獲得更新信息 (SERVICE_CONTROL_INTERROGATE)。 (3)服務程序 一個服務程序可能擁有一個或多個服務的執(zhí)行代碼。 具體實現(xiàn)時 可以創(chuàng)建類型為 第 25 頁 共 52 頁 SERVICE_WIN32_OWN_PROCESS 的 只 擁 有 一 個 服 務 的 服 務 程 序 。 而 類 型 為SERVICE_WIN32_SHARE_PROCESS 的服務程序卻可以包含多個服務的執(zhí)行代碼。詳情參見后面的 Windows 服 務與編程。 (4)服務配置程序 編程人員和系統(tǒng)管理員可以使用服務配置程序來更改,查詢已安裝服務的 信息。當然也可以通過注冊表函數(shù)來訪問相關(guān)資源。 服務的安裝,刪除和列舉:可以使用相關(guān)的系統(tǒng)函數(shù)來創(chuàng)建,刪除服務和查詢所有服務的當前狀態(tài)。 服務配置:系統(tǒng)管理員通過服務配置程序來控制服務的啟動類型,顯示名稱和相關(guān)描述信息。 服務模型設(shè)計 及函數(shù)實現(xiàn) 通過對 Windows 系統(tǒng)服務的了解,就可以編程實現(xiàn)對于遠程服務的管理。與注冊表的管理一樣,雖然 Windows 系統(tǒng)提供了遠程系統(tǒng)服務管理的功能,但是由于需 要管理員用戶名與密碼,并且要有 IPC 通道支持,所以現(xiàn)在用這種方法來實現(xiàn)的話, 受到 許多 限制,在遠程控制系統(tǒng)中的應用不切實際。同樣,在本文的遠程控制系統(tǒng)中, 本文 采用了遠程系統(tǒng)服務模擬的方法來實現(xiàn)對遠程主機系統(tǒng)服務的管理。具體要實現(xiàn)的功能如圖 所示: 圖 服務管理模型 系統(tǒng) 服務 管理的 編程 編程實現(xiàn) 包括幾方面的內(nèi)容,下面 本文 將從服務控制程序,服 第 26 頁 共 52 頁 務程序和服務配置程序的角度介紹服務編程相關(guān)的內(nèi)容。 (1)服務控制程序 在 執(zhí)行服務控制程序的相關(guān)函數(shù)前, 還 需要獲得一個服務對象的句柄,有兩種 方式 :由 OpenSCManager 來獲得一臺特定主機的服務控制管理器數(shù)據(jù)庫的句柄;使用OpenService 或 CreateService 函數(shù)來獲得某個服務對象的句柄。 啟動服務:要啟動一個服務,服務控制程序可以使用 StartService 來實現(xiàn)。如果服務控制管理器數(shù)據(jù)庫被鎖定,那需要等待一定的時間然后再次測試 StartService 函數(shù)。當然也可以使用 QueryServiceLockStatus 函數(shù)來確認數(shù)據(jù)庫的當前狀態(tài)。在啟動成功完成時,那么 dwCurrentState 參數(shù)將會返回 SERVICE_RUNNING 值。 服務控制請求:服務控制程序使用 ControlService 函數(shù)來發(fā)送控制請求到正在運行的服務程序。它會向控制句柄函數(shù)發(fā)送一個特定的控制命令,可以是系統(tǒng)默認的,也可以是用戶自定義的。而且每個服務都會確定自己將會接收的控制命令列表。使用QueryServiceStatus 函數(shù)時,在返回的 dwControlsAccepted 參數(shù)中表明服務程序?qū)邮盏目刂泼?。所有的服務都會接?SERVICE_CONTROL_INTERROGATE 命令。 (2)服務程序 一個服務程序內(nèi)可以包含一個服務或多個服務的執(zhí)行代碼,但 是它們都擁有固定的三個部分:服務 main 函數(shù),服務 ServiceMain 函數(shù)和服務 Control Handler 函數(shù)。 服務 main 函數(shù):服務程序通常是以控制臺的方式存在的,所以它們的入口點都是main 函數(shù)。在服務控制管理器 開始一個服務程序時,會等待 StartServiceCtrlDispatcher 函數(shù)的執(zhí)行。如果服務類型是 SERVICE_WIN32_OWN_PROCESS 就會立即調(diào)用 StartServiceCtrlDispatcher 函數(shù)的執(zhí)行;如果服務類型是 SERVICE_WIN32_SHARE_PROCESS,通常在初始化所有服務之后再調(diào)用它。 StartServiceCtrlDispatcher 函數(shù)的參數(shù)就是一個 SERVICE_TABLE_ENTRY結(jié)構(gòu),它包含了進程內(nèi)所有服務的名稱和服務入口點。 服務 ServiceMain 函數(shù):函數(shù) ServiceMain 是服務的入口點。在服務控制程序請求一個新的服務啟動時,服務控制管理器啟動一個服務,并發(fā)送一個開始請求到控制調(diào)度程序,而后控制調(diào)度程序創(chuàng)建一個新線程來執(zhí)行 ServiceMain 函數(shù)。 ServiceMain 須執(zhí)行以下的任務:調(diào)用 RegisterServiceCtrlHandler 函數(shù)注冊一個 HandlerEx 函數(shù)來向服務發(fā)送控制請求信息,返回值是服務狀態(tài)句柄用來向服務控制管理器傳送服務狀態(tài)。初始化后調(diào)用 SetServiceStatus 函數(shù)設(shè)置服務狀態(tài)為 SERVICE_RUNNING。最后,就是執(zhí)行服務所要完成的任務。 服務 Control Handler 函數(shù):每個服務都有一個控制句柄 HandlerEx 函數(shù)。它會在服務進程從服務控制程序接收到一個控制請求時被控制調(diào)度程序所調(diào)用。無論何時在HandlerEx 函數(shù)被調(diào)用時,都要調(diào)用 SetServiceStatus 函數(shù)向服務控制管理器報告它當前的狀態(tài)。在用戶關(guān)閉系統(tǒng)時,所有的控制句柄都會調(diào)用帶有 SERVICE_ACCEPT_SHUTDOW 第 27 頁 共 52 頁 控制代碼的 SetServiceStatus 函數(shù)來接收 NSERVICE_CONTROL_SHUTDOWN 控制代碼。 (3)服務配置程序 服務配置程序可以更改或查詢服務的當前配置信息。在調(diào)用服務配置函數(shù)之前,必須獲得一個服務對象的句柄,當然 也 可以通過調(diào)用 OpenSCManager,OpenService 或CreateService 函數(shù)來獲得。 創(chuàng)建,刪除服務:服務配置程序使用 CreateService 函數(shù)在服務控制管理器的數(shù)據(jù)庫中安裝一個新服務,它會提供服務的名稱和相關(guān)的配置信息并存儲在數(shù)據(jù)庫中。服務配置程序則使用 DeleteService 函數(shù)從數(shù)據(jù)庫中刪除一個已經(jīng)安裝的服務。 遠程 屏幕監(jiān)控的設(shè)計 現(xiàn)實現(xiàn) 屏幕控制功能中,首先須捕獲屏幕信息并保存在內(nèi)存中。通常,使用這種方法所得到的都是位圖 (Bitmap)格式的,雖然清晰度較高,但是涉及的數(shù)據(jù)量卻相當大,不適合在網(wǎng)絡中傳輸。于是,本文在屏幕控制功能中使用了逐行掃描,并在內(nèi)存中進行數(shù)據(jù)比較,在網(wǎng)絡中只傳輸屏幕變化的信息(數(shù)據(jù) )。同時,對于傳輸?shù)臄?shù)據(jù),本文采用了專門了數(shù)據(jù)壓縮算法,這在本文后面將會詳細介紹壓縮算法。經(jīng)實踐測試,當被控端的屏幕信息未發(fā)生變化時,網(wǎng)絡的數(shù)據(jù)傳輸量可以達到 0。 在屏幕監(jiān)控功能中,控制端還需要傳輸鼠標終端信息給被控端。這就需要在控制端模擬遠程主機屏幕的坐標,使得鼠標終端信息中的鼠標位置信息得以精確的表達。下面說明屏幕控制功能的實現(xiàn)。 捕捉屏幕 設(shè)計與實現(xiàn) 通過下面的具體函數(shù)來說明屏幕捕獲的實現(xiàn)。 procedure (var
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1