版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Southwestuniversityofscienceandtechnology本科毕业设计〔论文〕学院名称专业名称学生姓名学号指导教师二〇一一年六月计算机远程控制程序设计——计算机信息获取、控制技术研究及驻留程序设计摘要:随着计算机网络技术的不断开展,网络平安问题变得越来越受人们关注。网络平安包括攻击和防范两大范畴。以往我们大多数以防范为主,如加密、防火墙等。但网络攻击技术与网络防范技术是密不可分的,了解网络攻击的方法和技术对于维护网络平安有着重要的意义。计算机远程控制程序能够使操作者通过基于Internet网络对远程主机进行控制,从而实现对网络远程计算机得信息获取、控制、记录等功能。随着Internet的广泛应用,远程控制系统能够实现很多的功能,其中军事上的应用尤为重要。本文以Windows系统为根底,使用MicrosoftVisual为主要开发工具,使用WindowsAPI编程,开发远程控制程序,主要的任务是关于驻留端程序的设计,实现了对远程计算机的根本控制,信息获取。关键词:计算机信息获取;远程控制;计算机木马ComputerRemoteControlProgramming–ComputerAccessToInformation,Control,ResearchAndResidentProgrammingAbstract:.Withthecontinuousdevelopmentofcomputernetworktechnology,networksecurityissuesbecomemoreandmoreattention.Networksecurity,includingattacksandpreventthetwomajorareas.Thepast,mostofustopreventthemain,suchasencryptionandfirewalls.However,technologyandnetworkattacksagainsttechnologyareinextricablylinked,understandingofnetworkattackmethodsandtechniquesformaintainingnetworksecurityisofimportantsignificance.ComputerremotecontrolprogramthatallowstheoperatortoInternet-basednetworktocontroltheremotehost,inordertoachievearemotecomputeronthenetworkhaveaccesstoinformation,control,recordingandotherfunctions.WiththeextensiveapplicationoftheInternet,Remotecontrolsystemcanachievealotoffeatures,militaryapplicationswhichisparticularlyimportant.Inthispaper,Windows-basedsystem,usingMicrosoftVisualC++6.0asthemaindevelopmenttool,usingtheWindowsAPI,Themaintaskistodesigntheprogramontheresidentsidedevelopmentofremotecontrolprocedures,thebasiccontroloftheremotecomputer,accesstoinformation.Keywords:Computerinformationaccess,RemoteControl,ComputerTrojan目录第1章前言51.1概述51.2远程控制的根本原理61.2.1远程控制软件的根本模式71.2.2远程控制常用软件71.3论文选题及研究方案81.4主要工作量91.5研究内容101.5.1主要研究内容101.5.2主要技术要求10第2章远程控制程序的设计思路112.1关机、重启子程序112.2读取计算机信息子程序122.3增加帐户子程序132.4截图子程序132.5键盘记录子程序152.6主程序调用152.7本章小结16第3章远程控制程序的设计173.1子程序设计173.1.1计算机关机、重启程序设计173.1.2读取计算机信息程序设计173.1.3增加账户程序设计203.1.4截图程序设计243.1.5键盘记录程序设计263.2主程序设计27结论29致谢30参考文献31第1章前言1.1概述随着计算机网络的迅速普及,人类社会已经越来越离不开网络,网络使人类社会淡化了国家的限制。各国社会的经济、政治、文化等各个方面都开始倚重于网络方便迅速的信息传递方式。网络有着巨大的资源与强大的计算能力,这些也属于一种能量,其威力无法估量。网络当初建立时是基于各个节点相互信任的前提,但是事实上,使用网络节点的人相互之间并不是可以相互信任的。人类社会中存在窥探者、破坏者、盗窃者,网络上也有,而且在网络上做这些事情要更容易。网络蕴涵着强大的力量,这些力量又被不同的人或组织控制,于是有了力量冲突,这种力量的冲突是人类根本社会冲突在网络上的延伸,具有相同的性质。我们可以称这种冲突为网络战争,因为它确实和战争有很多共同点。信息社会中,信息己成为人类珍贵的资源。近年来Internet正以惊人的速度在全球开展,Internet技术己经广泛渗透到各个领域。信息是战略资源,信息是决策之源,是控制战场的灵魂,信息决定火力和机动力。信息可以极大扩充军队智力和神经〔指挥〕系统的协调性,军事信息化是一次全面深层次的革命。近年来,一些军事强国为了在信息化战场上夺取“制网权”优势,大胜采用网络对抗技术,实施各种攻防手段。海湾战争中,美军首次把网络攻击手段应用于实战。战前,美军就在伊拉克进口的一批计算机散件中预置了带病毒芯片。战争开始不久。伊拉克移个防空指挥网络即遭受病毒感染,组织指挥陷入混乱。几乎丧失了防空作战能力。俄军在强化网络战中十分重视“先机制敌”和实施主动性攻击。据悉,目前俄专家正加紧研制“远即离无线注人病毒武器”,对战略指挥控制系统产生直接威胁。这都是应用对抗技术的表达,但日前的网络攻防并没有充分利用好。因而我们势必深人研究网络战中的对抗技术,使其分类系统化、明朗化才能讲求实用。因此我国要从战略高度重视信息战的问题,必须认识到未来战争将主要是信息战。信息战将以覆盖全球的计算机网络为主战场,以攻击对方的信息系统为主要手段,运用高精尖的计算机技术,不仅破坏军事指挥和武器控制系统,而且会使其金融、交通、商业、医疗、电力等涉及国民经济命脉的诸多系统遭到破坏,从而不费一枪一炮到达攻城夺地的目的。网络战必将成为未来信息战场新的作战样式。首先,网络技术的广泛应用,使得网络成为新的争夺空间。在信息时代里,网络正在成为联结个人和社会,现在和未来的纽带,各种各样的计算机网络都将成为一个国家的战略资源和战略命脉,一旦重要的网络陷入瘫痪,整个国家平安就面临着崩溃的危险,使“制网络权”的争夺与对抗不可防止。同时,随着网络技术在军事领域的快速开展,军队对计算机网络的依赖越来越大,网络与作战的联系也愈来愈紧密,网络成为新的战场空间。其次,网络的特殊战略作用,促使网络对抗与争夺向网络战方向开展。和常规作战中选择打击对象一样,网络攻击也是把对敌方的战略目标作为首要进攻对象。能否有效地摧毁敌重要网络系统,以便迅速达成一定的战略目的,就成为敌对双方进行全面网络争夺和对抗的焦点,这种对抗与争夺必然促使网络战成为新的作战样式登上战争舞台。木马技术就是一种军民两用的网络攻击技术,由于木马本身的技术优势因而得到了广泛的应用,利用木马技术渗透到敌方系统内部,建立一个稳固的内部攻击点,为以后的攻击提供一个畅通无阻的平安通道,再由里及外,内外结合,往往可以收到更好的攻击效果。综上所述,网络战引起很多国家的普遍重视,网络攻击技术也相应的得到了长足的开展,目前,存在多种网络攻击技术,木马技术就是其中之一,研究开发先进的木马攻击技术使得在将来的网络战中抢占先机,立于不败之地具有重要的意义。木马理论上基于效劳器/客户端网络模型,但是这种模型不利于控制系统的隐藏。本文构建了一个强大的基于P2P网络模型的木马系统,它在Internet上通过控制系统和受控计算机建立一个完整的P2P网络,通过这个网络可以获取网络的计算资源,并且可以对这些资源进行隐蔽控制,从而可以有效完成各种特殊的任务。而木马最近本的功能就是计算机远程控制,正式我们需要研究的方向。1.2远程控制的根本原理远程控制是指在计算机网络上由一台主机(主控端)远距离控制另一台主机(驻留端)的技术。当操作者使用主控端主机控制被控端主机时,就如同坐在被控端主机的屏幕前操作一样,可以启动被控端主机中的应用程序,可以使用文件资料,甚至可以利用被控端主机的各种外部设备。但是值得注意的是:主控端所做的一切控制操作如翻开应用程序、上网浏览以及下载等都是在被控主机的计算下完成的;主控端主机只是将键盘和鼠标的指令传送给远程被控主机。网络中的远程控制技术早于DOS时代就已提出,只不过当时由于网络应用范围不广,网络用户在这方面没有较大的要求,因此这项技术没有得到较大的开展。但是,随着计算机网络的广泛应用以及用户在应用中的需要,远程操作及控制技术越来越引起人们的关注。远程控制一般支持的网络方式:LAN、WAN、拨号方式、互联网方式。1.2.1远程控制软件的根本模式远程控制一般支持局域网、广域网、无线网、拨号方式、宽带接入等方式,还可以支持直接连接,即通过串口、并口、红外端口来对远程主机进行控制。传统的远程控制软件一般使用TCP/IP、NET—BEUI、NETBIOS、IPX/SPX等协议来实现远程控制,也可以通过B/S模式或浏览器/中间件/效劳器结构,即Web页面以Java技术来控制远程电脑,从而到达远程控制不同操作系统的目的。远程控制实现机制:客户端将键盘和鼠标的操作信息实时传送给效劳器端,由效劳器端软件仿真为本地的键盘和鼠标操作,同时实时捕捉效劳器端电脑的屏幕画面,通过网络回传到客户端。远程控制软件通常由两局部组成:一局部是客户端(控制端)程序Client,另一局部是驻留端(受控端)程序Server,建成C/S模式。使用前需要在控制端运行客户端程序,在受控端运行效劳器程序。然后由控制端向受控端发出信号,建立一个特殊的远程效劳。再通过这个效劳,使用各种远程控制功能发送远程控制命令,控制受控端电脑中的各种应用程序运行,这种远程控制方式称为基于远程效劳的远程控制。1.2.2远程控制常用软件各类远程控制软件种类繁多,可以运行在不同的工作平台,在屏幕截取,鼠标键盘控制上各有特色.常用的控制软件有如下几种:PCAnywhere:是点对点通信软件,可以远程监控、管理、调试,有卓越的自我保护功能和加密工具,功能强大,是远程控制软件的首选,适合于技术支持和企业内部部署。RemotelyAnywhere:基于Web客户端连接,操作简单,拥有用户所需要的全部网络管理工具,适于效劳器管理。冰河:可支持局域网/Modem上网/宽带上网等多种方式,功能强大,容易被黑客利用,被许多杀毒软件列为查杀对象。QuiekIP:客户机可同时控制多个效劳器,反之亦然。适用于多种场合。VNC:免费跨平台的开放源码软件。在Windows环境下,远程控制有以下2种实现方法:1)WindowsXP远程控制的实现“远程协助”和“远程桌面”是WindowsXP系统提供的远程控制的方法。使用“远程协助”进行远程控制必须由主控双方协同才能够进行,通过MSNMessenger向联系人发出协助要求,在获得对方同意后,即可进行远程协助。2)Windows2000Server远程控制的实现在效劳器上安装配置好与客户端连接所需的协议,如IPX、TCP/IP、NETBEUI等,在安装“路由和远程访问”效劳后,即可以配置运行Windows2000Server的远程访问效劳器。Windows2000Server提供了拨号网络和VPN两种方式的远程访问。1.3论文选题及研究方案本次论文的主要要求就是计算机远程控制程序设计——驻留端程序设计,即C/S中的Server端程序设计,要求实现一定的功能。如:计算机的关机、重启,获取计算机信息,增加帐户,截图、键盘记录等功能。本远程控制程序是采用模块化设计的方法,将整个程序划分为主控制程序、重启控制子程序、关机控制子程序、计算机信息获取子程序、增加帐户子程序、截图子程序、键盘记录子程序等模块,通过这样的划分,我们可以清晰的构建出程序的流程图,可以方便程序的分块编写。本次设计主要是编写一个程序,其主要功能是通过接收客户端的命令,实现控制,只需要编写关于驻留端的程序,实现控制即可,不用设计关于控制端的程序设计以及网络的对话,所以只需要构建出关于程序的控制的局部。所以本次设计首要任务就是使用子程序实现要求的控制功能,如关机,重启等,分别用子程序实现;其次才是编写一个主程序实现调用,构成一个完整的远程控制程序;由于不需要网络通讯,就不需要使用远程命令代码控制,仅仅使用一个命令行在本机上实现控制功能即可。本次设计是使用进行设计,在中有专门基于Windows控制的WindowsAPI程序,可以简单的实现功能,所以在本次设计中主要使用的就是WindowsAPI编程。1.4主要工作量 本次设计根本参照上述的研究方案进行,其具体工作量的统计如表1-1所示。学习编写内容工作量〔h〕目的查阅相关文献、资料240熟悉VC编程学习关于WindowsAPI编程80学习使用WindowsAPI实现功能关机、重启程序研究40编程实现计算机关机、重启获取计算机信息程序研究40编程实现计算机信息获取增加帐户程序研究40编程实现增加帐户截图程序研究80编程实现程序截图键盘记录程序研究80编程实现键盘记录程序调用研究80主程序调用子程序实现功能表1-1主要工作量统计表1.5研究内容1.5.1主要研究内容基于设计的要求,我选择了使用WindowsXP下的作为开发工具,主要使用其中的WindowsAPI函数来实现上述功能。1〕开发关于计算机关机的子程序2〕开发关于计算机重启的子程序3〕开发关于获取计算机信息的子程序4〕开发关于增加帐户的子程序5〕开发关于截图的子程序6〕开发关于键盘记录的子程序7〕开发程序调用的主程序1.5.2主要技术要求(1)实现程序预期的主要功能;(2)实现调用过程;(3)可以通过简单修改主程可以实现从客户端调用主程序命令实现远程控制第2章远程控制程序的设计思路本次设计采用分步设计的方法,首先单独实现子程序功能,通过对子程序修改设计,再总体编写主程序,实现调用。本章重点介绍设计各个子程序的主要思路。2.1关机、重启子程序在本次程序设计中,首先查阅了基于WindowsAPI的函数接口编程实例,学习了关于系统system函数集,使用此函数可以实现计算机的关机与重启,也可以实现文件的删除等功能,主要使用Windows命令行命令来控制。分别写入两个子程序,方便最后组合的主程序调用。子程序流程图如图2-1。图2-1关机、重启子程序流程图2.2读取计算机信息子程序在WindowsAPI中,可以获取与管理Windows系统信息包括系统根本信息、时间信息、注册表。其中系统信息的获取主要包括系统目录、Windows安装目录、用户名、计算机名、域名等。在这个子程序设计过程中,主要使用的就是WindowsAPI函数来获取其中我们需要的信息,如安装目录、用户名、计算机名等。获取了这些信息,才有助于我们的远程控制,以及以后的后续操作。读取了计算机根本信息后输出到D:\get.txt。在调试功能实现以后,讲程序改编为子程序,方便以后主程序的调用。流程图如图2-2.函数如下:获取系统版本:GetVersionEx;获取计算机硬件信息:GetSystemInfo;获取安装目录:GetSystemDirectory;获取用户名:GetUserName;获取计算机名:GetComputerName;图2-2读取计算机信息子程序流程图2.3增加帐户子程序在上一个子程序设计中,已经读取了计算机名以及用户名,为了方便以后的控制,在驻留端计算机上增加一个属于自己的专用超级用户是必须的,我们假定增加的超级帐户名:admin;密码:admin,在WindowsAPI中依然有关于计算机帐户添加的函数,调用增加即可。程序流程图如图2-3.函数如下:创立帐户:NetUserAdd;将用户添加到用户组:NetGroupAddUser;图2-3增加帐户子程序流程图2.4截图子程序截取屏幕的流程:截取屏幕输出一般需要经过以下步骤。使用字符串“DISPLAY”为参数,调用CreateDC,得到类型为“显示”的DC。调用CreateCompatibleDC创立一个内存DC。得到需要截取的屏幕区域,比方调用GetDeviceCaps获取屏幕大小,GetWindowRect获取窗口区域等。调用CreateCompatibleBitmap创立BITMAP。调用SelectObject,将创立的BITMAP选择入内存DC,并将返回值使用另外一个BITMAP对象句柄来保存,SelectObject的返回值表示了DC中呗替换的图形对象。 调用BitBlt函数将源DC〔显示类型的DC〕指定位块 〔bit-block〕的颜色数据转移到目的DC〔内存〕中。将之前保存的旧的BITMAP对象再调用SelectObject选择回内存DC中,这样从显示的内存DC中BitBlt到内存DC中的位块颜色数据就被替换掉,SelectObject的返回值即是从屏幕中得到的位图对象〔HBITMAP类型〕。由于在我们程序设计的要求中,不需要调整截图的大小,只需要全屏幕截图之后保存就可以了,所以比拟简单,不用调整获取区域。在截图完成后由内存输出到D:\jietu.bmp。程序流程图如图2-4。如图2-4截图子程序流程图2.5键盘记录子程序在WindowsAPI中,GetKey函数是记录键盘输入的信息,在键盘记录子程序的,使用GetKey函数,记录输出的信息,之后转换为我们平常看到的字符输出,输出到D:\,中间主要的程序就是替换输入的信息和输出的信息转换,以及Shift和CapsLock按键之后的字符转换。程序流程图如图2-5。图2-5键盘记录子程序流程图2.6主程序调用主程序中主要的功能就是在检测到输入的命令之后,分别调用子程序实现功能,在输入的过程中,根据命令调用子程序完成后返回进入待机状态,等待下一步命令,主程序中的命令输入可以与网络控制命令结合,直接实现远程控制,在本次设计中,只需要做出控制端程序,为了模拟控制,所以直接本地控制,如需要加上远程控制只需要与远程客户端程序添加调用程序即可。流程图如图2-6图2-6主程序流程图2.7本章小结本章主要是讨论本次设计中的有关功能实现流程,通过对程序子程序的规划、设计,实现了对远程控制程序根本功能。对各个子程序的功能实现的流程进行了分析,最后对使用主程序调用子程序实现功能。如果需要使用网络命令调用函数实现功能,只需要使用客户端程序调用代码修改即可。第3章远程控制程序的设计3.1子程序设计本次设计的主要功能是使用WindowsAPI的函数实现的,其中主程序的调用在实际的设计中是可以与控制端程序联合设计,本次设计中只是为了方便功能的实现参加显示调用,子程序实现的功能〔如截图的保存,键盘记录等〕主要是保存在D盘目录下,方便以后的使用。3.1.1计算机关机、重启程序设计使用VC中的system函数主要功能就是发出一个DOS命令,其中的函数变量即为DOC中的命令,system函数已经被收录在标准C库中,由于C++全面兼容了标准C库,所以在这儿就可以直接调用system函数实现可以用DOC命令行程序实现关于计算机的根本操作,如:关机、重启等。函数如下:system("shutdown-s-t0");//shutdown–s为关机命令,-t为时间设置,默认为30秒,在此我们设置为0秒,即立刻关机system("shutdown–r-t0");//shutdown–r为重启命令,-t为时间设置,默认为30秒,在此我们设置为0秒,即立刻重启上述两条功能实现调用了同一个函数,很简单,在此不做过多讨论。3.1.2读取计算机信息程序设计以下的子程序设计根本上都是使用的WindowsAPI函数实现的,首先是计算机根本信息的获取,计算机版本、用户名、计算机名的获取,在WindowsAPI中有特定的的函数读取这些信息。1〕计算机版本的获取:可以使用GetVersionEx函数获取系统版本信息,函数原型如下:BOOLGetVersionEx( LPOSVERSIONINFOlpVersionInfo);
参数lpVersionInfo:输入、输出参数,此参数为OSVERSIONINFO或者OSVERSIONINFOEX结构的指针,用于存储获取的系统版本信息。这两个结构的第一个成员都是dwOSVersionInfoSize,如果使用OSVERSIONINFO结构那么将此成员设置为sizeof(OSVERSIONINFO)如果使用OSVERSIONINFOEX结构,那么设置此成员为sizeof(OSVERSIONINFOEX)。
返回值BOOL类型,表示是否成功。使用GetLastError函数获取错误代码。2〕用户名、计算机名:获取当前登录用户使用API函数GetUserName,获取计算机名使用API函数GetComputerName,获取特定格式的计算机名使用API函数GetComputerNameEx,设置计算机名使用API函数SetComputerName和SetComputerNameEX。GetUserName获取当前登录的用户名,函数定义如下:BOOLGetUserName( LPTSTRlpBuffer,LPDWORDnSize);
参数lpBuffer:输出参数,指向保存登录用户名的内存缓冲区。其大小最好不小于(UNLEN+1),UNLEN定义在Lmcons.h中。nSize:输入、输出参数,指向表示lpBuffer的大小〔字符数〕的DWORD型变量。如果小于所需要的大小,那么lpnSize返回需要的大小,函数返回失败。GetComputerName获取当前计算机名,函数的定义如下:BOOLGetComputerName(LPTSTRlpBuffer,LPDWORDlpnSize);
参数lpBuffer:输出参数,指向保存计算机名的内存缓冲区,其大小最好不小于(MAXCOMPUTERNAME一LENGTH+1)。lpnSize:输入、输出参数,指向表示lpBuffer的大小〔字符数〕的DWORD型变量。如果小于所需要的大小,那么lpnSize返回需要的大小,函数返回失败。
返回值BOOL型,表示是否成功。使用GetLastError获取错误信息。局部程序代码如下:voidShowInfo(){…//获取计算机版本信息if(over.dwMajorVersion==5){if(over.dwMajorVersion==0) lstrcat(szVersionInfo,”Windows2000”); elseif(over.dwMajorVersion==1) lstrcat(szVersionInfo,”WindowsXP”); elseif(over.dwMajorVersion==2) lstrcat(szVersionInfo,”WindowsServer2003”);}elseif(over.dwMajorVersion==6) lstrcat(szVersionInfo,”WindowsVista”);elseif lstrcat(szVersionInfo,”WindowsNT4.0或者其他”);//获取计算机名以及用户名DWORDdwComputerNameLen=MAX_COMPUTERNAME_LENGTH+1;DWORDdwUserNameLen=UNLEN+1;TCHARszComputerName[MAX_COMPUTERNAME_LENGTH+1];TCHARszUserName[UNLEN+1];COMPUTER_NAME_FORMATconf;GetComputerName(szComputerName,&dwComputerNameLen);GetUserName(szUserName,&dwUserNameLen);}图3-1获取计算机信息结果截图3.1.3增加账户程序设计程序的设计要求中是添加一个用户,本程序定义的是添加用户名为admin,密码为admin的超级账户。1〕增加用户:在WindowsAPI中,创立新用户的函数是NetUserAddAPI,函数原型如下:NET_API_STATUSNetUserAdd( LMSTRservername, DWORDlevel, LPBYTEbuf, LPDWORDparm_err);servername参数是需要添加用户的主机名,如果是本机那么设置为NULL。level参数决定了buf参数的结构,设置为1、2、3、4分别表示buf参数所指向的内容为USER_INFO_1、USER_INF0_2、USER_INFO_3、USER_INF0_4。这4个结构都包括了用户的相关信息,只是所包括的信息的丰富程度不同。以USER_INFO_1为例,包括用户的一些根本信息,用户名、密码、密码期限、优先级、用户HOME路径、描述等。typedefstruct_USER_INFO_1{ LPWSTRusril_name; LPWSTRusril_password; DWORDusril_password_age; DWORDusril_priv; LPWSTRusril_home_dir; LPWSTRusril_comment; DWORDusril_flags; LPWSTRusril_script_path;}USER_INFO_1,*PUSER_INFO_1,*LPUSER_INFO_1;2〕将用户增加到administrator组中NetGroupAddUser的功能分别是将用户添加到用户组,函数原型如下:NET_API_STATUSNetGroupAddUser( LPCWSTRservername, LPCWSTRGroupName,LPCWSTRusername);level参数也是指定buf参数的类型。buf参数类型包括GROUP_INFO_1、GROUPINF02、GROUP_INF0_3、GROUPINF0_4。局部程序代码如下:IntAddUser(LPWSTRNULL,LPWSTRadmin,LPWSTRadmin)//参数为:主机名〔本机设置为NULL〕;用户名;密码{ USER_INFO_1ui; DWORDdwLevel=1; DWORDdwError=0; NET_API_STATUSnStatus; //填充USER_INFO_1 ui.usri1_name=admin;//用户名 ui.usri1_password=admin;//密码 ui.usri1_priv=USER_PRIV_USER;//级别 ui.usri1_home_dir=NULL; ui.usri1_comment=NULL; ui.usri1_flags=UF_SCRIPT; ui.usri1_script_path=MULL; //调用NetUserAdd,增加用户 nStatus=NetUserAdd(NULL, dwLevel, (LPBYTE)&ui, &dwError); }图3-2增加帐户前管理界面截图图3-3增加帐户后管理界面截图3.1.4截图程序设计在Windows环境中,设备上下文(DC)及基于设备上下文的绘图操作是用户界面的核心。在WindowsAPI的帮助下程序可以很简单地得到设备上下文的实例,并通过这个设备上下文实例来获取屏幕图像。//常量定义#definePALVERSION0x300#defineCAP_SHOW_MODE_STRTCH1#defineCAP_SHOW_MODE_NOSTRTCH0//全局变量HBITMAPghBitmap=NULL;RECTrectShow;//修改此处可以更改截取不同窗口,null为全屏LPSTRszCaptureWindowName=NULL;…DWORDWINAPIWinMain(HINSTANCEhinstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdSshow)ghBitmap=ScreenCapture(“D:\\”,NULL);HBITMAPScreenCapture(LPSTRfilename,//截图保存路径 LPRECTlpRect)//截图区域u,为NULL时截全屏{…HDChdc=CreateDC(“DISPLAY”,NULL,NULL,NULL);intscreenw=GetDeviceCaps(hdc,HORZRES);intscreenh=GetDeviceCaps(hdc,VERIRES;HDChmdc=CreateCompatibleDC(hdc);HBITMAPhbm=CreateCompatibleBitmap(hdc,screenw-screenh);SelectObject(hmdc,hbm);BitBlt(hmdc,0,0,screenw,screenh,hdc,0,0,SRCCOPy);…}图3-4截图程序捕获桌面以及存放的位置3.1.5键盘记录程序设计首先要分析主控端如何模拟获取操作者的操作。本文采用如下的数据结构来记录一次操作者的操作,这些数据结构定义在系统的<winuser.h>头文件中。typedefstructtagINPUT{DWORDtype;union{KEYDBINPUTki;HARDWAREINPUThi;);)INPUT,*PINPUT;在上述的数据结构中,KEYDBINUT为键盘输入的数据。stringFilename="D:\\log.txt"; //最后通过此命令输出到文件,路径为D:\如果需要远程控制,输出信息到远程计算机,那么可以使用WindowsAPI中的函数SendUserlnput实现,函数结构如下:BOOLSendUserlnput(INPUT*input,UINTnumber)把操作信息传输到被控端。被控端在接收到主控端传来的输人信息后,直接调用WinAPl函数Sendlnput送给系统处理。图3-5键盘记录结果截图3.2主程序设计本次设计的主要工作都已经在子程序中完成了,最后的主程序最要的功能就是为了实现子程序的调用,分别输入不同的命令,调用不同的子程序,实现计算机的控制,可以与控制端的网络命令一同实现计算机的远程控制。只需要使用简单if判断语句就可以实现。主程序控制命令如下:11——计算机关机;12——计算机重启;21——读取计算机信息;31——增加admin账户;41——屏幕截图;51——键盘记录。图3-5主程序界面选择窗口结论通过本次课题的探索与研究,我们设计出了一个模拟的计算机远程控制驻留端程序,主要的方向就是计算机控制以及计算机记录方面,通过本地的控制可以实现功能,但是与远程计算机连接的控制方面融合不多,需要以后继续研究。 本次的程序设计主要包括了计算机关机、重启、信息读取、add账户、截图、键盘记录等子程序,在主程序中我们通调用将各个子程序连接起来,共同实现计算机的控制,形成了一个完成的程序。通过该程序,我们可以在界面上输入不同的命令是计算机实现不同的功能,以及得到计算机的信息等功能。本次设计的远程控制程序——驻留端主要能实现如下功能:通过键盘输入命令可以实现计算机的关机;通过键盘输入命令可以实现计算机的关机;;通过键盘输入命令可以在计算机administrator组中参加admin账户;通过键盘输入命令可以实现计算机屏幕截图,结果输出到;通过键盘输入命令可以实现计算机键盘输入数据记录,结果输出到;致谢四年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。四年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。伟人、名人为我所崇拜,可是我更急迫地要把我的敬意和赞美献给一位平凡的人,我的导师——XXX老师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神气氛。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了根本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!同时也感谢学院为我提供良好的做毕业设计的环境。最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。参考文献[1]胡建伟,汤建龙,杨绍全.《网络对抗原理[M]》.西安电子科技大学出版社,2004:236-268.[2]邓丽,董渊,张瑞丰.《C++语言程序设计〔第三版〕[M]》.清华大学出版社,2004:324-358.[3],.《计算机网络自顶向下方法[M]》.机械工业出版社,2009:596-607.[4]单春,《网络攻击中的特洛伊木马及其防范手段[J]》.辽宁师范太学学报〔自然科学版〕.V01,23No,34-39,2000.[5]岳兵,霍宝锋,谢冰,赵云霞,刘伯莹.《网络入侵行为模式研究[M]》.天津大学学报,V01,36No,25-29,2003.[6]杨守君.《黑客技术与网络平安[M]》.北京:中国对外翻译出版公司,2000:68-128.[7]卢勇焕.《黑客与平安[M]》.中国青年出版社,2001:6-19.[8]张汉亭.《计算机病毒与反病毒技术[M]》.清华大学出版社,199::110-126.[9]张键.《防毒杀毒[M]》.电子工业出版社,1999:406-409.[10]蔺聪.基于木马的黑客攻击技术[J].[期刊论文].电脑知识与技术,2008〔8〕:5-10.[11]罗泽军.通信管理系统的平安性研究[J].[学位论文]硕士,2006:15-16.[12]周凯.计算机网络常见攻击技术及其防范研究[J].[期刊论文].科技信息,2008〔35〕:19-23.[13]陈庆忠.木马程序设计[J].[学位论文]学士,2010:134-176.[14]范文庆.周彬彬,安靖,精通WindowsAPI—函数,接口,编程实例[M].人民邮电出版社,2009:307-356.[15]宋彦儒,周翔.计算机远程控制系统设计[J].[学位论文],2008:1-6.[16]JeffProsise.MTCWindows程序设计[M].清华大学出版社,2001:307-349.[17]丁寒舒,敬荣,汪渊.计算机远程控制研究[J].[期刊论文],2010:68-79.附录API函数表WNetAddConnection创立同一个网络资源的永久性连接WNetAddConnection2创立同一个网络资源的连接WNetAddConnection3创立同一个网络资源的连接WNetCancelConnection结束一个网络连接WNetCancelConnection2结束一个网络连接WNetCloseEnum结束一次枚举操作WNetConnectionDialog启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog启动一个标准对话框,以便断开同网络资源的连接WNetEnumResource枚举网络资源WNetGetConnection获取本地或已连接的一个资源的网络名称WNetGetLastError获取网络错误的扩展错误信息WNetGetUniversalName获取网络中一个文件的远程名称以及/或者UNC〔统一命名标准〕名称WNetGetUser获取一个网络资源用以连接的名字WNetOpenEnum启动对网络资源进行枚举的过程BroadcastSystemMessage将一条系统消息播送给系统中所有的顶级窗口GetMessagePos取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置GetMessageTime取得消息队列中上一条消息处理完毕时的时间PostMessage将一条消息投递到指定窗口的消息队列PostThreadMessage将一条消息投递给应用程序RegisterWindowMessage获取分配给一个字串标识符的消息编号ReplyMessage答复一个消息SendMessage调用一个窗口的窗口函数,将一条消息发给那个窗口SendMessageCallback将一条消息发给窗口SendMessageTimeout向窗口发送一条消息SendNotifyMessage向窗口发送一条消息CloseHandle关闭一个内核对象。其中包括文件、文件映射、进程、线程、平安和同步对象等CompareFileTime比照两个文件的时间CopyFile复制文件CreateDirectory创立一个新目录CreateFile翻开和创立文件、管道、邮槽、通信效劳、设备以及控制台CreateFileMapping创立一个新的文件映射对象DeleteFile删除指定文件DeviceIoControl对设备执行指定的操作DosDateTimeToFileTime将DOS日期和时间值转换成一个win32FILETIME值FileTimeToDosDateTime将一个win32FILETIME值转换成DOS日期和时间值FileTimeToLocalFileTime将一个FILETIME结构转换本钱地时间FileTimeToSystemTime根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构FindClose关闭由FindFirstFile函数创立的一个搜索句柄FindFirstFile根据文件名查找文件FindNextFile根据调用FindFirstFile函数时指定的一个文件名查找下一个文件FlushFileBuffers针对指定的文件句柄,刷新内部文件缓冲区FlushViewOfFile将写入文件映射缓冲区的所有数据都刷新到磁盘GetBinaryType判断文件是否可以执行GetCompressedFileSize判断一个压缩文件在磁盘上实际占据的字节数GetCurrentDirectory在一个缓冲区中装载当前目录GetDiskFreeSpace获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量GetDiskFreeSpaceEx获取与一个磁盘的组织以及剩余空间容量有关的信息GetDriveType判断一个磁盘驱动器的类型GetExpandedName取得一个压缩文件的全名GetFileAttributes判断指定文件的属性GetFileInformationByHandle这个函数提供了获取文件信息的一种机制GetFileSize判断文件长度GetFileTime取得指定文件的时间信息GetFileType在给出文件句柄的前提下,判断文件类型GetFileVersionInfo从支持版本标记的一个模块里获取文件版本信息GetFileVersionInfoSize针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区GetFullPathName获取指定文件的完整路径名GetLogicalDrives判断系统中存在哪些逻辑驱动器字母GetLogicalDriveStrings获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径GetOverlappedResult判断一个重叠操作当前的状态GetPrivateProfileInt为初始化文件〔.ini文件〕中指定的条目获取一个整数值GetPrivateProfileSection获取指定小节〔在.ini文件中〕所有项名和值的一个列表GetPrivateProfileString为初始化文件中指定的条目取得字串GetProfileInt取得win.ini初始化文件中指定条目的一个整数值GetProfileSection获取指定小节〔在win.ini文件中〕所有项名和值的一个列表GetProfileString为win.ini初始化文件中指定的条目取得字串GetShortPathName获取指定文件的短路径名GetSystemDirectory取得Windows系统目录〔即System目录〕的完整路径名GetTempFileName这个函数包含了一个临时文件的名字,它可由应用程序使用GetTempPath获取为临时文件指定的路径GetVolumeInformation获取与一个磁盘卷有关的信息GetWindowsDirectory获取Windows目录的完整路径名hread参考lreadhwrite参考lwrite函数lclose关闭指定的文件lcreat创立一个文件llseek设置文件中进行读写的当前位置LockFile锁定文件的某一局部,使其不与其他应用程序共享LockFileEx与LockFile相似,只是它提供了更多的功能lopen以二进制模式翻开指定的文件lread将文件中的数据读入内存缓冲区lwrite将数据从内存缓冲区写入一个文件LZClose关闭由LZOpenFile或LZInit函数翻开的一个文件LZCopy复制一个文件LZInit这个函数用于初始化内部缓冲区LZOpenFile该函数能执行大量不同的文件处理,而且兼容于压缩文件LZRead将数据从文件读入内存缓冲区LZSeek设置一个文件中进行读写的当前位置MapViewOfFile将一个文件映射对象映射到当前应用程序的地址空间MoveFile移动文件OpenFile这个函数能执行大量不同的文件操作OpenFileMapping翻开一个现成的文件映射对象QueryDosDevice在WindowsNT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况ReadFile从文件中读出数据ReadFileEx与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调RegCloseKey关闭系统注册表中的一个项〔或键〕RegConnectRegistry访问远程系统的局部注册表RegCreateKey在指定的项下创立或翻开一个项RegCreateKeyEx在指定项下创立新项的更复杂的方式。在Win32环境中建议使用这个函数RegDeleteKey删除现有项下方一个指定的子项RegDeleteValue删除指定项下方的一个值RegEnumKey枚举指定项的子项。在Win32环境中应使用RegEnumKeyExRegEnumKeyEx枚举指定项下方的子项RegEnumValue枚举指定项的值RegFlushKey将对项和它的子项作出的改动实际写入磁盘RegGetKeySecurity获取与一个注册表项有关的平安信息RegLoadKey从以前用RegSaveKey函数创立的一个文件里装载注册表信息RegNotifyChangeKeyValue注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制RegOpenKey翻开一个现有的注册表项RegOpenKeyEx翻开一个现有的项。在win32下推荐使用这个函数RegQueryInfoKey获取与一个项有关的信息RegQueryValue取得指定项或子项的默认〔未命名〕值RegQueryValueEx获取一个项的设置值RegReplaceKey用一个磁盘文件保存的信息替换注册表信息;并创立一个备份,在其中包含当前注册表信息RegRestoreKey从一个磁盘文件恢复注册表信息RegSaveKey将一个项以及它的所有子项都保存到一个磁盘文件RegSetKeySecurity设置指定项的平安特性RegSetValue设置指定项或子项的默认值RegSetValueEx设置指定项的值RegUnLoadKey卸载指定的项以及它的所有子项RemoveDirectory删除指定目录SearchPath查找指定文件SetCurrentDirectory设置当前目录SetEndOfFile针对一个翻开的文件,将当前文件位置设为文件末尾SetFileAttributes设置文件属性SetFilePointer在一个文件中设置当前的读写位置SetFileTime设置文件的创立、访问及上次修改时间SetHandleCount这个函数不必在win32下使用;即使使用,也不会有任何效果SetVolumeLabel设置一个磁盘的卷标〔Label〕SystemTimeToFileTime根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构UnlockFile解除对一个文件的锁定UnlockFileEx解除对一个文件的锁定UnmapViewOfFile在当前应用程序的内存地址空间解除对一个文件映射对象的映射VerFindFile用这个函数决定一个文件应安装到哪里VerInstallFile用这个函数安装一个文件VerLanguageName这个函数能根据16位语言代码获取一种语言的名称VerQueryValue这个函数用于从版本资源中获取信息WriteFile将数据写入一个文件WriteFileEx与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调WritePrivateProfileSection为一个初始化文件〔.ini〕中指定的小节设置所有项名和值WritePrivateProfileString在初始化文件指定小节内设置一个字串WriteProfileSection为Win.ini初始化文件中一个指定的小节设置所有项名和值BitBlt将一幅位图从一个设备场景复制到另一个CopyIcon制作指定图标或鼠标指针的一个副本。这个副本附属于发出调用的应用程序CopyImage复制位图、图标或指针,同时在复制过程中进行一些转换工作CreateBitmap按照规定的格式创立一幅与设备有关位图CreateBitmapIndirect创立一幅与设备有关位图CreateCompatibleBitmap创立一幅与设备有关位图,它与指定的设备场景兼容CreateCursor创立一个鼠标指针CreateDIBitmap根据一幅与设备无关的位图创立一幅与设备有关的位图CreateDIBSection创立一个DIBSectionCreateIcon创立一个图标CreateIconIndirect创立一个图标DestroyCursor去除指定的鼠标指针,并释放它占用的所有系统资源DestroyIcon去除图标DrawIcon在指定的位置画一个图标DrawIconEx描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能ExtractAssociatedIcon判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之ExtractIcon判断一个可执行文件或DLL中是否有图标存在,并将其提取出来GetBitmapBits将来自位图的二进制位复制到一个缓冲区GetBitmapDimensionEx取得一幅位图的宽度和高度GetDIBColorTable从选入设备场景的DIBSection中取得颜色表信息GetDIBits将来自一幅位图的二进制位复制到一幅与设备无关的位图里GetIconInfo取得与图标有关的信息GetStretchBltMode判断StretchBlt和StretchDIBits函数采用的伸缩模式LoadBitmap从指定的模块或应用程序实例中载入一幅位图LoadCursor从指定的模块或应用程序实例中载入一个鼠标指针LoadCursorFromFile在一个指针文件或一个动画指针文件的根底上创立一个指针LoadIcon从指定的模块或应用程序实例中载入一个图标LoadImage载入一个位图、图标或指针MaskBlt执行复杂的图象传输,同时进行掩模〔MASK〕处理PatBlt在当前选定的刷子的根底上,用一个图案填充指定的设备场景PlgBlt复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理SetBitmapBits将来自缓冲区的二进制位复制到一幅位图SetBitmapDimensionEx设置一幅位图的宽度。以一毫米的十分之一为单位SetDIBColorTable设置选入设备场景的一个DIBSection的颜色表信息SetDIBits将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里SetDIBitsToDevice将一幅与设备无关位图的全部或局部数据直接复制到一个设备SetStretchBltMode指定StretchBlt和StretchDIBits函数的伸缩模式StretchBlt将一幅位图从一个设备场景复制到另一个StretchDIBits将一幅与设备无关位图的全部或局部数据直接复制到指定的设备场景8.API之绘图函数AbortPath抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创立工作AngleArc用一个连接弧画一条线Arc画一个圆弧BeginPath启动一个路径分支CancelDC取消另一个线程里的长时间绘图操作Chord画一个弦CloseEnhMetaFile关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄CloseFigure描绘到一个路径时,关闭当前翻开的图形CloseMetaFile关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄CopyEnhMetaFile制作指定增强型图元文件的一个副本〔拷贝〕CopyMetaFile制作指定〔标准〕图元文件的一个副本CreateBrushIndirect在一个LOGBRUSH数据结构的根底上创立一个刷子CreateDIBPatternBrush用一幅与设备无关的位图创立一个刷子,以便指定刷子样式〔图案〕CreateEnhMetaFile创立一个增强型的图元文件设备场景CreateHatchBrush创立带有阴影图案的一个刷子CreateMetaFile创立一个图元文件设备场景CreatePatternBrush用指定了刷子图案的一幅位图创立一个刷子CreatePen用指定的样式、宽度和颜色创立一个画笔CreatePenIndirect根据指定的LOGPEN结构创立一个画笔CreateSolidBrush用纯色创立一个刷子DeleteEnhMetaFile删除指定的增强型图元文件DeleteMetaFile删除指定的图元文件DeleteObject删除GDI对象,对象使用的所有系统资源都会被释放DrawEdge用指定的样式描绘一个矩形的边框DrawEscape换码〔Escape〕函数将数据直接发至显示设备驱动程序DrawFocusRect画一个焦点矩形DrawFrameControl描绘一个标准控件DrawState为一幅图象或绘图操作应用各式各样的效果Ellipse描绘一个椭圆,由指定的矩形围绕EndPath停止定义一个路径EnumEnhMetaFile针对一个增强型图元文件,列举其中单独的图元文件记录EnumMetaFile为一个标准的windows图元文件枚举单独的图元文件记录EnumObjects枚举可随同指定设备场景使用的画笔和刷子ExtCreatePen创立一个扩展画笔〔装饰或几何〕ExtFloodFill在指定的设备场景里,用当前选择的刷子填充一个区域FillPath关闭路径中任何翻开的图形,并用当前刷子填充FillRect用指定的刷子填充一个矩形FlattenPath将一个路径中的所有曲线都转换成线段FloodFill用当前选定的刷子在指定的设备场景中填充一个区域FrameRect用指定的刷子围绕一个矩形画一个边框GdiComment为指定的增强型图元文件设备场景添加一条注释信息GdiFlush执行任何未决的绘图操作GdiGetBatchLimit判断有多少个GDI绘图命令位于队列中GdiSetBatchLimit指定有多少个GDI绘图命令能够进入队列GetArcDirection画圆弧的时候,判断当前采用的绘图方向GetBkColor取得指定设备场景当前的背景颜色GetBkMode针对指定的设备场景,取得当前的背景填充模式GetBrushOrgEx判断指定设备场景中当前选定刷子起点GetCurrentObject获得指定类型的当前选定对象GetCurrentPositionEx在指定的设备场景中取得当前的画笔位置GetEnhMetaFile取得磁盘文件中包含的一个增强型图元文件的图元文件句柄GetEnhMetaFileBits将指定的增强型图元文件复制到一个内存缓冲区里GetEnhMetaFileDescription返回对一个增强型图元文件的说明GetEnhMetaFileHeader取得增强型图元文件的图元文件头GetEnhMetaFilePaletteEntries取得增强型图元文件的全部或局部调色板GetMetaFile取得包含在一个磁盘文件中的图元文件的图元文件句柄GetMetaFileBitsEx将指定的图元文件复制到一个内存缓冲区GetMiterLimit取得设备场景的斜率限制〔Miter〕设置GetNearestColor根据设备的显示能力,取得与指定颜色最接近的一种纯色GetObjectAPI取得对指定对象进行说明的一个结构GetObjectType判断由指定句柄引用的GDI对象的类型GetPath取得对当前路径进行定义的一系列数据GetPixel在指定的设备场景中取得一个像素的RGB值GetPolyFillMode针对指定的设备场景,获得多边形填充模式GetROP2针对指定的设备场景,取得当前的绘图模式GetStockObject取得一个固有对象〔Stock〕GetSysColorBrush为任何一种标准系统颜色取得一个刷子GetWinMetaFileBits通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件InvertRect通过反转每个像素的值,从而反转一个设备场景中指定的矩形LineDDA枚举指定线段中的所有点LineTo用当前画笔画一条线,从当前位置连到一个指定的点MoveToEx为指定的设备场景指定一个新的当前画笔位置PaintDesk在指定的设备场景中描绘桌面墙纸图案PathToRegion将当前选定的路径转换到一个区域里Pie画一个饼图PlayEnhMetaFile在指定的设备场景中画一个增强型图元文件PlayEnhMetaFileRecord回放单独一条增强型图元文件记录PlayMetaFile在指定的设备场景中回放一个图元文件PlayMetaFileRecord回放来自图元文件的单条记录PolyBezier描绘一条或多条贝塞尔〔Bezier〕曲线PolyDraw描绘一条复杂的曲线,由线段及贝塞尔曲线组成Polygon描绘一个多边形Polyline用当前画笔描绘一系列线段PolyPolygon用当前选定画笔描绘两个或多个多边形PolyPolyline用当前选定画笔描绘两个或多个多边形Rectangle用当前选定的画笔描绘矩形,并用当前选定的刷子填充RoundRect用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充SelectClipPath将设备场景当前的路径合并到剪切区域里SelectObject为当前设备场景选择图形对象SetArcDirection设置圆弧的描绘方向SetBkColor为指定的设备场景设置背景颜色SetBkMode指定阴影刷子、虚线画笔以及字符中的空隙的填充方式SetBrushOrgEx为指定的设备场景设置当前选定刷子的起点SetEnhMetaF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳理工大学《热工与流体力学》2021-2022学年第一学期期末试卷
- 沈阳理工大学《光电类导论》2021-2022学年期末试卷
- 沈阳理工大学《单片机原理与应用》2021-2022学年期末试卷
- 管护经营合同更名理
- 合同标准安全条款自查报告范文
- 银行员工转正申请书范文6篇
- 2024系统开发合同2
- 2024消防工程合同范本(修改)
- 深圳大学《中美关系史》2021-2022学年第一学期期末试卷
- 应急管理条例解读
- 2022-2023学年福建省福州市福清市闽教版五年级上学期期中练习英语试卷(含听力音频)
- 生活区消防自查记录表
- 2024届广东省深圳市宝安区宝安中学物理九上期中质量跟踪监视模拟试题含解析
- 工业设计方法学
- GB/T 43218-2023煤炭测硫仪性能验收导则
- 创新方法大赛理论测试题库(2018、2019、经典题库)
- 湖北省武汉一初慧泉2023-2024+学年上学期9月同步练习Unit1-Unit+3九年级英语试卷
- 《中华商业文化》第五章
- (完整版)华为虚拟化技术方案
- 直播培训合作协议
- 3dMAX菜单中英文对照表(完整版)
评论
0/150
提交评论