利用VC++60实现网络远程控制技术.docx

上传人:b****4 文档编号:5427777 上传时间:2023-05-08 格式:DOCX 页数:38 大小:495.66KB
下载 相关 举报
利用VC++60实现网络远程控制技术.docx_第1页
第1页 / 共38页
利用VC++60实现网络远程控制技术.docx_第2页
第2页 / 共38页
利用VC++60实现网络远程控制技术.docx_第3页
第3页 / 共38页
利用VC++60实现网络远程控制技术.docx_第4页
第4页 / 共38页
利用VC++60实现网络远程控制技术.docx_第5页
第5页 / 共38页
利用VC++60实现网络远程控制技术.docx_第6页
第6页 / 共38页
利用VC++60实现网络远程控制技术.docx_第7页
第7页 / 共38页
利用VC++60实现网络远程控制技术.docx_第8页
第8页 / 共38页
利用VC++60实现网络远程控制技术.docx_第9页
第9页 / 共38页
利用VC++60实现网络远程控制技术.docx_第10页
第10页 / 共38页
利用VC++60实现网络远程控制技术.docx_第11页
第11页 / 共38页
利用VC++60实现网络远程控制技术.docx_第12页
第12页 / 共38页
利用VC++60实现网络远程控制技术.docx_第13页
第13页 / 共38页
利用VC++60实现网络远程控制技术.docx_第14页
第14页 / 共38页
利用VC++60实现网络远程控制技术.docx_第15页
第15页 / 共38页
利用VC++60实现网络远程控制技术.docx_第16页
第16页 / 共38页
利用VC++60实现网络远程控制技术.docx_第17页
第17页 / 共38页
利用VC++60实现网络远程控制技术.docx_第18页
第18页 / 共38页
利用VC++60实现网络远程控制技术.docx_第19页
第19页 / 共38页
利用VC++60实现网络远程控制技术.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

利用VC++60实现网络远程控制技术.docx

《利用VC++60实现网络远程控制技术.docx》由会员分享,可在线阅读,更多相关《利用VC++60实现网络远程控制技术.docx(38页珍藏版)》请在冰点文库上搜索。

利用VC++60实现网络远程控制技术.docx

利用VC++60实现网络远程控制技术

摘要

对于广大电脑爱好者来说远程控制软件并不陌生。

远程控制是管理人员在异地通过计算机网络,异地拨号或双方都接入Internet等手段,连接目标计算机,并通过本地计算机对远程计算机进行管理和维护的行为。

远程控制既可以作为黑客攻击手段之一,也可以作为远程维护,在家办公等应用领域的支持工具。

随着网络技术的进一步发展,网络速度越来越快,远程控制技术支持将逐渐占据技术支持的主流。

本文针对远程控制的概念以及软件的编写问题进行了详尽、深入的分析、研究。

本文首先阐述了远程控制的概念、远程控制软件的发展前景以及它与黑客和木马程序区别;其次介绍了远程控制软件实现所必须的网络协议、Socket编程的基本概念和Windows消息系统;最后讲解了利用VC++6.0编写一个完整的远程控制软件,包括客户端程序、被控制端程序的实现过程。

关键字:

远程控制、VC++6.0、网络协议、客户端、服务器端

Abstract

Saythelongrangecontrolsoftwareforthelargecomputerfanciernotunfamiliar.Thelongrangecontrolisamanagertopassthecalculatornetworkintheforeignland,theforeignlandstirsthenumberorbothpartiestoallconnectintotheInternettowaitthemeans,linkthetargetcalculator,andpassthenativecalculatortocarryonthebehaviorofmanagementandmaintenancetothelongrangecalculator.Thelongrangecontrolsincecanbeoneofanattackmeans,canalsobethelongrangemaintenance,athomesupporttoolthattransactstowaittheappliedrealm.Alongwiththetechnicalfurtherdevelopmentofnetwork,thenetworkspeedismoreandmorequick,thelongrangeofcontrolthetechniquesupportandwilloccupythemaincurrentofthetechniquesupportgradually.

