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

正文內(nèi)容

遠程控制軟件的設計與開發(fā)—計算機畢業(yè)設計-文庫吧

2025-10-30 16:52 本頁面


【正文】 的區(qū)別 計算機病毒是能通過某種途徑潛伏在計算機存儲介質(zhì)(或程序)里,當達到某種條件時即被激活的具有對計算機資源進行破壞作用的一種程序或指令集合。計算機病毒一般具有破壞性,隱蔽性,潛伏性,傳染性等特點。從計算機病毒的定義和特征中可以看出,遠程控制軟件與病毒的區(qū)別是十分明顯的。最基本的區(qū)別就在于病毒有很強的傳染性,而遠程控制軟件沒有。但是,如果遠程控制軟件沒有好的處理好軟件的安全問題,就會跟病毒相差無幾了。 遠程控制與黑客的區(qū)別 “黑客”一詞來源于英語單詞 hack,本指“手法巧妙,技術高明的惡作劇” 。今天,在最新和最普遍的意思上說,“黑客”意味著那些偷偷地,未經(jīng)許可就進入別人計算機系統(tǒng)的計算機犯罪。他們或修改網(wǎng)頁搞惡作劇或散布流言進行恐 第 3 頁 共 26頁 嚇,或破壞系統(tǒng)程度,施放病毒使系統(tǒng)險入癱瘓,或竊取政治,軍事與商業(yè)機密,或進行電子郵件騷擾,或轉(zhuǎn)移資金帳戶,竊取錢財,真所謂作案方式多樣,花樣翻新,令人防不勝防。 由此可見,遠程控制與黑客的區(qū)別是較大的。黑客往往利用操作系統(tǒng)和網(wǎng)絡的漏洞進行破壞活動,而遠程控制軟件的一大任務就是要保護控制端計算機,使之不受非授權用戶的訪問。 當然,如果編寫遠程控制軟件的唯一目的就是為了盜 竊人家計算機上的隱私,這樣的遠程控制軟件就不再是有用的軟件而是惡性的黑客程序了。 遠程控制與木馬的區(qū)別 木馬是一種在遠程計算機之間建立起連接,使遠程計算機能夠通過網(wǎng)絡控制本地計算機的程序。它的運行遵循 TCP/IP 協(xié)議。由于它像間諜一樣潛入用戶的電腦,為其他人的攻擊打開后門,與戰(zhàn)爭的“木馬”戰(zhàn)術十分相識,因而得名木馬程序。 木馬與遠程控制軟件的最大區(qū)別就是木馬具有隱蔽性而遠程控制軟件沒有 。 3. 控制遠程按鍵的背景技術介紹 Winsocket 的介紹 Socket 的基本概念 實 際上, Socket 在計算機中提供了一個通信端口(套接口)。通過這個端口,一臺計算機可以與任何一臺具有 Socket 接口的計算機通信。通信的基礎是套接口,一個套接口是通信的一端,在這一端上可以找到與其對應的一個名字。一個正在被使用的套接口都有他的類型和與其相關的進程,套接口存在于通信域中。一個套接口通常和同一個域中的套接口交換數(shù)據(jù)(數(shù)據(jù)交換也可以穿越域的界限,但這時一定要執(zhí)行某種解釋程序)。應用程序在網(wǎng)絡上傳輸,接收的信息都通過這個套接口來實現(xiàn)。在應用開發(fā)中就像使用文件句柄一樣,可以對 Socket句柄進行讀寫操 作。 Winsocket windows Socket(WinSock)API 是基于 BSD 版本的套接字,但只為 Windows進行了專門的擴展。此外, 能支持許多網(wǎng)絡協(xié)議,包括 TCP/IP, DEC Net 和 Novell 的 IPX/SPX 等。 Windows 套接字規(guī)范是一個由幾家開發(fā)商支持的接口規(guī)范。每個開發(fā)商都提供了他們自己的 DLL 來和傳輸棧一起工作。 客戶端 /服務器( C/S)模式 在 TCP/IP 網(wǎng)絡應用中,通信的兩個進程間相互作用的主要模式是客戶機 /服務器模式( Client/Server)。即客戶向服務器發(fā)出服務請求,服務器接收到請 第 4 頁 共 26頁 求后,提供相應的服務??蛻魴C /服務器模式的建立基于以下兩點:首先,建立網(wǎng)絡的起因是網(wǎng)絡中軟硬件資源,運算能力和信息不均等,需要共享,從而造就擁有眾多資源的主機提供服務,資源較少的客戶請求服務這一非對等作用;其次,網(wǎng)間進程通信完全是異步的,相互通信的進程見既不存在父子關系,又不共享內(nèi)存緩沖區(qū),因此需要一種機制為希望通信的進程間建立聯(lián)系,為兩者的數(shù)據(jù)交換提供同步,這就是基于客戶機 /服務器模式的 TCP/IP。 本程序的主要作用是控制 服務器端 的按鍵。當 客戶端 發(fā)生鍵盤按鍵事件時,服務器端 能夠得到鍵碼,實現(xiàn)按鍵的模擬。主要由以下幾部分構成: ( 1) 實現(xiàn)使用 WinSocket 建立 客戶端 和 服務器端 連接。要想實現(xiàn)遠程控制,首先就要實現(xiàn)遠程的互連。用 WinSocket 將 客戶端 和 服務器端 連接起來后, 服務器端 才可以得到控制端的信息。 ( 2) 控制端發(fā)送鍵碼。當 客戶端 與 服務器端 連接好以后, 客戶端 要想控制服務器端 的按鍵,必須要向 服務器端 發(fā)送與鍵盤按鍵對應的鍵碼, 服務器端 得到了這個鍵碼后才可以做出按鍵的模擬 。 ( 3) 實現(xiàn) 服務器端 模擬按鍵事件。 服務器端 在得到 客戶端 傳來的鍵碼后,根據(jù)鍵碼做出正確的按鍵模擬,實現(xiàn)控制遠程按鍵的功能。 控制遠程按鍵的流程分析 發(fā) 送 連 接 請 求 接 受 連 接 請 求等 待 控 制 命 令處 理 鍵 盤 事 件發(fā) 送 鍵 碼 和相 關 事 件 參 數(shù)接 受 鍵 盤 事 件命 令 和 數(shù) 據(jù)模 擬 鍵 盤 事 件K e y b d _ e v e n t客 戶 端 服 務 端 圖 1 控制遠程按鍵流程分析圖 第 5 頁 共 26頁 5 遠程按鍵控制的實現(xiàn) 使用 Winsocket 建立控制端和被控制端連接 首先,客戶端和服務器端都要創(chuàng)建一個數(shù)據(jù)套接字。接著 ,服務器調(diào)用 bind()函數(shù)給套接字分配一個公認的端口。這樣,客戶端和服務器端就使用同樣的端口來表示服務器套接字。一旦服務器將公認端口 分配給了套接字,客戶端和服務器端就都能使用 sendto()和 recvfrom()來發(fā)送和接收數(shù)據(jù)報直到完成傳遞。然后調(diào)用 close socket 來關閉套接字。 初始化 Winsock WSAStartup()函數(shù)的原型聲明如下: Int WSAStartup (WORD wVersionRequested, LPWSADATA lpWSAData )。 該函數(shù)共有兩個參數(shù)。一個參數(shù)是一個 WORD(雙字節(jié))型數(shù)值,他指應用程序中要使用的 WinSock 規(guī)范的最高版本。其中主版本在低位字節(jié),副版本號在高 位字節(jié)。第二個參數(shù)指一個指向 WSDATA 結構的指針,該結構的定義如下: Typedef struct WSAData { WORD wVersion。 WORD wHighVersion。 Char szDescription[WSADESCRIPTION_LEN+1]。 Char szSyestemStatus[WSASYS_ STATUS_LEN+1]。 Unsigned short iMaxSocket。 Unsigned short iMaxUdpDg。 Char FAR * IpVendorInfo。 }WSADATA,FAR * LPWSADATA 其中成員 wVersion 指 Windows Sockets 的版本號。 成員 wHighVersion 指 Windows Sockets 的最高版本。通常情況下,該成員的取值與成員 wVersion 相同。 成員 szDescrpition 指 Windows Sockets 實現(xiàn)的句柄字符串。 成員 szSystemStatus 指 Windows Sockets 的配置信息或相關狀態(tài)。 成員 iMaxSockets,iMaxUdpDg 和 lpVendorInfo 保留;在 Windows Socket2及以后的版本中被忽略。 我們一般采用如下代碼來調(diào)用 WSAStartup(): include //對應 winSock 2,應該包含 第 6 頁 共 26頁 WSADATA WSAData。 If (WSAStartup(0x0101,amp。WSAData)) { //初始化 winSock 時發(fā)生錯誤 MessageBox(“不能加載 windows 套接字動態(tài)連接庫”,“遠程控制”, MB_OK); Return。 } if(!=0x0101) { //支持版本無效,報告后終止 return。 } 這時,如果 或底層網(wǎng)絡子系統(tǒng)沒有正確初始化或沒有找到,WSAtartup()將返回 WSASYSNOTREADY。此外,這個函數(shù)允許應用程序協(xié)商使用某種版本的 WinSock 規(guī)范。通常在調(diào)用 WSAStarup()時,我們應該指定想使用的WinSock 最高版本。如果這個版本比任何 DLL支持的版本低, WSAStartup()將返回 WSAVERNOTSUPPORTED。 如果我們要求的版本高于或等于 DLL(動態(tài)鏈接庫)所支持的版本。 WSAData的 wVersion 成員將包含應用程序應該使用的版本。而 wHighVersion 成員中將包含 DLL 所支持的最高版本號。 如果返回到 wVersion 成員的版本號不能被應用程序所接受,我們就應該調(diào)用 WSACleanup()并退出引用程序,或找一 個不同的 來試一試。當然,這時需要動態(tài)加載新的 DLL,并從中調(diào)用 WSAStartup ()。 創(chuàng)建套接字 任何應用程序在使用套接字之前,首先必須擁有一個套接字,系統(tǒng)調(diào)用socket 函數(shù)向應用程序提供創(chuàng)建套接字的手段。 Socket()函數(shù)的原型聲明如下: SOCKET PASCAL FAR socket (int af,int type ,int protocol)。 該函數(shù)共有 3 參數(shù),其中參數(shù) af 指定通信發(fā)生的區(qū)域。 UNIX 系統(tǒng)支持的地址簇有 AF_UNIX, AF_INET,AF_NS 等。而 DOS, Windows 中僅支持 AF_INET,它是網(wǎng)際網(wǎng)區(qū)域。 第 7 頁 共 26頁 參數(shù) type 描述建立的套接字類型。也就是指流式套接字還是數(shù)據(jù)報套接字。 參數(shù) protocol 說明該套接字使用的特定協(xié)議,如果該參數(shù)設為 0。則表示使用默認的連接模式。 Socket()函數(shù)根據(jù)這 3 個參數(shù)建立一個套接字,并將相應的資源分配給它,同時返回一個整型套接字句柄。 指定本地地址 當一個套接字用 socket()創(chuàng)建后,存在一個名字空間(地址簇),但它沒有被命名。 Bind()將套接字地址(包括本地主機地址和本地 端口地址)與所創(chuàng)建的套接字編號聯(lián)系起來,即將名字賦予套接字。 bind()函數(shù)的原型聲明如下: int PASCAL FAR bind (SOCKER s,const struct sockaddr FAR *name,int namelen)。 bind()函數(shù)共有 3 個參數(shù),其中參數(shù) s 是由 socket()函數(shù)調(diào)用返回的并且未作連接的套接字句柄。 參數(shù) name 是賦給套接字 s的本地地址(名字),其長度可變,結構隨通信域的不同而不同。 參數(shù) namelen 指參數(shù) name 的長度。 如果調(diào)用成功, bind ()函數(shù)返 回 0;否則,返回 SOCKER_ERROR。 地址在建立套接字通信過程中起著重要作用,作為一個網(wǎng)絡應用程序設計者對套接字地址結構必須有明確的認識。例如, UNIX BSD 有一組描述套接字地址的數(shù)據(jù)結構,其中使用 TCP/IP 協(xié)議的地址結構為: struct sockaddr_in { short sin_family。 /* AF_INET*/ u_short sin_port: /*16 位端口號,網(wǎng)絡字節(jié)順序 */ struct in_addr sin_addr。 /*32 位 IP 地址,網(wǎng)絡字節(jié)順序 */ char sin_zero[8]。 /*保留 */ } 建立套接字連接 建立套接字連接需要使用兩個函數(shù)。即 connect()與 accept()。這兩個函數(shù)用于完成一個完整相關的建立,其中 connect()用于建立連接。無連接的套接字進程也可以調(diào)用 connect(),但這時在進程之間沒有實際的報文交換,調(diào)用將從本地操作系統(tǒng)直接返回。這樣做的優(yōu) 點是程序員不必為每一數(shù)據(jù)指定目的地址, 第 8 頁 共 26頁 而且如果收到一個數(shù)據(jù)報,其目的端口未與任何套接字建立“連接”,便能判斷該端口不可操作。 Accept()用于使服務器等待來自某客戶進程的實際連接。 Connect()函數(shù)的原型聲明如下: int PASCAL FAR connect(SOCKER s,const struct sockaddr FAR *name,int namelen)。 Connect()函數(shù)共有 3個參數(shù),其中參數(shù) s 指要建立連接的本地套接字句柄。 參數(shù) name 指對方套接字地址結構的指針,對方套接字地址 長度由參數(shù)namelen 說明。 如果調(diào)用成功, connect()函數(shù)返回 0;否則,返回 SOCKET_ERROR。在面向連接的協(xié)議中,該函數(shù)調(diào)用導致本地系統(tǒng)和外部系統(tǒng)之間連接的實際建立。 由于地址簇總被包含在套接字地址結構的前兩個字節(jié)中,并通過 socket()函數(shù)調(diào)用某個協(xié)議簇相關。因此 b
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1