木马服务端的设计与实现毕业设计论文Word文件下载.docx

上传人:b****4 文档编号:16487682 上传时间:2022-11-24 格式:DOCX 页数:54 大小:303.03KB
下载 相关 举报
木马服务端的设计与实现毕业设计论文Word文件下载.docx_第1页
第1页 / 共54页
木马服务端的设计与实现毕业设计论文Word文件下载.docx_第2页
第2页 / 共54页
木马服务端的设计与实现毕业设计论文Word文件下载.docx_第3页
第3页 / 共54页
木马服务端的设计与实现毕业设计论文Word文件下载.docx_第4页
第4页 / 共54页
木马服务端的设计与实现毕业设计论文Word文件下载.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

木马服务端的设计与实现毕业设计论文Word文件下载.docx

《木马服务端的设计与实现毕业设计论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《木马服务端的设计与实现毕业设计论文Word文件下载.docx(54页珍藏版)》请在冰豆网上搜索。

木马服务端的设计与实现毕业设计论文Word文件下载.docx

学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;

学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据库和收录到《中国学位论文全文数据库》进行信息服务。

在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。

论文作者签名:

日期:

指导教师签名:

本科生毕业论文

木马服务端的设计与实现

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

     日  期:

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;

学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;

学校可以采用影印、缩印、数字化或其它复制手段保存论文;

在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

学位论文原创性声明

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

日期:

导师签名:

注意事项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:

引言(或绪论)、正文、结论

7)参考文献

8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:

理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:

任务书、开题报告、外文译文、译文原文(复印件)。

4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。

图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用A4单面打印,论文50页以上的双面打印

4)图表应绘制于无格子的页面上

5)软件工程类课题应有程序清单,并提供电子文档

5.装订顺序

1)设计(论文)

2)附件:

按照任务书、开题报告、外文译文、译文原文(复印件)次序装订

3)其它

摘要:

木马是一种基于C/S模式的远程控制技术,能在被监控对象毫无察觉的情况下渗透到对方系统并隐藏在合法程序中的计算机程序。

一旦植入和触发成功,控制端与被控制端之间就能遵照TCP/IP协议进行数据通信,从而使得控制者获取被控制者的相关信息。

本论文阐述了木马服务端的设计与开发,实现了屏幕监控、鼠标控制、文件控制等功能。

系统采用分层架构和C/S的编程模式;

以TCP/IP作为通讯协议,加上自定义的规则,保证客户与服务器之间传输的信息正确性和准确性。

本设计涉及的主要技术有Socket编程,MFC程序设计,多线程等。

论文中用了大量表格和图形,使系统各部分的内部结构更加清晰。

关键词:

木马;

网络通信程序设计;

Socket编程

ThedesignandimplementationofTrojanserver

Abstract:

TrojanhorseisaremotecontroltechnologybasedonC/Smode,caninfiltratetheothersystemandhideinthecomputerprograminthelegalprogramwithoutanydetection..Oncetheimplantandthetriggerissuccessful,thecontrolandthecontrolledendcancommunicatewiththedataoftheTCP/IPprotocol,whichwillenablethecontrollertoobtaintherelevantinformationofthecontrol.

ThispaperdescribesthedesignanddevelopmentoftheTrojanserver,thefunctionsofthescreenmonitoring,mousecontrol,filecontrolandsoon..ThesystemusesthelayeredstructureandtheC/Sprogrammingmode,TCP/IPasthecommunicationprotocol,andthecustomrule,guaranteetheinformationbetweenthecustomerandtheservertotransmittheinformationcorrectlyandtheaccuracy.ThisdesigninvolvesthemaintechnologySocketprogramming,MFCprogramming,multi-threaded,etc..Inthepaper,alargenumberoftablesandgraphicsareusedtomakethestructureofthesystemmoreclear.

Keywords:

Trojan,Networkcommunicationprogramming,Socket

第1章绪论

1.1选题背景

随着信息技术的飞速发展,计算机和计算机通信网络己经成为当今社会不可缺少的基本组成部分,依托瓦联网技术的全球信息化浪潮冲击和深刻影响着人类政治、经济、社会的方方面面,对经济发展、国家安全、国民教育和现代管理都起着重要的作用。

