木马程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
木马程序设计
摘要:在计算机日益普及的时代,信息在网络上的传播已经凸显出不可或缺的重要地位。在感受网络带来的信息交流与资源共享的益处的同时,各种病毒也在危害着计算机用户,木马程序是其中最为猖獗的一类。本文通过利用C#编程等方法分析与设计一个简单的木马程序,让人们更进一步了解木马的功能、原理、植入方法以及如何防护与处理木马。
关键词:木马技术;远程控制; .NET类;
1 引言
1.1 课题背景
随着信息技术的飞速发展,计算机和计算机通信网络己经成为当今社会不可缺少的基本组成部分,依托互联网技术的全球信息化浪潮冲击和深刻影响着人类政治、经济、社会的方方面面,对经济发展、国家安全、国民教育和现代管理都起着重要的作用。随着网络技术和信息化应用范围的不断扩大,网络信息应用领域开始从传统的、小型业务系统逐渐向大型、关键业务系统扩展,如政府部门业务系统、金融业务系统、教育科研系统等等。但随着网络应用的增加,以计算机信息系统为犯罪对象和犯罪工具的各类新型犯罪活动不断出现。网络安全风险也不断暴露出来,网络信息安全问题已经成为制约各类网络信息系统实用化和进一步发展的不可忽视因素,对一些关系国民经济的重要信息系统和关系国家安全的网络信息系统,己经到了非解决不可的地步。其中,利用木马技术入侵、控制和破坏网络信息系统,是造成网络信息安全问题的典型表现之一。
木马是一种基于C/S模式的远程控制技术,能在被监控对象毫无察觉的情况下渗透到对方系统并隐藏在合法程序中的计算机程序。一旦植入和触发成功,控制端与被控制端之间就能遵照TCP/IP协议进行数据通信,从而使得控制者获取被控制者的相关信息。它们通常以欺骗为手段,在用户不知情的情况下进行安装,并暗中把所获的机密信息发送给第三者,威胁用户电脑中的数据安全并侵犯个人隐私,严重影响了人们正常工作和生活。2008年1月至10月,瑞星公司共截获新病毒样本930余万个,其中绝大部分(776万)是盗号木马、后门程序,专门窃取网游账号、网银账号等虚拟财产,具有极其明显的经济利益特征。时隔两年,不断有新的木马病毒被发现,社会上己经掀起一个木马研究的热潮。
正是在这样的背景下,我的课题主要设计一个简单的木马程序,进一步地了解木马程序的结构和实现原理,加深对相关知识的了解,进而提高对木马的防范水平。
1.2 课程设计目的
本课程设计的目的主要有以下几个:
(1)加深对socket套接字在编程中的应用理解;
(2)加深对服务器端以及客户端编程的应用;
(3)掌握.NET类库中的命令空间;
(4)进一步熟悉Visual Studio 2008开发工具,掌握相关控件的使用方法。
(5)进一步了解木马的设计原理,提高对木马的防范水平。
(6)通过本次课程设计,提高利用C#编程的能力。
2 程序设计平台
2.1开发工具
本课程设计使用了Microsoft Visual Studio 2008作为开发工具,使用C#作为开发语言。Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。
Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的Web 应用程序。
开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 应用程序服务和 Microsoft 平台。
2.2开发语言
设计使用C#语言。C# 与C++很相似,还借鉴了Java的许多特点。但是C# 比C++更安全、比Java更高效,特别适合于Windows环境下的.NET编程。C# 是一种面向对象的程序设计语言,最初是作为.NET的一部分而开发的。换句话说,.NET是围绕C# 而开发的。C# 的面向过程和对象的语法,是基于C++的,但也包含了另外几种程序设计语言的特征(其中最显著的是Delphi、
Visual Basic 和Java ),C# 特别强调简易性(如所需符号比C++的少、所需修饰比Java 的少)。用C# 进行托管代码编程,具有如下优点:完全面向对象的设计、非常强的类型安全、很好地融合了VB 和C++的强大功能、垃圾内存回收、类似于C++的语法和关键字、用委托取代函数指针增强了类型安全、为程序员提供版本处理技术可解决老版本的程序不能在新DLL 下运行的“动态链接库地狱”(DLL hell )问题。[1]
3 主要原理
3.1 木马工作原理
木马是一类特殊的计算机程序,其作用是在一台计算机上监控被植入木马的计算机的情况。所以木马的结构是一种典型的客户端/服务器 (C/S)模式。木马程序一般分为客户端(Clinet)和服务器端(Server),服务器端程序是控制者传到目标计算机的部分,骗取用户执行后,便植入计算机,作为响应程序。客户端是用来控制目标主机的部分,安装在控制者的计算机,它的作用是连接木马服务器端程序,监视或控制远程计算机。典型的木马工作原理是:当服务器端在目标计算机上被执行后,木马打开一个默认的端口进行监听,当客户机向服务器端提出连接请求,服务器上的相应程序就会自动运行来应答客户机的请求,服务器端程序与客户端建立连接后,由客户端发出指令,服务器在计算机中执行这些指令,并将数据传送到客户端,以达到控制主机的目的。(如图3.1)
图3.1木马服务器端与客户端的通信 木
马客
户端 木马服务端
指令 结果 TCP/IP 连接