Thistextwrotetheproblemtocarryontotheconceptofthelongrangecontrolandtheplaitofthesoftwaredetailed,thoroughofanalysis,research.Thistextelaboratedthattheconcept,longrangeofthelongrangecontrolcontrolsthedevelopmentforegroundofthesoftwarefirstanditwithblackguestandthewoodhorseproceduredifferentiation;Introducedthelongrangetocontrolthesoftwarerealizationthenextinordermustofnetworkagreement,theSocketweavesthebasicconceptofthedistanceandNewssystemofWindows;ExplainedindetailtomakeuseoftheVC++6.0finallythelongrangethatplaitswriteanintegritycontrolsthesoftware,includingthecustomertocarrytheprocedureandiscontroltocarrytheproceduretocarryouttheprocess.

 

Keyword:

Thelongrangecontrol,VC++6.0,thenetworknegotiate,thecustomercarry,theservercarry

第一章远程控制概述

1.1远程控制的概念

远程控制软件已经使用很多年了,起初是为了让PC用户在离开办公室的时候能够访问其台式PC硬盘中的信息,甚至可以通过其台式机PC访问企业网络资源。

今天,许多企业和增值分销商正在把远程控制能力作为有效的技术支持工具。

很多网络管理员都采用这类软件对局域网进行管理或者在家中更新自己网站的内容。

这类软件对于出差在外的商务人员用处非常大,这样他们可以随时提取自己家里计算机中的数据和资料。

对于远程控制软件实际上是一种客户机/服务器程序,服务器程序安放在被控制的计算机端,客户机安放在控制段。

在客户端和服务器端都安装成功之后,客户端在网络上搜索已经安装了服务器的远程计算机;然后,客户端就发指令获得服务器端的连接指令,两台PC建立起连接,就可以通过网络的互联协议TCP/IP进行远程控制。

远程控制的原理很简单:

在本机上直接启动运行的程序,拥有与使用者(客户端)相同的权限。

因此如果能够启动服务器端的服务器程序,就可以使用相应的客户端程序直接控制主机了。

也就是说客户端就好比一个超级用户,可以直接控制计算机。

1.1.1远程控制的原理

远程控制软件一般分两个部分:

一部分是客户端程序(Client),另一部分是服务器端程序(Server),通常在使用前需要将客户端程序安装到主控端的电脑上,将服务器端程序安装到被控端的电脑上。

它的控制的过程一般是先在主控端电脑上执行客户端程序,像一个普通的客户一样向被控端电脑中的服务器端程序发出信号,建立一个特殊的远程服务,然后通过这个远程服务,使用各种远程控制功能发送远程控制命令,控制被控端电脑中的各种应用程序运行。

远程控制软件在两台计算机之间建立起一条数据交换的通道,从而使得控制端可以向服务端发送指令,操纵服务端完成某些特定的工作。

此时,控制端只是负责发送指令和显示远程计算机执行程序的结果,而运行程序所需的系统资源均由被控计算机负责。

为了使用的方便,某些远程控制软件使用了Web技术,主控端可通过IE浏览器运行位于服务器端中的主控端程序来实现远程控制。

通过远程控制软件,我们可以进行多种远程操作,如察看被控电脑屏幕、窗口;访问被控电脑的磁盘、文件夹及文件,并可对其进行管理或共享其中的资源;运行或关闭被控电脑中的应用程序;查看被控电脑的进程表,激活、中止程序进程;记录并提取被控电脑的键盘操作;对被控电脑进行关闭、注销或重启等操作;修改被控电脑的Windows注册表;操纵与被控电脑相接的打印机、扫描仪等外部设备;通过被控电脑捕获音频、视频信号等。

1.1.2远程控制的实现

要进行远程控制,首先主控电脑和被控电脑都处在网络中,网络可以是局域网、广域网或Internet,某些软件也可使用直接连接电缆利用电脑COM或LPT口进行远程控制。