随着网络技术和信息化应用范围的不断扩大,网络信息应用领域开始从传统的、小型业务系统逐渐向大型、关键业务系统扩展,如政府部门业务系统、金融业务系统、教育科研系统等等。

但随着网络应用的增加,以计算机信息系统为犯罪对象和犯罪工具的各类新型犯罪活动不断出现。

网络安全风险也不断暴露出来,网络信息安全问题已经成为制约各类网络信息系统实用化和进一步发展的不可忽视因素,对一些关系国民经济的重要信息系统和关系国家安全的网络信息系统,己经到了非解决不可的地步。

其中,利用木马技术入侵、控制和破坏网络信息系统,是造成网络信息安全问题的典型表现之一。

它们通常以欺骗为手段,在用户不知情的情况下进行安装,并暗中把所获的机密信息发送给第三者,威胁用户电脑中的数据安全并侵犯个人隐私,严重影响了人们正常工作和生活。

1.2需求状况

由于木马活动的猖獗和其实现技术的不断更新,木马的防范工作也必须与时俱进。

只要了解木马的工作原理,借助协议分析工具,就能及时发现蛛丝马迹,降低木马带来的危害;

只要熟悉木马的隐藏方法,就能快速找到并彻底清除木马,甚至找到入侵者;

如果能够预先了解木马攻击手段,就可以有针对性防范木马主动入侵或攻击。

对于现如今流行的木马软件,一般分两个部分:

客户端Client,和服务器端Server。

实用方法是,先将客户端安装到主控计算机上,将服务端程序安装在被控制电脑上,然后在主控端电脑上执行Client端程序,并且向被控端电脑中的Server端程序发出信号,建立基于TCP协议的远程服务连接,然后通过这个远程服务,使用各种远程控制功能发送远程控制命令,Server端响应接收到的命令并执行相应的操作,我们称这种远程控制方式为基于远程服务连接的远程控制。

通过远程控制软件,我们可以进行很多方面的远程控制,包括截取目标电脑屏幕图像、窗口以及进程目录;

记录并提取远端键盘事件;

可以打开、关闭目标电脑的任意目录并实现资源共享;

管理远端电脑的文件和文件夹;

关闭或者重新启动远端电脑中的操作系统等。

1.3设计目标

木马服务端的设计与实现的主要任务是要求做出从系统角度出发的基于C/S开发模式与远程控制技术的实用软件。

使用Socket网络编程技术及C++程序开发语言。

实现基本的远程控制要求,界面简洁友好。

采用面向对象开发技术,严格遵循软件工程设计思想。

(1)对操作系统和网络系统进行分析,寻找漏洞进行远程计算机进行攻击。

(2)通过对防火墙的原理和特点进行分析,以绕过防火墙的拦截,从外网对内网进行控制。

(3)服务端的具体实现。

1.4本章小结

根据国内外的发展状况,本章主要介绍了木马客户端的设计背景、设计思想和设计目的。

大致介绍了该系统将要实现的各项功能,也提到了系统中应用的软件开发工具和技术。

为接下来的木马客户端的概要设计、详细设计做好充分的准备。

第2章系统可行性分析和功能需求

2.1系统软件模型

本系统采用C/S程序开发模式设计,由Server端(服务端)与Client端(客户端)两部分组成,对客户端的设计,一直遵循面向对象的设计思想,坚持界面友好,易操作;

对于服务端的设计则偏于简洁实用,启动后显示界面位于屏幕的右下角,只进操作的反馈,详尽的设计过程将在接下来介绍。

图2-1C/S模型时序图

2.2系统可行性分析

可行性研究的任务不是其体解决问题.而楚研究问题的范围.探索这个问题

是否伉得去解,是否有可行的方法。

可行性分析实质上是要进行一次大大压缩简

化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统

分析和设计的过程.要研究林一种解法的可行性,一般说来.应从经济可行性、

技术可行性、探作可行性等方而研究可行性。

2.2.1经济可行性

本课题设计成本低廉要的只是两个ISP分发的IP地址.而且这也多用于局

域网或企业网等内网.就更谈不上成本上的问题。

但是如果需要对程序的质最提

高可以购买加密算法。

对传输数据进行加密。

2.2.2技术可行性

本课题设计所用到的一系列的技术己足累积了儿十年的技术.这些技术在这么多年的发展中并没有被淘汰,反而延越来越来热门。

