【正文】
自到用戶現(xiàn)場解決問題之前,計算機將無法繼續(xù)使用,導(dǎo)致工作延誤。許多商業(yè)用戶對計算機知之甚少,然而當遇到問題時,他們必須向技術(shù)人員提供故障情報及相關(guān)操作。這種技術(shù)支持方式盡管被普遍采用,但效率不高而且大大增加了技術(shù)支持成本。這就需要對軟件在設(shè)計方面做一些安全考慮。一方面給用戶和網(wǎng)絡(luò)管理員工作帶了很大的方便,另一方面也給一些居心不良者留下后門。特別是對于網(wǎng)絡(luò)管理員,技術(shù)服務(wù)人員來說,遠程控制提供了一個便捷,高效的手段。通過遠程控制軟件,可以進行很多方面的遠程控制,包括獲取目標電腦屏幕圖像、窗口及進程列表等等。遠程控制軟件一般分兩個部分:一部分是客戶端程序Client,另一部分是服務(wù)器端程序Server,在使用前需要將客戶端程序安裝到主控端電腦上,將服務(wù)器端程序安裝到被控端電腦上。如果你是軟件開發(fā)商,你的員工可以通過它在辦公室里遠程為客戶配置系統(tǒng)、對產(chǎn)品進行維護,如果客戶向你報告軟件產(chǎn)品出現(xiàn)問題你可以遠程對產(chǎn)品進行調(diào)試,最終解決問題。關(guān)鍵詞:套接字 面向?qū)ο?軟件工程 遠程監(jiān)控AbstractAlong with the development of the calculator information modern industry, the remote control system is more and more value by business enterprise and school. This text mainly analyzed some basic functions of the remote control system and constitute the circumstance, including the requirements analysis, the structure of the system, the function mold piece divide the line analyze etc, the point make the introduction towards applying the actual development of the procedure realization. Come to the consistency and safeties of the data, and apply the procedure function plete. It will introduce the Visual C++ programming environment and the features of the WinSocket at the same time.This topic design is in order to adapt the remote control request, make the remote assistance carry on the level by design that the management raises the calculator of. Remote control includes several contents, this topic design just accepted to set up among them of one part namely: The realtime control. This topic used a number of techniques, for example: The socket of asynchronous mode, ObjectOriented, Software Engineering, API HOOK etc. This system uses Visual C + + as a development tool, the operation of the entire system is simple, interface is userfriendly, function is flexible and practical, achieved the basic functions including screen monitoring, control and transfer files, process monitoring, system services and registry monitoring, plete the main functions of what the Remote Assistance system need to go.Keyword: Socket,ObjectOriented,SoftwareEngineering,Hook,remote control目錄摘 要 IAbstract II目錄 III前言 11 遠程通信與控制技術(shù)概述 2 課題背景 2 目的以及意義 3 Microsoft Visual C++及編程模式簡介 4 Visual C++的簡介 4 MFC應(yīng)用程序框架 5 MFC的消息映射 7 系統(tǒng)架構(gòu)的模式 10 C/S結(jié)構(gòu)模式 10 TCP C/S模式的通信原理 10 C/S結(jié)構(gòu)的優(yōu)點 11 API HOOK技術(shù)簡介 11 CAsyncSocket類的簡單介紹 132 遠程通信與控制系統(tǒng)分析 15 系統(tǒng)基本情況描述 15 系統(tǒng)可行性分析 16 經(jīng)濟可行性 17 技術(shù)可行性 17 操作可行性 17 功能需求分析 18 系統(tǒng)流程圖 193 遠程通信與控制程序設(shè)計 21 系統(tǒng)設(shè)計使用工具 21 系統(tǒng)模塊的設(shè)計 21 模塊設(shè)計 21 屏幕監(jiān)控模塊設(shè)計 21 文件操作模塊設(shè)計 23 注冊表操作模塊設(shè)計 23 發(fā)送信息模塊設(shè)計 24 API HOOK模塊設(shè)計 24 客戶端與服務(wù)器連接設(shè)計 24 系統(tǒng)主要模塊實現(xiàn) 25 屏幕監(jiān)控模塊 25 文件操作模塊 27 注冊表操作模塊 27 API HOOK模塊 294 系統(tǒng)實現(xiàn)與測試 30 軟件測試基礎(chǔ) 30 軟件測試的目標 30 軟件測試常用方法 30 本系統(tǒng)采用的測試方法 31 連接測試 31 文件操作測試 33 注冊表操作測試 36 發(fā)送信息測試 39 屏幕控制測試 40 測試結(jié)論 42總 結(jié) 43致 謝 44參考文獻 45前言隨著計算機網(wǎng)絡(luò)的飛速發(fā)展以及網(wǎng)絡(luò)技術(shù)的日益普及和大眾化,人們可以很方便地從Internet上獲取和自己工作生活密切相關(guān)的信息,世界也真正變成一個地球村,我們可以和世界上其他任何一個人通過計算機網(wǎng)絡(luò)進行溝通,信息資源達到了高度的共享。本課題設(shè)計為一個通信應(yīng)用程序,用到了多項技術(shù),諸如:異步模式socket、面向?qū)ο缶幊?、軟件工程思想、API HOOK等。本課題設(shè)計是為適應(yīng)遠程控制及協(xié)助的要求,使遠程控制提高到計算機的實時水平而設(shè)計的。達到了實時性和安全性,且應(yīng)用程序功能完備。隨著計算機信息現(xiàn)代工業(yè)的發(fā)展,計算機遠程控制管理系統(tǒng)越來越受到各方面的重視。很多網(wǎng)絡(luò)管理員都采用這類軟件對局域網(wǎng)進行管理或者在家中更新自己網(wǎng)站的內(nèi)容。遠程控制起初是為了讓PC用戶在離開辦公室的時候能夠訪問其臺式PC硬盤中的信息,甚至可以通過其臺式機PC訪問企業(yè)網(wǎng)絡(luò)資源。網(wǎng)絡(luò)遠程通信與控制程序設(shè)計網(wǎng)絡(luò)遠程通信與控制程序設(shè)計作者姓名:大 衛(wèi)專業(yè)名稱:計算機科學(xué)與技術(shù)指導(dǎo)老師:杰克 副教授46網(wǎng)絡(luò)遠程通信與控制程序設(shè)計摘 要在如今這個信息高速發(fā)達的時代,人們之間的物理距離雖無太大變化,然而邏輯距離卻在一天天縮小。同時,鑒于交通的繁忙,無紙辦公和遠程辦公的趨勢已然愈演愈烈!遠程控制應(yīng)運而生。今天,許多企業(yè)和增值分銷商正在把遠程控制能力作為有效的技術(shù)支持工具。這類軟件對于出差在外的商務(wù)人員用處非常大,這樣他們可以隨時提取自己家里計算機中的數(shù)據(jù)和資料。本文主要分析了遠程控制系統(tǒng)的一些基本功能和組成情況,包括系統(tǒng)的需求分析、系統(tǒng)結(jié)構(gòu)、功能模塊劃分分析等,重點對應(yīng)用程序的實際開發(fā)實現(xiàn)作了介紹。同時簡單介紹了Visual C++ 。遠程控制包括多項內(nèi)容,本課題設(shè)計只是承建了其中的一部分即:實時控制。本系統(tǒng)采用Visual C++ , 整個系統(tǒng)操作簡潔、界面友好、功能靈活、實用,實現(xiàn)了包括客戶端屏幕監(jiān)控、文件操作及傳輸、系統(tǒng)服務(wù)和注冊表監(jiān)控等基本功能,基本完成了遠程控制中所需要到的主要功能。從這一點得到啟發(fā),希望能設(shè)計一個遠程控制系統(tǒng),通過它可以在家里控制辦公室里的計算機。這樣員工就不會因長期的勞苦奔波而抱怨,用戶也不會因為你不能及時解決問題而和你討價還價,當然,也為公司節(jié)約了人力、財力和物力。它的控制的過程一般是先在主控端電腦上執(zhí)行客戶端程序,像一個普通的客戶一樣向被控端電腦中的服務(wù)器端程序發(fā)出信號,建立一個特殊的遠程服務(wù),然后通過這個遠程服務(wù),使用各種遠程控制功能發(fā)送遠程控制命令,控制被控端電腦中的各種應(yīng)用程序運行,這種遠程控制方式稱為基于遠程服務(wù)的遠程控制。遠程控制具有一下優(yōu)點:便于用戶能夠在任何地方通過網(wǎng)絡(luò)及時,快速的訪問,控制自己的主機。當然,遠程控制軟件是一把雙刃劍,有優(yōu)點就會有缺點,它存在比較嚴重的安全隱患。形成很多木馬程序。1 遠程通信與控制技術(shù)概述 課題背景通常企業(yè)內(nèi)部或者IT公司的客戶技術(shù)支持部門都有技術(shù)支持業(yè)務(wù),其任務(wù)是通過電話解答疑難問題,努力減少技術(shù)人員到現(xiàn)場服務(wù)或者讓用戶把設(shè)備送到支持中心進行維護。通常,技術(shù)支持必須依賴技術(shù)人員和用戶之間的口頭交流來進行,這種交流既耗時又容易出錯。在嘗試解決問題時,技術(shù)人員可能指導(dǎo)用戶執(zhí)行一系列復(fù)雜的過程,而這些過程對用戶來說或許完全不熟悉;如果用戶不能正確的按要求操作,反而使問題惡化。電腦中的遠程控制技術(shù),始于DOS時代,只不過當時由于技術(shù)上沒有什么大的變化,網(wǎng)絡(luò)不發(fā)達,市場沒有更高的要求,所以遠程控制技術(shù)沒有引起更多人的注意。遠程控制一般支持下面的這些網(wǎng)絡(luò)方式:LAN、WAN、撥號方式及互聯(lián)網(wǎng)方式。傳統(tǒng)的遠程控制軟件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP等協(xié)議來實現(xiàn)遠程控制,不過,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,很多遠程控制軟件提供通過Web頁面以Java技術(shù)來控制遠程電腦,這樣可以實現(xiàn)不同操作系統(tǒng)下的遠程控制。這意味著你只能用這些軟件控制擁有公網(wǎng)IP的電腦,或者只能控制同一個內(nèi)網(wǎng)中的電腦(比如控制該公司里其它的電腦)。80%以上的電腦都處于內(nèi)網(wǎng)中(使用路由共享上網(wǎng)的方式即為內(nèi)網(wǎng)),TCP軟件不能穿透內(nèi)網(wǎng)的缺陷,使得該類軟件使用率大打折扣。UDP協(xié)議遠程控制與 TCP 協(xié)議遠程控制不同,UDP傳送數(shù)據(jù)前并不與對方建立連接,發(fā)送數(shù)據(jù)前后也不進行數(shù)據(jù)確認,從理論上說速度會比TCP快(實際上會受網(wǎng)絡(luò)質(zhì)量影響)。從而解決了TCP協(xié)議遠程控制軟件需要做端口映射的難題。、MSN、網(wǎng)絡(luò)人遠程控制軟件、XT800的遠程控制功能都是基于UDP協(xié)議的。由于IP資源日益稀缺,越來越多的用戶會在內(nèi)網(wǎng)中上網(wǎng),因此能穿透內(nèi)網(wǎng)的遠程控制軟件,將是今后遠程控制發(fā)展的主流方向。遠程控制系統(tǒng)能使技術(shù)人員直接操作遠程計算機,就像操作本地機器一樣,無須用戶介入,技術(shù)人員技能得到該機器的問題的第一手材料,從而加快了問題的解決??傊?,本畢業(yè)設(shè)計題目的設(shè)計與實現(xiàn)具有很大的現(xiàn)實意義。它不但具有程序框架自動生成、靈活方便的類管理、代碼編寫和界面設(shè)計集成交互操作、可開發(fā)多種程序等優(yōu)點,而且通過簡單的設(shè)置就可使其生成的程序框架支持數(shù)據(jù)庫接口、OLE2,WinSock網(wǎng)絡(luò)、3D控制界面。比如,它允許用戶進行遠程調(diào)試,單步執(zhí)行等。其編譯及建置系統(tǒng)以預(yù)編譯頭文件、最小重建功能及累加連結(jié)著稱。Visual C++的資源編輯器能以所見即所得的形式直接編輯程序的用戶界面,為所有資源分配ID標識號。通過使用AppWizard,程序員的編程工作便簡化為用資源編輯器直觀的設(shè)計界面,完善對話框類代碼,在空的處理函數(shù)模板處填寫響應(yīng)用戶操作的代碼,這是一種比較完善的可視化編程方法。然而,使用Visual C++,開發(fā)人員必須真正地閱讀和編寫C++代碼。 MFC應(yīng)用程序框架MFC實際上是微軟提供的,用于在C++環(huán)境下編寫應(yīng)用程序的一個框架和引擎,VC++是Windows下開發(fā)人員使用的專業(yè)C++ SDK(SDK,Standard SoftWare Develop Kit,專業(yè)開發(fā)平臺),MFC就是掛在它之上的一個輔助軟件開發(fā)包,MFC作為與VC++血肉相連的部分(注意C++和VC++的區(qū)別:C++是一種程序設(shè)計語言,是一種大家都承認的軟件編制的通用規(guī)范,而VC++只是一個編譯器,或者說是一種編譯器+源程序編譯器的IDE,WS,PlatForm,這跟Pascal和Delphi的關(guān)系一個道理,Pascal是Delphi的語言基礎(chǔ),Delphi使用Pascal規(guī)范來進行Win下應(yīng)用程序的開發(fā)和編譯,卻不同于Basic語言和VB的關(guān)系,Basic語言在VB開發(fā)出來被應(yīng)用的年代已經(jīng)成了Basic語言的新規(guī)范,VB新加的Basic語言要素,如面向?qū)ο蟪绦蛟O(shè)計的要素,是一種性質(zhì)上的飛躍,使VB既是一個IDE,又成長成一個新的程序設(shè)計語言