其次要保证双方使用相同的通信协议,多数情况下远程控制软件使用的是TCP/IP协议互相通信,也有部分软件可使用SPX、NetBIOS协议,但使用这类协议无法在广域网及Internet上实现远程控制。

大多数软件都要求远程控制的双方拥有合法的IP地址,并且要知道被控端确切的IP地址,这样就使得要对位于防火墙后的电脑实施远程控制变得几乎不可能,不过目前已经出现能穿透防火墙的远程控制软件。

1.1.3.远程控制的发展前景

远程控制在众多的领域里有着非常广泛的应用,如远程培训与教学、远程办公、对计算机及网络的远程管理与维护、远程监控。

(1)远程培训与教学

远程控制可以用于对远程的用户和员工进行培训,通过远程控制技术操纵对方的计算机,向对方进行操作演示,这样可以节省培训费用提高培训的效率。

远程控制技术也大量的使用在教学网络当中,软件方案的多媒体网络就是远程控制技术与多媒体技术结合的产物。

(2)远程办公

远程控制还可让你在任何地点连接自己的工作电脑,使用其中的数据与应用程序,访问网络资源、使用与其连接的打印机等外设。

它还可用于公司同事之间互相协同,完成一项共同的工作。

(3)远程管理与维护

对于计算机行业的售后服务人员来说,通过远程控制来为客户提供软件维护、升级、故障排除等服务,无疑可节省大笔的服务经费。

对于网络管理人员来说,远程控制可用来管理、维护单位网络中的大量服务器和计算机,可大大提高工作效率。

(4)远程监控

企业的管理者可通过远程控制软件来查看员工的屏幕,以保证员工能够在上班时间集中精力投身于工作,杜绝在上班时间聊天、上网、玩游戏的现象。

甚至还可通过记录员工的键盘操作,来防止企业的商业和技术机密被不正当使用。

家长也可通过远程控制对子女的电脑进行监控,防止子女无节制玩游戏或接触不良信息。

1.2远程控制、木马、病毒与黑客程序

远程控制软件可以为我们的网络管理工作做很多工作,以保证网络和计算机操作系统的安全。

这类程序的监听功能,也是为了保证网络的安全而设计的,但是如果使用不当的话,就会出现很多的问题。

为了达到远程控制的目的,就必须将这些软件隐藏起来。

例如有的远程控制软件为了不让用户发现而被删除,就采用了一些办法使自己隐藏起来,使远程控制程序本身附着在某些Windows程序上,以增加驻留系统的可靠性。

然而,正式由于这种功能,才使远程控制软件变得可怕起来,也使远程控制软件、病毒和黑客程序之间的区别变得越来越模糊。

1.远程控制与病毒

计算机病毒是能通过某种途径潜伏在计算机存储介质或程序里,当达到某种条件时即被激活的具有对计算机资源进行破坏作用的一种程序或指令集合。

计算机病毒一般具有以下几个特点:

1)破坏性。

凡是由软件手段能触及到计算机资源的地方均可能受到计算机病毒的破坏,而计算机病毒也正是利用这种原理进行破坏的。

2)隐蔽性。

病毒程序大多夹在正常程序之中,很难被发现。

3)潜伏性。

病毒入侵后,一般不立即活动,需要等一段时间,条件成熟后才起作用。

4)传染性。

通过修改别的程序,并把自身的拷贝包括进去,从而达到扩散的目的。

从计算机病毒的定义和特征中可以看出,远程控制软件与病毒的区别是十分明显的。

最基本的区别就在于病毒有很强的传染性,而远程控制软件没有。

2.远程控制与黑客

“黑客”一词来源于英语单词hack,本指“手法巧妙,技术高明的恶作剧”。

今天,在最新和最普遍的意义上来说,“黑客”意味着那些偷偷地、未经许可就进入别人计算机系统的计算机犯罪。

他们或修改网页搞恶作剧或散步流言进行恐吓;或破坏系统程序,施放病毒使系统陷入瘫痪;或窃取政治、军事与商业机密;或进行电子邮件骚扰;或转移资金帐户,窃取钱财,真所谓作案方式多样,花样翻新,令人防不胜防。