当初远程协助这门技术在DOS时代就己经存在,只是受网络的制约,但足此时这门技术还趁受网络技术制约着。

网络流量的问题是造成所有通信程序的不稳定性的罪魁祸首。

2.2.3操作可行性

根据系统的操作是否简单易懂,是否为用户所接受,从操作的角度研究系统的可行性。

本课题设计操作简单,客户端安装后无需其它操作,服务端待客户端自动连接后,则可以对其屏幕、文件、注册表等进行操作,完全像操作本地机器一样简单。

综合以上三方面的可行性分析,本课题设计的操作是可行的。

2.3系统功能性需求分析

本远程控制软件由Server(服务器)和Client(客户端)两部分组成,并且需要使用者在服务端与客户端同时运行相应程序来实现,具体步奏如下:

第一步,服务器端运行相应程序,使服务器端口处于监听状态,这里本远程控制软件使用了一个端口(3080);

启动服务器后,被控端计算机则处于等待连接状态。

第二步,运行客户端程序,输入被控端IP,服务端准备响应,然后程序自动连接到指定IP的远程计算机。

到目前为止,整个连接步奏则完成,这个程序之间已经建立了基于TCP协议的远程服务连接,进入使用界面后便可进行相应操作。

2.3.1屏幕监控

客户端对服务端的屏幕监测,直观的看到服务器端的PC机正在做什么。

图2-2屏幕监控用例图

2.3.2鼠标控制

在能监控到服务器屏幕的前提下,要能控制服务器的鼠标,实现鼠标左右键单击、双击操作,甚至可以锁定对方鼠标,解锁鼠标。

2.3.3文件管理

客户端如果仅仅能控制服务端桌面,不能体现木马的隐蔽性。

可想而知,当用户看到自己的鼠标在屏幕上乱跑的时候,用户必定就会产生怀疑。

所以,对于某些文件的处理,不用控制桌面也可以进行操作。

因此,要有直接处理文件的模块。

文件操作包括:

下载文件、删除文件、创建文件夹、执行远程程序等。

图2-3文件操作用例图

2.3.4功能结构层次图

图2-4功能结构层次图

2.4相关技术需求

2.4.1Socket网络编程

2.4.1.1Socket网络编程概述

20世纪80年代初,美国政府的高级研究工程机构(ARPA)给加利福尼亚大学Berkeley分校提供资金,让他们在UNIX操作系统下实现TCP/IP协议。

在这个项目中,研究人员为TCP/IP网络通信开发了一个应用程序接口(API)。

这个API就称为Socket接口。

今天,Socket接口是TCP/IP网络最通用的API,也是在Internet上进行应用开发最为通用的API。

事实上,Socket(套接字)就是在计算机之间提供了一个通信端口。

通过这个端口,一台计算机可以与任何具备套接字的网间计算机进行通信。

一个Socket只通信的一端,在这一端上可以找到与其对应的一个名字。

一个正在被使用的套接口都有它的类型和与其相关的进程,Socket存在于整个通信域中,与对应的并且在相同域的Socket进行数据交换,即通信。

应用程序在网络上传输,接收的信息都通过这个套接口来实现。

在应用开发种就像使用文件句柄一样,可以对Socket句柄进行读写操作。

无连接的服务是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组在系统中独立传送。

无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。

提供无连接的数据报服务的常用协议是UDP协议。

在TCP/IP网络应用中,两个进程之间的相互通信主要基于C/S模式(Client/Server)。

即客户端向服务端发出请求,服务端接收待来自客户端的请求好,调用相应的服务。

C/S模式的建立基于以下两点:

首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用;

其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为两者的数据交换提供同步,这就是基于客户机/服务器式的TCP/IP。

2.4.1.2Socket分类

TCP/IP的Socket提供下列三种类型套接字。

(1)原始套接字

该接口允许对较低层协议,如IP,ICMP的直接访问。

它通常用于检验新的协议实现或访问现有服务配置中的新设备

(2)TCP流式套接字

如果我们需要一个可靠的连接,用来使数据按顺序、无错的发送到目标端,就需要流式套接字。

流式套接字提供一种可靠的面向连接地传输方法。

数据无重复、无差错,并且按发送端发出数据的顺序进行接收。

