欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载
     

    网络远程通信和控制程序设计毕业设计论文.doc

    • 资源ID:3991595       资源大小:1.12MB        全文页数:50页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    网络远程通信和控制程序设计毕业设计论文.doc

    网络远程通信与控制程序设计作者姓名:大 卫专业名称:计算机科学与技术指导老师:杰克 副教授摘 要在如今这个信息高速发达的时代,人们之间的物理距离虽无太大变化,然而逻辑距离却在一天天缩小。同时,鉴于交通的繁忙,无纸办公和远程办公的趋势已然愈演愈烈!远程控制应运而生。远程控制起初是为了让PC用户在离开办公室的时候能够访问其台式PC硬盘中的信息,甚至可以通过其台式机PC访问企业网络资源。今天,许多企业和增值分销商正在把远程控制能力作为有效的技术支持工具。很多网络管理员都采用这类软件对局域网进行管理或者在家中更新自己网站的内容。这类软件对于出差在外的商务人员用处非常大,这样他们可以随时提取自己家里计算机中的数据和资料。随着计算机信息现代工业的发展,计算机远程控制管理系统越来越受到各方面的重视。本文主要分析了远程控制系统的一些基本功能和组成情况,包括系统的需求分析、系统结构、功能模块划分分析等,重点对应用程序的实际开发实现作了介绍。达到了实时性和安全性,且应用程序功能完备。同时简单介绍了Visual C+ 6.0编程环境和WinSocket的功能特点。本课题设计是为适应远程控制及协助的要求,使远程控制提高到计算机的实时水平而设计的。远程控制包括多项内容,本课题设计只是承建了其中的一部分即:实时控制。本课题设计为一个通信应用程序,用到了多项技术,诸如:异步模式socket、面向对象编程、软件工程思想、API HOOK等。本系统采用Visual C+ 6.0作为开发工具, 整个系统操作简洁、界面友好、功能灵活、实用,实现了包括客户端屏幕监控、文件操作及传输、系统服务和注册表监控等基本功能,基本完成了远程控制中所需要到的主要功能。关键词:套接字 面向对象 软件工程 远程监控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 complete. It will introduce the Visual C+ 6.0 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 real-time control. This topic used a number of techniques, for example: The socket of asynchronous mode, Object-Oriented, Software Engineering, API HOOK etc. This system uses Visual C + + 6.0 as a development tool, the operation of the entire system is simple, interface is user-friendly, function is flexible and practical, achieved the basic functions including screen monitoring, control and transfer files, process monitoring, system services and registry monitoring, complete the main functions of what the Remote Assistance system need to go.Keyword: Socket,Object-Oriented,Software-Engineering,Hook,remote control目录摘 要IAbstractII目录III前言11 远程通信与控制技术概述21.1 课题背景21.2 目的以及意义31.3 Microsoft Visual C+及编程模式简介41.3.1 Visual C+的简介41.3.2 MFC应用程序框架51.3.3 MFC的消息映射71.4 系统架构的模式101.4.1 C/S结构模式101.4.2 TCP C/S模式的通信原理101.4.3 C/S结构的优点111.5 API HOOK技术简介111.6 CAsyncSocket类的简单介绍132 远程通信与控制系统分析152.1 系统基本情况描述152.2 系统可行性分析162.2.1 经济可行性172.2.2 技术可行性172.2.3 操作可行性172.3 功能需求分析182.4 系统流程图193 远程通信与控制程序设计213.1 系统设计使用工具213.2 系统模块的设计213.2.1 模块设计213.2.2 屏幕监控模块设计213.2.3 文件操作模块设计233.2.4 注册表操作模块设计233.2.5 发送信息模块设计243.2.6 API HOOK模块设计243.3 客户端与服务器连接设计243.4 系统主要模块实现253.4.1 屏幕监控模块253.4.2 文件操作模块273.4.3 注册表操作模块273.4.4 API HOOK模块294 系统实现与测试304.1 软件测试基础304.1.1 软件测试的目标304.1.2 软件测试常用方法304.2 本系统采用的测试方法314.2.1 连接测试314.2.2 文件操作测试334.2.3 注册表操作测试364.2.4 发送信息测试394.2.5 屏幕控制测试404.2.6 测试结论42总 结43致 谢44参考文献45前言随着计算机网络的飞速发展以及网络技术的日益普及和大众化,人们可以很方便地从Internet上获取和自己工作生活密切相关的信息,世界也真正变成一个地球村,我们可以和世界上其他任何一个人通过计算机网络进行沟通,信息资源达到了高度的共享。从这一点得到启发,希望能设计一个远程控制系统,通过它可以在家里控制办公室里的计算机。如果你是软件开发商,你的员工可以通过它在办公室里远程为客户配置系统、对产品进行维护,如果客户向你报告软件产品出现问题你可以远程对产品进行调试,最终解决问题。这样员工就不会因长期的劳苦奔波而抱怨,用户也不会因为你不能及时解决问题而和你讨价还价,当然,也为公司节约了人力、财力和物力。远程控制软件一般分两个部分:一部分是客户端程序Client,另一部分是服务器端程序Server,在使用前需要将客户端程序安装到主控端电脑上,将服务器端程序安装到被控端电脑上。它的控制的过程一般是先在主控端电脑上执行客户端程序,像一个普通的客户一样向被控端电脑中的服务器端程序发出信号,建立一个特殊的远程服务,然后通过这个远程服务,使用各种远程控制功能发送远程控制命令,控制被控端电脑中的各种应用程序运行,这种远程控制方式称为基于远程服务的远程控制。通过远程控制软件,可以进行很多方面的远程控制,包括获取目标电脑屏幕图像、窗口及进程列表等等。远程控制具有一下优点:便于用户能够在任何地方通过网络及时,快速的访问,控制自己的主机。特别是对于网络管理员,技术服务人员来说,远程控制提供了一个便捷,高效的手段。当然,远程控制软件是一把双刃剑,有优点就会有缺点,它存在比较严重的安全隐患。一方面给用户和网络管理员工作带了很大的方便,另一方面也给一些居心不良者留下后门。形成很多木马程序。这就需要对软件在设计方面做一些安全考虑。1 远程通信与控制技术概述1.1 课题背景通常企业内部或者IT公司的客户技术支持部门都有技术支持业务,其任务是通过电话解答疑难问题,努力减少技术人员到现场服务或者让用户把设备送到支持中心进行维护。这种技术支持方式尽管被普遍采用,但效率不高而且大大增加了技术支持成本。通常,技术支持必须依赖技术人员和用户之间的口头交流来进行,这种交流既耗时又容易出错。许多商业用户对计算机知之甚少,然而当遇到问题时,他们必须向技术人员提供故障情报及相关操作。在尝试解决问题时,技术人员可能指导用户执行一系列复杂的过程,而这些过程对用户来说或许完全不熟悉;如果用户不能正确的按要求操作,反而使问题恶化。此外,如果通过电话不能解决问题,那么在技术人员亲自到用户现场解决问题之前,计算机将无法继续使用,导致工作延误。电脑中的远程控制技术,始于DOS时代,只不过当时由于技术上没有什么大的变化,网络不发达,市场没有更高的要求,所以远程控制技术没有引起更多人的注意。但是,随着网络的高度发展,电脑的管理及技术支持的需要,远程操作及控制技术越来越引起人们的关注。远程控制一般支持下面的这些网络方式:LAN、WAN、拨号方式及互联网方式。此外,有的远程控制软件还支持通过串口、并口、红外端口来对远程机进行控制(不过这里说的远程电脑,只能是有限距离范围内的电脑了)。传统的远程控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP等协议来实现远程控制,不过,随着网络技术的发展,很多远程控制软件提供通过Web页面以Java技术来控制远程电脑,这样可以实现不同操作系统下的远程控制。 TCP协议远程控制主要有windows系统自带的远程桌面、pcAnyWhere(赛门铁克公司)等,网上98%的远程控制软件都使用TCP协议来实现远程控制(包括上述几款),使用TCP协议的远程控制软件的优势是稳定、连接成功率高;缺陷是双方必须有一方具有公网IP(或在同一个内网中),否则就需要在路由器上做端口映射。这意味着你只能用这些软件控制拥有公网IP的电脑,或者只能控制同一个内网中的电脑(比如控制该公司里其它的电脑)。你不可能使用TCP协议的软件从某一家公司的电脑,控制另外一家公司的内部电脑,或者从网吧、宾馆里控制你办公室的电脑,因为他们处于不同的内网中。80%以上的电脑都处于内网中(使用路由共享上网的方式即为内网),TCP软件不能穿透内网的缺陷,使得该类软件使用率大打折扣。但是目前很多远程控制软件支持从被控端主动连接到控制端,可以一定程度上弥补该缺陷。UDP协议远程控制与 TCP 协议远程控制不同,UDP传送数据前并不与对方建立连接,发送数据前后也不进行数据确认,从理论上说速度会比TCP快(实际上会受网络质量影响)。最关键的是:使用UDP协议可以利用UDP的打洞原理(UDP Hole Punching技术)穿透内网。从而解决了TCP协议远程控制软件需要做端口映射的难题。这样,即使双方都在不同的局域网内,也可以实现远程连接和控制。QQ、MSN、网络人远程控制软件、XT800的远程控制功能都是基于UDP协议的。你会发现使用穿透内网的远程控制软件无需做端口映射即可实现连接,这类软件都需要一台服务器协助程序进行通讯以便实现内网的穿透。由于IP资源日益稀缺,越来越多的用户会在内网中上网,因此能穿透内网的远程控制软件,将是今后远程控制发展的主流方向。1.2 目的以及意义本文正是在上文提到的背景下提出的,目的就是为了解决计算机的远程操作,降低企业对软件的后期维护成本,提高计算机远程通信能力的减少误操作率来提升远程工作者的工作效率,设计出一款计算机网络远程控制系统。远程控制系统能使技术人员直接操作远程计算机,就像操作本地机器一样,无须用户介入,技术人员技能得到该机器的问题的第一手材料,从而加快了问题的解决。实际上,使用远程控制工具的技术人员能够做到解答疑难问题,安装和配置软件,把软件下载到用户计算机上,配置应用程序和系统软件设置并可通过实际操作培训用户。总之,本毕业设计题目的设计与实现具有很大的现实意义。1.3 C+及编程模式简介1.3.1 Visual C+简介Microsoft Visual C+是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。它以拥有“语法高亮”, IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。Visual C+的资源编辑器能以所见即所得的形式直接编辑程序的用户界面,为所有资源分配ID标识号。ClassWizard能把对话框模板与生成的类定义或与已有的类代码连接起来,为菜单项、控制等资源生成空的处理函数模板,创建消息映射条目,并将资源ID与处理函数连接起来。通过使用AppWizard,程序员的编程工作便简化为用资源编辑器直观的设计界面,完善对话框类代码,在空的处理函数模板处填写响应用户操作的代码,这是一种比较完善的可视化编程方法。但产品名“Visual C+”也容易误导人,让人认为自己使用的是一个与Microsoft Visual Basic类似的完全可视化的系统。然而,使用Visual C+,开发人员必须真正地阅读和编写C+代码。Visual C+向导可以节省时间和提高精度,但是,程序员也必须理解向导产生的代码,并且,最重要的是,还必须理解MFC库的结构和Windows操作系统的内部工作方式。1.3.2 MFC应用程序框架MFC实际上是微软提供的,用于在C+环境下编写应用程序的一个框架和引擎,VC+是Windows下开发人员使用的专业C+ SDK(SDK,Standard SoftWare Develop Kit,专业开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC+血肉相连的部分(注意C+和VC+的区别:C+是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而VC+只是一个编译器,或者说是一种编译器+源程序编译器的IDE,WS,PlatForm,这跟Pascal和Delphi的关系一个道理,Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BC+集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC+专配的。 MFC是Win API与C+的结合,API,即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行,比如VB,VC+,JAVA,Delhpi编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的消息机制和绘图里,遵守Windows作为一个操作系统的内部实现,这其实也是一种必要,微软如果不提供API,这个世上对Windows编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾,上面说到MFC是微软对API函数的专用C+封装,这种结合一方面让用户使用微软的专业C+ SDK来进行Windows下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Windows下用C+ & MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一些在Windows(用MFC编写的程序绝大部分都在Windows中运行)中实现内部处理的类,如数据库的管理类等,学习中最应花费时间的是消息和设备环境,对C+和MFC的学习中最难的部分是指针,C+面向对象程序设计的其它部分,如数据类型,流程控制都不难,建议学习数据结构C+版。 MFC是微软封装了的API。windows作为一个提供功能强大的应用程序接口编程的操作系统,的确方便了许多程序员,传统的win32开发(直接使用windows的接口函数API)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。MFC是面向对象程序设计与Application framework的完美结合,他将传统的API进行了分类封装,并且为使用者创建程序的一般框架。应用程序框架的一种定义是提供一般应用程序需要的全部面向对象软件组件的集成集合。C+流行的一个原因是它可以用类库扩充。类库是可在应用程序中使用的有关C+类的集合。应用程序框架是类库的超集。一般的类库只是一种孤立的类的集合,用来嵌入在任何程序中,但是,应用程序框架却定义了程序的结构。自从MFC库发布以来,MFC已经成为主要的Windows类库。使用MFC类库构建应用程序具有以下优点。 l MFC库是C+的Microsoft Windows API。l 应用程序框架生成的应用程序使用了标准的结构,具有标准化的用户接口,这对具有标准用户界面的Win32程序来说,可以极大的减轻程序员的负担,使程序员不必过多地考虑界面,可把主要精力放在程序设计上,以提高程序设计的效率。l 使用应用程序框架的应用程序不仅小,而且运行速度快,具有很大的灵活性。MFC封装了Win32 SDK中的几乎所有函数,能实现Win32系统的任何功能。l MFC框架降低了编码的复杂性。l MFC库应用程序框架有丰富的特性,如:Windows API的C+接口、通用的(非Windows所特有的)类、“共用根对象”类层次结构、流线式多文档界面(MDI)应用程序支持等。l 强大的功能。除封装了大部分的Win32 SDK函数外,MFC还提供了应用程序本身的数据和操作及ActiveX、OLE、Internet、WinSock、DAO(Data Access Objects)、ODBC(Open DataBase Connectivity)等操作类。MFC框架的核心是文档/视图结构(Document-View Architecture),这是一个很好用、但又往往较难以入门的功能。简单的说,文档/视图结构就是将数据和对数据的观察或数据的表现(显示)相分离。文档仅处理数据的实际读、写操作,视图则是显示和处理数据的窗口,视图可以操作文档中的数据。1.3.3 MFC的消息映射在使用Visual C+进行Win32程序设计时,消息映射是一个非常重要的概念。Windows应用程序是消息驱动的,应用程序不能直接得到用户所做的操作,如鼠标按键、键盘输入和窗口移动等。这些操作由操作系统管理,操作系统检测到操作事件后,便向相关的应用程序发送消息,应用程序响应这些消息来完成用户的操作。 1、消息 Windows中的消息是操作系统与应用程序之间、应用程序与应用程序之间、应用程序各对象之间相互控制与传递信息的方式。消息的基本格式如下:Message wParam lParamMessage是消息名称;wParam是与消息相关的Word型参数;lParam是与消息相关的Long型参数。消息主要有以下3类。Windows系统消息:Windows系统向窗口发送的消息,由窗口(Window)或视图(View)进行响应处理。这类消息包括除WM_COMMAND消息之外的名称以WM_开始的其他消息。控制通知消息:控制或子窗口传给父窗口的WM_COMMAND通知的消息。命令消息:在响应用户接口操作时,将产生WM_COMMAND命令消息。其参数指定了用户接口的标识号,如菜单项和按钮等ID号。 2、消息映射过程在使用AppWizard创建应用程序时,MFC应用程序框架设置了相应的消息处理函数来响应消息,以完成相应的操作。消息处理函数是某些类(通常是窗口类)的成员函数和程序员在其中编写响应消息时应进行操作的代码。框架将消息和它们的处理函数连接起来就是消息映射。消息映射使应用程序在接收到消息时调用对应的消息处理函数来响应和处理消息。ClassWizard在创建新类时将为其创建一个消息映射,并为每个类能响应的消息和命令增加对应的处理函数。在源代码中,消息映射开始于BEGIN_MESSAGE_MAP宏,结束于END_MESSAGE_MAP宏,中间由一系列预定义的被称为“条目宏”的宏组成。其基本格式如下:BEGIN_MESSAGE_MAP (classname, parentclassname)/AFX_MSG_MAP (classname)条目宏1条目宏2条目宏3/AFX_MSG_MAPEND_MESSAGE_MAP ()其中classname为拥有消息映射的当前类名,parentclassname为当前类的父类名。条目宏定义了类所处理的消息与其对应的函数。常用的条目宏类型如表1.1所示。Windows消息的处理函数在CWnd类中进行了预定义,类库以消息名为基础定义这些处理函数的名称,且MFC要求所有消息处理函数声明为afx_msg类型。例如,消息WM_PAINT的处理函数在CWnd类中的声明如下:afx_msg void OnPaint();表1.1 消息映射条目宏消息类型宏格式说明Windows消息ON_WM_XXXXWM_XXXX为Windows消息名命令ON_COMMAND(ID,Function)ID为命令标识号,Function为处理函数名更新命令ON_UPDATE_COMMAND_UI(ID,Function)ID为命令标识号,Function为处理函数名控制通知ON_XXXX(ID,Function)ID为控制标识号,Function为处理函数名用户定义消息ON_MESSAGE(ID,Function)ID为消息标识号,Function为处理函数名用户注册消息ON_REGISTERED_MESSAGE(ID,Function)ID为消息标识号,Function为处理函数名通过ClassWizard在派生类中用同样的原型定义处理函数并为该函数生成消息映射条目,然后由程序员编写处理函数代码,并在派生类中覆盖了其父类的消息处理函数。在有些情况下,必须在派生类的消息处理函数中调用其父类的消息处理函数,使Windows和基类能对消息进行处理。ClassWizard将在生成的处理函数中建议是否应调用父类的消息处理函数及调用的次序。除此之外,用户定义和注册的消息、命令和控制通知都没有默认的处理函数,需要在定义时声明,一般根据其ID名称来为函数命名。1.4 系统架构的模式C/S结构,即Client/Server(客户机/服务器)结构,软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。1.4.1 C/S结构模式Client/Server结构,它的发展经历了两个阶段:从两层结构到三层结构。两层结构,它由两部分构成,前端是客户机,通常是PC,主要完成用户界面显示,接受数据输入,校验数据有效性,向后台数据库发请求,接受返回结果,处理应用逻辑;后端是服务器,运行DBMS,提供数据库的查询和管理。应用逻辑主要在前端,如在后端则是存储过程的形式。三层结构则利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。三个层次的划分是从逻辑上来分的,具体的物理分法可以有多种组合。基于三层结构的应用系统不但具备了大型机系统稳定、安全和处理能力高等特性,同时拥有开放系统成本低、可扩展性强、开发周期短等优点。而中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器间、服务器间与服务器间的联接和通讯;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。1.4.2 TCP C/S通信原理TCP Client/Server的通信原理如图1.1所示,服务器端首先监听一个固定端口,客户端再连接到服务端,此时服务端执行Accept操作,以接受客户端的连接。此时连接创建成功,则进行数据传输,待数据传输完毕,服务端和客户端就断开连接。监听Listen()Server端Client端创建Socket()接受Accept()数据传输Send()Receive()断开Close()连接Connect()创建Socket()数据传输Send()Receive()断开Close()图1.1 Client/Server的通信流程1.4.3 C/S结构的优点Client/Server技术在目前程序开发中得到了广泛的应用,这种技术的优点在于它将处理工作按照一定的比例分配到客户端和服务器上去执行,这样减少了网络传输的工作量,从而合理地利用了资源,提高了应用程序开发的效率。由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。1.5 API HOOK技术简介Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会受到系统的通知,这时程序就能在第一时间对该事件做出响应。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。API HOOK技术是一种用于改变API执行结果的技术,Microsoft 自身也在Windows操作系统里面使用了这个技术,如Windows兼容模式等。 API HOOK 技术并不是计算机病毒专有技术,但是计算机病毒经常使用这个技术来达到隐藏自己的目的。在windows系统下编程,应该会接触到api函数的使用,常用的API函数大概有2000个左右。今天随着控件,stl等高效编程技术的出现,api的使用概率在普通的用户程序上就变得越来越小了。当诸如控件这些现成的手段不能实现的功能时,我们还需要借助API。最初有些人对某些api函数的功能不太满意,就产生了如何修改这些api,使之更好的服务于程序的想法,这样API hook就自然而然的出现了。我们可以通过api hook,改变一个系统API的原有功能。基本的方法就是通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数。api hook并不属于MSDN上介绍的13类Hook中的任何一种。Windows系统下的编程,消息Message的传递是贯穿其始终的。Hook与消息有着非常密切的联系,它的中文含义是“钩子”,这样理解起来不难得出“Hook是消息处理中的一个环节,用于监控消息在系统中的传递,并在这些消息到达最终的消息处理过程前,处理某些特定的消息”。这也是Hook分为不同种类的原因。在Windows系统下编程,经常接触到API函数的使用,常用的API函数大概有2000个左右。今天随着控件,STL等高效编程技术的出现,API的使用概率在普通的用户程序上就变得越来越小了。当诸如控件这些现成的手段不能实现的功能时,因此还需要借助API。最初有些人对某些API函数的功能不太满意,就产生了如何修改这些API,使之更好的服务于程序的想法,这样API Hook就自然而然的出现了。通过API Hook,改变一个系统API的原有功能。基本的方法就是通过Hook“接触”到需要修改的API函数入口点,改变它的地址指向新的自定义的函数。API Hook并不属于MSDN上介绍的13类Hook中的任何一种。所以说,API Hook并不是什么特别不同的Hook,它也需要通过基本的Hook提高自己的权限,跨越不同进程间访问的限制,达到修改API函数地址的目的。1.6 CAsyncSocket类的简单介绍CAsyncSocket类是MFC对WINSOCK API的较底层封装,通过类名就知道这是一个异步非阻塞SOCKET类。CAsyncSocket:Create()有一个参数指明了使用者想要处理哪些Socket事件,使用者关心的事件被指定以后,这个Socket默认就被用作了异步方式。CAsyncSocket的Create()函数,除了创建了一个SOCKET以外,还创建了个CSocketWnd窗口对象,并使用WSAAsyncSelect()将这个SOCKET与该窗口对象关联,以让该窗口对象处理来自Socket的事件(消息),然而CSocketWnd收到Socket事件之后,只是简单地回调CAsyncSocket:OnReceive()等虚函数。所以CAsyncSocket的派生类,只需要在这些虚函数里添加发送和接收的代码。客户端在使用CAsyncSocket:Connect()时,往往返回一个WSAEWOULDBLOCK的错误(其它的某些函数调用也如此,如:Send(),Receive()等),实际上这不应该算作一个错误,它是Socket在提醒用户,由于使用了非阻塞Socket方式,所以(连接)操作需要时间,不能瞬间建立。因此可以在程序中等待,等它连接成功为止,于是许多程序员就在调用Connect()之后,Sleep(0),然后不停地用WSAGetLastError()或者CAsyncSocket:GetLastError()查看Socket返回的错误,直到返回成功为止。这是一种错误的做法,不能达到预期目的。事实上,可以在Connect()调用之后等待CAsyncSocket:OnConnect()事件被触发,CAsyncSocket:OnConnect()是要表明Socket要么连接成功了,要么连接彻底失败了。在客户端调用Connect()连接服务端,服务端Accept()的做法就是在监听的Socket收到OnAccept()时,用一个新的CAsyncSocket对象去建立连接,例如: void CMySocket:OnAccept(int ErrCode) CMySocket* pSocket = new CMySocket; Accept( *pSocket ); 于是,上面的pSocket和客户端建立了连接,以后的通信就是这个pSocket对象去和客户端进行,而监听的Socket仍然继续在监听,一旦又有一个客户端要连接服务端,则上面的OnAccept()又会被调用一次。当然pSocket是和客户端通信的服务端,它不会触发OnAccept()事件,因为它不是监听Socket。CAsyncSocket类为我们使用Socket提供了极大方便。建立Socket的WSAStartup过程和bind过程被简化成为Create过程,IP地址类型转换、主机名和IP地址转换的过程中许多复杂的变量类型都被简化成字符串和整数操作,特别是CAsyncSocket类的异步特点,完全可以替代繁琐的线程操作。MFC提供了大量的类库,灵活使用这些类库,便会大大提高编程的效率。2 远程通信与控制系统分析2.1 系统基本情况描述电脑中的远程控制技术,始于DOS时代,只不过当时由于技术上没有什么大的变化,网络不发达,市场没有更高的要求,所以远程控制技术没有引起更多人的注意。但是,随着网络的高度发展,电脑的管理及技术支持的需要,远程操作及控制技术越来越引起人们的关注。传统的远程控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、 TCP/IP等协议来实现远程控制,不过,随着网络技术的发展,目前很多远程控制软件提供通过Web页面以Java技术来控制远程电脑,这样可以实现不同操作系统下的远程控制随着计算机技术的不断发展,人们要处理的任务也越来越多,工作地点也有可能是多个,在计算机使用的过程中就会遇到这样那样的问题,从而使得工作变得更加繁重。如果将计算机系统进行还原或重装,一些重要资料有可能将会丢失。寻求一种方便、高效的方法对出现故障的系统进行修复已经成为人们的迫切需要。本课题设计的使用,能帮助技术人员方便、高效的修复远程系统软件,提高人们的工作效率,降低系统维护的成本。远程控制和木马有很大的相似之处,譬如说现在的灰鸽子远程控制软件企业版,它具有两种远程控制形式:服务端自动上线连接型和客户端主动连接控制型,同时拥有两者的所有功能。它可以被当作木马来作为入侵远程电脑的工具,并且监控远程摄像头的功能更使对方失去个人私隐。但如果客户端为主动方式连接服务端时,服务端可以接受多个客户连接,所以视频、语

    注意事项

    本文(网络远程通信和控制程序设计毕业设计论文.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开