由此可见,远程控制与黑客的区别是较大的。

黑客往往利用操作系统和网络的漏洞进行破坏活动,而远程控制软件的一大任务就是要保护控制端计算机,使之不受非授权用户的访问。

3.远程控制与木马

木马是一种在远程计算机之间建立起连接,使远程计算机能够通过网络控制本地计算机的程序。

它的运行遵守TCP/IP协议。

由于它像间谍一样潜入用户的电脑,为其他人的攻击打开后门,与战争中的“木马”战术十分相似,因而得名木马程序。

木马与远程控制软件的最大区别就是木马具有隐蔽性而远程控制软件没有。

远程控制虽然可以方便地操纵远程计算机,但它也可能会给计算机带来安全方面的隐患。

因为一旦远程计算机成为服务端以后,其他人只要知道了这台计算机的IP地址,同样也可以通过网络上其他计算机向其发送控制指令,由于控制者拥有几乎完全的控制权,被控计算机中的所有资源都处在不设防状况,有可能导致非常严重的后果。

实际上木马程序的原理和远程控制程序是一样的,远程控制一旦被居心不良者钻了空子,它的危害甚至比木马还要严重。

第二章网络及应用协议

进行远程控制的一个前提条件是有一个控制环境,这个环境就是计算机网络。

因此在实现远程控制的具体技术之前必须了解网络的基本知识。

这些知识对于编写远程控制软件是不可缺少的,特别是TCP/IP协议,因为TCP/IP协议是整个计算机网络的灵魂。

2.1计算机网络的基本概念

2.1.1计算机网络的定义

对于计算机上网络,在不同的阶段或从不同的角度看有着不同的定义,有的把它定义为“以相互共享(硬件、软件和数据)资源的方式而连接起来,且各自具有独立功能的计算机系统的集合”。

这个定义着重于应用目的而没有指出计算机网络的结构。

有的则从结构上来看待计算机网络,而把它定义为“在网络协议控制下,由两台以上计算机和若干台终端,或数据传输设备连接而成且相互间能进行通信的计算机符合系统”。

有的还把计算机网络定义为“利用各种通信手段,如电报、电话和微波通信等,把地理位置上分散的计算机有机地连接在一起,达到相互通信而且共享软件、硬件和数据等资源的系统”。

2.1.2计算机网络的基本功能

1.数据通信

计算机联网之后,便可以相互传递数据和进行通信。

现在随着Internet在世界各地的普及,传统的传媒已经受到了很大的冲击,特别对于邮电、报纸、新闻及电视等行业的影响更深刻。

随着宽带网络技术不断成熟,这些行业通过计算机网络将会提供速度更快,质量更优和价格更低廉的服务。

2.资源共享

这是计算机网络的主要用途。

计算机在广大的地域范围内联网后,网络中各计算机的资源原则上都可以共享,可以突破地域范围的限制。

共享的资源主要有:

硬件、软件、及各种类型的信息。

3.提高系统的可靠性

计算机网络一般都采用分布式控制方式,如果有单个部件或少数计算机失效,但由于相同的资源可分布在不同地点的计算机上,所以可以通过不同的路由来访问这些资源,从而不影响用户对同类资源的访问。

4.促进分布式数据处理和分布式数据库的发展

分布式结构使得在获得数据和需要进行数据处理的地方都可以设置计算机,把数据处理的功能分散到各个计算机上。

因此利用网络环境可实现分布处理和建立性能优良,可靠性高的分布式数据系统。

2.1.3计算机网络体系结构

对于计算机终端或其他数据处理设备间的数据交换,必须考虑完成下列任务:

1)信源系统要激活直接数据通道或同志通信网络所期望的信宿系统的地址;

2)信源系统必须确认信宿系统已准备好接收数据;

3)在文件传输过程中必须确认信宿系统文件管理程序已准备接收并存储这个文件;