不管对单个的数据报或者是一整个数据包,流式套接字都提供一种协议的历史传输——TCP。

除此之外,在数据进行传输时,如果一端的连接断开,则另一端的应用程序会接到通知。

流式套接字内设流量控制,避免数据流超限;

数据被看成字节流,无长度限制。

(3)UDP数据报套接字

数据报套接字是提供一种非连接、不可靠的通信方式。

在这里的“不可靠”是指发送的数据不能得到保障,也不保障数据按原来发出时的顺序到达目标端。

数据包以独立包形式被发送,不提供无错保证,数据可能丢失或重复,并且顺序混乱。

事实上,一份数据可能不止一次被发送。

对于基于C++的Socket网络编程的TCP/IP实现,数据报套接字使用用户数据报协议(UDP)。

虽然在通常情况下,在同一台计算机上的两个进程或在轻负载的局域网所连接的两台计算机的进程之间进行通信时,可能不会出现数据包丢失或没按照顺序到达及又重复发送的情况,但在编写实用UDP协议进行进程间通信的程序是,应考虑到这些情况,并且能做出应对措施。

当然,如果为非常复杂的网络(如Internet)编写通信应用程序,就应该考虑到数据报套接字的不可靠性。

如果应用程序不能很好的处理这些问题,很可能导致程序崩溃。

尽管如此,数据报套接字在发送数据包或者记录形数据时仍然有用。

另外,数据报套接字还提供向多个目的地发送广播数据包的能力。

2.4.1.3基本套接字函数调用

大多数的数据报套接字应用程序都使用一个规定的事件序列来完成客户应用程序与服务器之间的通信。

首先服务端与客户端都要创建一个Socket(套接字),然后服务端ServerSocket绑定端口和IP,这样客户端就能使用同一端口表示服务器套接字,然后服务器与客户端建立通信,即Sendto()和Recvfrom()信息交互。

2.4.2多线程

在一个应用程序中,一些独立运行的程序片断被称作“线程”(Thread),利用它编程的概念就叫作“多线程技术”。

多线程技术一个常见的例子就是用户界面。

利用线程当用户按下按钮后,方法与主界面流程可以一起往下执行,而不是等待方法执行后才继续往下。

在计算机编程中,一个基本的概念就是同时对多个任务加以控制。

许多程序设计问题都要求程序能够同步的处理工作,即工作能同时进行,而不是等待一个方法执行完后再接着执行主进程。

对于不同的需求,可以通过多种途径达到这个目的。

最开始的时候,那些掌握机器低级语言的程序员编写一些“中断服务例程”,主进程的暂停是通过硬件级的中断来实现的。

尽管这个方法很有用,但这样的程序很难移植,由此造成了另一类的代价高昂问题。

中断对那些实时性很强的任务来说是很有必要的。

但对于其他许多问题,只要求将问题划分进入独立运行的程序片断中,使整个程序能更迅速地响应用户的请求。

多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。

线程是在同一时间需要完成多项任务的时候实现的。

使用多线程的好处:

(1)使用线程可以把占据长时间的程序中的任务放到后台去处理,用户界面可以更加吸引人,比如,我在单击了远程控制后,任然能进行资源管理器操作,而不是等远程操作结束后才能进行资源管理器操作。

(2)程序的运行速度可能加快。

因为是“同步执行”的,不需要等待,所以可以加快程序的运行速度。

(3)在一些需要阻塞等待操作的程序中,线程是很实用的,如数据传输,等待连接,等待输入等,并不一定要上述方法都执行,主进程才能继续执行,这样带来的方便是非常大的。

2.4.3MFC应用程序框架

类库是一个可以在应用程序中使用的相互关联的C++类的集合。

MFC作为一个Windows编程类库,它包含了200多个类,封装了Windows的大部分编程对象以及与它们有关的操作。

虽然程序在功能上千差万别,但从本质上看,都可以分为用户界面设计、文件操作、数据库访问及多媒体使用等几部分,这些都可以通过一些类来实现。

MFC提供了一个标准化的程序结构,使开发人员不必从头设计一个Windows应用程序。

MFC是WinAPI与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编制软件时的大量内节,如应用程序实现消息的处理、设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风)

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

当前位置:首页 > 农林牧渔 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1