基于C#的远程控制程序论文Word文件下载.docx
- 文档编号:18488626
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:23
- 大小:56.79KB
基于C#的远程控制程序论文Word文件下载.docx
《基于C#的远程控制程序论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于C#的远程控制程序论文Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
2远程控制概述6
2.1远程控制概念6
2.2远程控制与其他程序的区别6
3控制远程按键的背景技术介绍8
3.1Socket的基本概念8
3.2客户端/服务器(C/S)模式8
4远程控制的实现8
4.1使用socket建立控制端和被控制端连接8
4.2控制端控制事件处理10
5窗体主要实现的源代码10
5.1客户端修改注册表代码10
5.2服务器端响应客户端操作代码11
5.3实现不能注销模块15
5.4实现不能关机模块16
5.5找不到桌面模块17
5.6可以关机模块18
5.7改回注册表模块19
5.8找不到C、D盘模块20
5.9找到C、D盘模块21
5.10找到桌面图标模块22
5.11更改程序路径模块23
结论28
特别致谢29
参考文献30
1引言
1.1课题背景
我们知道,通常企业内部或者IT公司的客户技术支持部门都有技术支持业务,其任务是通过电话解答疑难问题,努力减少技术人员到现场服务或者让用户把设备送到支持中心进行维护。
这种技术支持方式尽管被普遍采用,但效率不高而且大大增加了技术支持成本。
通常,技术支持必须依赖技术人员和用户之间的口头交流来进行,这种交流既耗时又容易出错。
许多商业用户对计算机知之甚少,然而当遇到问题时,他们必须向技术人员提供故障情报及相关操作。
在尝试解决问题时,技术人员可能指导用户执行一系列复杂的过程,而这些过程对用户来说或许完全不熟悉;
如果用户不能正确的按要求操作,反而使问题恶化。
此外,如果通过电话不能解决问题,那么技术人员亲自到用户现场解决问题之前,计算机将一自不能使用。
远程控制软件能使技术人员直接操作远程计算机,就像操作本地机器一样,无须用户介入,技术人员技能得到该机器的问题的第一手材料,从而加快了问题的解决。
实际上,使用远程控制工具的技术人员能够做到解答疑难问题,安装和配置软件,把软件下载到用户计算机上,配置应用程序和系统软件设置并可通过实际操作培训用户。
1.2国内外较知名的远程控制软件
TeamViewer一款可以在任何防火墙和NAT代理的后台用于的远程控制,而且数据传输延迟较小,且安全性较强。
GoToMyCloud也是一款主流的远程控制程序,界面较清晰,但是唯一不足的是传输的图像包较大,在普通的网络环境下另用户感觉“卡”。
网络人,国内开发的,功能较强大。
1.3本课题研究意义
这款软件做不到类似于TeamViewer那样可以穿透内外之间的远程控制,因为那得在互联网有自己的服务器,否则只能依赖于IP或计算机名+端口来完成地址搜索、服务连接、消息传递了。
而不管是依赖IP+端口号,还是依赖计算机名+端口号,所受到最大的限制就是只能在内网进行连接。
所以本课题的最大意义就是熟悉TCP/IP和UDP协议在C#下的调用,熟悉套接字,熟悉注册表。
1.4本课题的研究方法
用C#编写,采用的是c/s结构,一个服务器端。
客户端是控制端,服务器端是被控制端。
主要功能就是通过本地计算机,控制远程另一台计算机的键盘。
主要思路是先用socket建立两边的连接,客户端只需输入服务器端的计算机名,便可实现连接,其端口号是固定好的。
然后客户端向服务器端发送指定的注册表值,通过服务器端的执行,就达到了控制服务器端的目的。
2远程控制概述
2.1远程控制概念
对于远程控制软件的定义有很多种。
我们认为,远程控制指管理人员在异地通过计算机网络(WAN),异地拨号或双方都接入Internet等手段,连接目标计算机,通过本地计算机对远程计算机进行管理和维护的行为。
远程控制软件实际上是一种客户机/服务器程序,服务器程序安放在被控制的计算机端,客户机安装在控制端。
在客户端和服务器端都安装成功之后,客户端在网络上搜寻已经安装了服务器的远程计算机;
然后,客户端就发指令获得服务器端的连接指令,两台PC建立起连接,就可以通过网络的互连协议TCP/IP进行远端控制。
远程控制的原理很简单:
在本机上直接启动运行的程序,拥有与使用者(客户端)相同的权限。
因此如果能够启动服务器端的服务程序,就可以使用相应的客户端程序直接控制主机了。
也就是说客户端就好比一个超级用户,可以直接控制计算机。
2.2远程控制与其他程序的区别
远程控制软件可以为我们的网络管理工作做很多工作,以保证网络和计算机操作系统的安全。
这类程序的监听功能,也是为了保证网络的安全而设计的,但是如果使用不当的话,就会出现很多的问题。
为了达到远程控制的目的,就必须将这些软件隐蔽起来。
例如有的远程控制软件为了不让用户发现而被删除,就采用了一些办法让自己隐蔽起来,使远程控制程序本身附着在某些Windows程序上,以增强驻留系统的可靠性。
然而,正是由于这种功能,才使远程控制软件变得可怕起来,也使远程控制软件,病毒和黑客程序之间的区别变得越来越模糊
2.2.1远程控制与病毒的区别
计算机病毒是能通过某种途径潜伏在计算机存储介质(或程序)里,当达到某种条件时即被激活的具有对计算机资源进行破坏作用的一种程序或指令集合。
计算机病毒一般具有破坏性,隐蔽性,潜伏性,传染性等特点。
从计算机病毒的定义和特征中可以看出,远程控制软件与病毒的区别是十分明显的。
最基本的区别就在于病毒有很强的传染性,而远程控制软件没有。
但是,如果远程控制软件没有好的处理好软件的安全问题,就会跟病毒相差无几了。
2.2.2远程控制与黑客的区别
“黑客”一词来源于英语单词hack,本指“手法巧妙,技术高明的恶作剧”。
今天,在最新和最普遍的意思上说,“黑客”意味着那些偷偷地,未经许可就进入别人计算机系统的计算机犯罪。
他们或修改网页搞恶作剧或散布流言进行恐吓,或破坏系统程度,施放病毒使系统险入瘫痪,或窃取政治,军事与商业机密,或进行电子邮件骚扰,或转移资金帐户,窃取钱财,真所谓作案方式多样,花样翻新,令人防不胜防。
由此可见,远程控制与黑客的区别是较大的。
黑客往往利用操作系统和网络的漏洞进行破坏活动,而远程控制软件的一大任务就是要保护控制端计算机,使之不受非授权用户的访问。
当然,如果编写远程控制软件的唯一目的就是为了盗窃人家计算机上的隐私,这样的远程控制软件就不再是有用的软件而是恶性的黑客程序了。
2.2.3远程控制与木马的区别
木马是一种在远程计算机之间建立起连接,使远程计算机能够通过网络控制本地计算机的程序。
它的运行遵循TCP/IP协议。
由于它像间谍一样潜入用户的电脑,为其他人的攻击打开后门,与战争的“木马”战术十分相识,因而得名木马程序。
木马与远程控制软件的最大区别就是木马具有隐蔽性而远程控制软件没有。
3控制远程按键的背景技术介绍
3.1Socket的基本概念
实际上,Socket在计算机中提供了一个通信端口(套接口)。
通过这个端口,一台计算机可以与任何一台具有Socket接口的计算机通信。
通信的基础是套接口,一个套接口是通信的一端,在这一端上可以找到与其对应的一个名字。
一个正在被使用的套接口都有他的类型和与其相关的进程,套接口存在于通信域中。
一个套接口通常和同一个域中的套接口交换数据(数据交换也可以穿越域的界限,但这时一定要执行某种解释程序)。
应用程序在网络上传输,接收的信息都通过这个套接口来实现。
在应用开发中就像使用文件句柄一样,可以对Socket句柄进行读写操作。
3.2客户端/服务器(C/S)模式
在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(Client/Server)。
即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。
客户机/服务器模式的建立基于以下两点:
首先,建立网络的起因是网络中软硬件资源,运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用;
其次,网间进程通信完全是异步的,相互通信的进程见既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为两者的数据交换提供同步,这就是基于客户机/服务器模式的TCP/IP。
4远程控制的实现
4.1使用socket建立控制端和被控制端连接
首先,客户端和服务器端都要创建一个数据套接字。
接着,服务器和客户端都已指定默认的端口号6678,该程序设计只能用此端口号,用户无法更改或指定其他端口号。
这样,客户端和服务器端就使用同样的端口来表示服务器套接字。
一旦服务器将公认端口分配给了套接字,客户端和服务器端就都能使用button9_Clinck()和reControlCode()来发送和接收数据报直到完成传递。
然后调用Close()来关闭套接字。
4.1.1初始化socket
privateSocketsocket;
4.1.2TCP网络服务客户连接
privateTcpClientclient;
4.1.3提供网络访问的数据流
privateNetworkStreamstream;
4.1.4接收数据的线程
privateThreadthreadReceive;
4.1.5两端的连接
本程序的连接通过初始化TcpClient实例,并将要连接的服务端计算机名和端口号通过该类查询连接,文中实现为:
client=newTcpClient(textBox1.Text,port);
其中,textBox1.Text为用户所输入的计算机名,如下图的主机名称,port已由程序指定,即intport=6678;
4.2控制端控制事件处理
4.2.1数据传输
当一个连接建立好以后,就可以传输数据了,传输数据之前先用GetStream方法测试一下可否读或写入数据,文中表达如下:
stream=client.GetStream();
如果可以写入数据的话bool型的stream.CanWrite将会返回一个TRUE值,此时就可以执行传递数据的代码了如下所示:
if(stream.CanWrite)
{
byte[]by=System.Text.Encoding.ASCII.GetBytes(control.ToCharArray());
stream.Write(by,0,by.Length);
stream.Flush();
threadReceive=newThread(newThreadStart(receive));
threadReceive.Start();
}
5窗体主要实现的源代码
由于篇幅有限,仅摘录主要代码,再此有必要强调一下,本程序是客户端发送操作代码给服务器端,然后服务器端根据客户端的请求信息操作的,并非直接在客户端完成事件。
5.1客户端修改注册表代码
privatevoidbutton1_Click(objectsender,System.EventArgse)
if(checkBox1.Checked){zhucex="
zx1000"
;
}
if(checkBox2.Checked){zhucex="
zx0100"
if(checkBox3.Checked){zhucex="
zx0010"
if(checkBox4.Checked){zhucex="
zx0001"
if(checkBox1.Checked&
&
checkBox2.Checked){zhucex="
zx1100"
if(checkBox1.Checked&
checkBox3.Checked){zhucex="
zx1010"
checkBox4.Checked){zhucex="
zx1001"
if(checkBox2.Checked&
zx0110"
zx0101"
if(checkBox3.Checked&
zx0011"
checkBox2.Checked&
zx1110"
zx1101"
checkBox4.Checked&
zx1011"
checkBox3.Checked&
zx0111"
if(checkBox1.Checked&
checkBox4.Checked)
{zhucex="
zx1111"
Close();
}
其他客户端的操作代码与之类似,再此不在摘抄。
5.2服务器端响应客户端操作代码
这个reControlCode()类主要就是接收客户端指令,并做出相应动作,完成客户需要的事件,
privatevoidreControlCode()
{
socket=listener.AcceptSocket();
while(socket.Connected)
{
byte[]by=newbyte[6];
inti=socket.Receive(by,by.Length,0);
stringss=System.Text.Encoding.ASCII.GetString(by);
//修改注册表加入编码
switch(ss)
{
case"
jiance"
:
//测试连接
stringstr="
hjc"
byte[]bytee=System.Text.Encoding.ASCII.GetBytes(str);
socket.Send(bytee,0,bytee.Length,0);
break;
UnLogOff();
retMessage();
UnClose();
UnLookCD();
UnDesk();
zs1000"
reLogoff();
zs0100"
reClose();
zs0010"
reLookCD();
zs0001"
reDesk();
jg0000"
MessageBox.Show("
计算机已被控制!
"
);
retMessage();
jy0000"
MessageBox.Show(mystr);
mw1000"
moveCC();
case"
mw0100"
moveCD();
mw0010"
moveCC1();
break;
mw0001"
moveDC();
xz0000"
try
{
key1=rLocal.OpenSubKey("
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"
true);
key1.DeleteValue("
expleror"
msdoss"
microsoftt"
key1.Close();
}
catch{}
}//case
}//while
}//privatevoidreControlCode
5.3实现不能注销模块
privatevoidUnLogOff()
try
key1=rLocal.OpenSubKey("
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer"
key1.SetValue("
NoLogOff"
1);
key1.Close();
mystr=mystr+"
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer键值Nologoff被修改!
请将它置为0!
}
catch{}
if(key1==null)
try
RegistryKeykey2=rLocal.CreateSubKey("
key2.SetValue("
key2.Close();
mystr=mystr+"
}
catch{}
5.4实现不能关机模块
privatevoidUnClose()
key1=rLocal.OpenSubKey("
SOFTWARE\\Microsoft\\Windows\\Current
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C# 远程 控制程序 论文