4)如果两台机器的文件格式不兼容,其中的某台机器必须惊醒格式转换工作。

这表明,在两个计算机系统之间必须存在更高级别的合作。

在计算机之间进行以协议为目的的数据交换一般称为“计算机网络通信”。

同样,当两台以上计算机经由通信网络互相连接,这个计算机工作站的集合也称之为“计算机网络”。

由于对终端用户或计算机用户来说两者都具有相同的协作层次,因而这些通信的实体往往被称之为终端。

协议是为了在不同系统中的实体间进行通信而使用的。

这里,实体和系统两词都是泛指的。

一般来说实体能够发送或接收信息,而系统可以包容一个或多个实体,而且在物理上是实际存在的物件。

为了两个试题能够实现通信,它们必须使用相同的语言。

交流什么信息,如何交换,何时通信,这在参与通信的实体间必须达成相互都能接受的安排。

这些安排就是规程或协议。

协议往往被制定成一系列规则,用来管制两个实体间的数据交换。

协议中的关键因素包括:

1)语法,包括数据格式和信号电平等;

2)语议,包括协调用的控制信息和差错管理;

3)规则,包括时间控制,速率匹配和定时。

在介绍了协议之后,再引入协议体系结构的概念。

我们已经知道,在计算机之间通信,需要更高层次的协作。

如果不再把它从逻辑上看成一件任务,而是将其划分成几件事来做,则可以把文件传输这样的任务分成3件事来做。

通信模块要保证激活和使参与通信的两个计算机系统处于准备好状态,并跟踪数据的交换且保证送达。

这些任务被剥离出来,放到了另一个分立的网络访问模块中。

这样倘若使用网络更替时,所影响的只是网络访问模块。

不用一个模块来完成通信任务,,而用一个构造好的模块集合来完成不同的通信功能,这就是协议体系结构的思想。

2.1.4OSI体系结构

开放式系统互联模型(OSI)是作为计算机通信体系结构的模型由国际标准化组织制订并构架的开发协议标准。

OSI模型是由应用层、表示层、会话层、传输层、数据链路层和物理层7个层次构成,其意图是为每层次上的功能都由若干个协议来实现。

OSI是设计者试图用这个模型并在这个模型的框架内开发协议以最终代替类似TCP/IP的协议及模型,并取得计算机通信方面的主导地位。

机关在OSI的框架内开发了很多游泳的协议,但全面的7层模型并没有真正流行起来,而TCP/IP体系结构在实现的网络世界中仍占据着支配地位。

OSI模型各层次的功能如下所述。

物理层:

保证无特定结构的位流在物理介质上的传输;规范物理介质访问的机械、电气、功能和过程特性。

数据链路:

为穿越物理链路的信息提供可靠的传输手段,为数据块发送提供必要的同步、差错控制和流量控制。

网络层:

为更高层次提供独立于数据传输和交换技术的系统连接,并负责建立、维持和结束连接。

传输层:

提供可靠和透明的端点间的数据传输,并提供端点间的错误校正和流量控制。

会话层:

为应用程序间和通信提供控制结构,包括建立、管理及终止连接(任务)。

表示层:

提供应用进程在数据表示(语法)差异上的独立性。

应用层:

提供给用户对OSI环境的访问和分布式信息服务。

各层之间的通信如图2-1所示:

图2-1

2.2TCP/IP协议分析

TCP/IP起源于20世纪60年代末,是美国政府资助的一个分组交换网络研究项目,现在已经发展成为计算机之间最常用的网络协议。

它是一个真正的开放系统,因为协议组件的定义及多种实现可以不用花钱或话很少的钱就可以公开的得到。

它以成为被称做“全球互联网”的基础。

TCP/IP协议并不完全符合OSI的七层参考模型。

传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。

该模型的目的是使各种硬件在相同的层次上相互通信。

而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

这4层分别为:

1.链路层:

他有时也称做数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。

它们一起处理针对电缆(或其他任何传输媒介)的物理接口细节。

2.网络层:

它有时也称做互连网络层,处理分组在网络中的活动,例如分组的路由选择。

在TCP/IP协议组件中,网络协议包括IP协议、ICMP协议以及IGMP协议。

3.传输层:

它主要为两台主机上的应用程序提供端到端的通信。

在TCP/IP协议组件中,有两个互不相同的传输协议:

TCP和UDP。

TCP为两台主机提供可靠的数据通信。

它所做的工作包括把应用程序交给它的数据分成合适的小块再交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。

由于传输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。

另一方面,UDP为应用层提供一种非常简单的服务。

它只是把称做数据报的分组从一台主机发送到另一台主机,但并不保证该数据报一定达到另一端。

任何必须的可靠性必须由应用层来提供。

4.应用层:

应用层负责处理特定的应用程序细节。

几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:

1)Telnet远程登录。

2)FTP文件传输协议。

3)SMTP用电子邮件的简单邮件传输协议。

4)SNMP简单网络管理协议。

TCP/IP协议与OSI其层模型的对照如图2-2所示:

图2-2

 

第三章远程控制的实现基础

在远程控制软件当中,对于控制端进行的数据通信所使用的主要技术就是网络编程技术和系统编程技术。

3.1Socket编程的基本概念

在开始使用套接字编程之前,首先必须建立以下概念。

1.网间进程通信

进程通信的概念最初来源于单机系统。

由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIXBSD中的管道(pipe)、命名管道(namedpipe)和软中断信号(signal),UNIXsystemV的消息(message)、共享存储区(sharedmemory)和信号量(semaphore)等,但都仅限于用在本机进程之间通信。

网间进程通信要解决的是不同主机进程间的相互通信问题(可把同机进程通信看作是其中的特例)。

为此,首先要解决的是网间进程标识问题。

同一主机上,不同进程可用进程号(processID)唯一标识。

但在网络环境下,各主机独立分配的进程号不能唯一标识该进程。

例如,主机A赋于某进程号5,在B机中也可以存在5号进程,因此,“5号进程”这句话就没有意义了。

其次,操作系统支持的网络协议众多,不同协议的工作方式不同,地址格式也不同。

因此,网间进程通信还要解决多重协议的识别问题。

为了解决上述问题,TCP/IP协议引入了下列几个概念。

1)端口。

网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。

按照OSI七层协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信能力。

从这个意义上讲,网络通信的最终地址就不仅仅是主机地址了,还包括可以描述进程的某种标识符。

为此,TCP/IP协议提出了协议端口(protocolport,简称端口)的概念,用于标识通信的进程。

类似于文件描述符,每个端口都拥有一个叫端口号(portnumber)的整数型标识符,用于区别不同端口。

应用程序可以使用编号从1到655535的任何一个端口好,并将其分配给端口。

通常分成以下几个范围段:

端口0,1~255,保留给特定的服务,如FTP、远程网及FINGER等服务。

端口256~1023,保留给别的一般服务,如Routingfunction(路由函数)。

端口1024~4999,可以被任意的客户端端口使用,客户端套接字通常会使用这个范围段的端口。

端口5000~655535,为用户定义的服务器端口使用。

如果一个客户需要事先知道服务器的端口,那么服务器套接字就应该使用这个范围的端口值。

2)地址。

网络通信中通信的两个进程分别在不同的机器上。

在互连网络中,两台机器可能位于不同的网络,这些网络通过网络互连设备(网关,网桥,路由器等)连接。

因此需要三级寻址:

1.某一主机可与多个网络相连,必须指定一特定网络地址;

2.网络上每一台主机应有其唯一的地址;

3.每一主机上的每一进程应有在该主机上的唯一标识符。

通常主机地址由网络ID和主机ID组成,在TCP/IP协议中用32位整数值表示;TCP和UDP均使用16位端口号标识用户进程。

4)网络字节顺序。

不同的计算机存放多字节值的顺序不同,有的机器在起始地址存放低位字节(低价先存),有的存高位字节(高价先存)。

为保

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2