远程协助工具的奥秘

article/2025/8/18 0:30:41

远程协助的奥秘

  • 远程协助是什么?

远程协助是在网络上由一台电脑(主控端Remote/客户端)远距离去控制另一台电脑(被控端Host/服务器端)的技术。电脑中的远程控制技术,始于DOS时代。远程控制一般支持下面的这些网络方式:LAN、WAN、拨号方式、互联网方式。(如果不懂,请自行百度。)

  • 远程协助的原理是什么?

传统的远程控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等协议来实现远程控制,不过,随着网络技术的发展,很多远程控制软件提供通过Web页面或者是客户端形式以Java技术来控制远程电脑,这样可以实现不同操作系统下的远程控制,例如向日葵远程控制软件,及支持Web页面远程也支持客户端远程。

简单点说,就是利用互联网七层架构来实现主机与主机之间的数据,状态,互相传送。

  • 此处的远程协助是什么?

此处,我利用TCP/IP栈上的UDP协议实现,为什么选择UDP协议呢?UDP协议是一种无连接协议,占用资源少,通信速度快。而为什么没有选择TCP协议实现呢?TCP协议是一种有连接协议,所客户端要始终和受控端相连接,如果受控端过多的话,导致占用资源过多,很容易出现掉线的情况。不仅如此,我们既然做的是远程,那必然需要看到对方电脑或者其他设备的画面,所以要有图像的传输。图像、音频这类对质量要求不高的,对实时性要求较高的,那UDP协议无疑是最好的选择。

讲完了图像,那就谈一谈身份认证、鼠标键盘控制和数据安全传输这三个模块。

我这里的身份认证,是在登录页面有控制端地址、端口、用户名和密码的校验,可以看下图:

有人是不是觉得有些熟悉,没错,我这个是模仿NetScout的页面的,用户名和密码可以借助第三方服务器来进行验证,在明文的基础上适当的加上验证。

而控制这里需要的就更多了,话不多说,看图:

先介绍一下,添加设备,可以连接更多的控制端。连接设备,自然就是能够对控制端进行监视和控制。

数据安全传输自然就是对数据进行加密,允许监听,但是截获的数据包不一定能够被解密。

  • 实现过程中遇到的难题有哪些?

  1. 点击连接设备为什么只出现一次图像就没有了?

只出现一次图像的的源码:

                 UdpClient Client = new UdpClient();
                        IPEndPoint remoteHost = new IPEndPoint(IPAddress.Parse(textip), 1025);
                        byte[] buffer = Encoding.UTF8.GetBytes(DES.encrpytionDES.DESEncrypt(message.ToString()));
                        Client.Send(buffer, buffer.Length, remoteHost);
                        Client.Close();

正常后的源码:

 public void SendremoteHost(object message)
        {
 
            while (true)
            {
                try
                {
                   
                        UdpClient Client = new UdpClient();
                        IPEndPoint remoteHost = new IPEndPoint(IPAddress.Parse(textip), 1025);
                        byte[] buffer = Encoding.UTF8.GetBytes(DES.encrpytionDES.DESEncrypt(message.ToString()));
                        Client.Send(buffer, buffer.Length, remoteHost);
                        Client.Close();
                      
                }
                catch (Exception ex)
                {

                }
            }
        }

解释:本来以为,将要执行的函数放在线程池ThreadPool里,并且调用QueueUserWorkItem()这个方法,及应该是每传递一次图像就调用一次线程,但事实上是线程被调用了一次,但SendremoteHost()这个自定义方法也执行了一次,以此需要在方法里多家一层循环,才能保证图像能够实时接收。但是真正意义上的,成熟的,商业化的这些协助工具,基本都会为接收图像事件制定一个时间控制器,在c#语言里就是一个时间控件,只有时间控制好,远程协助的体验才是最好的。

2.   键盘鼠标的控制是怎么实现的?

      在面向对象的这些高级语言里,对操作系统的操作都是要调用操作系统底层的API接口的,而鼠标的控制就是下面这个函数了

    

       要想调用鼠标控制对对方的电脑,就要在客户端这里pictruebox控件里确定鼠标的点击、移动等事件。在这些事件里自定义完成的操作。说到鼠标的点击和移动,自然就涉及到鼠标Hook是如何定义的,包括鼠标操作类型,屏幕坐标等,看代码

客户端接收到图像,鼠标点击图像上的按钮,这件操作会转化为二进制流,通过加密信道传输到控制端那里去,控制端那里监听到数据包,解密,分析进行什么样得操作。在这里解释一下mouse_event(int flags,int x,int y,int dzData,int Extrainfo)这个函数,flags代表的是鼠标的操作类型,x代表的是屏幕的x坐标,y代表的是屏幕的坐标,其他可以暂不考虑为0就可以。

键盘的控制的API如下

键盘和鼠标的操作差不多,但是比鼠标更加简化,直接调用keyPress(byte keyName)即可,如果你认为键盘和鼠标的调用事件的方式一样,那可就大错特错了,打开pictruebox控件你会发现根本就没有keydown这类按键事件,看图

在.net平台上这类窗体里的控件大部分都没有keydown事件,只有一个PreviewKeyDown事件,而这个时间是发生在按键之前的,和按键无关,你通过此图发现鼠标事件和键盘事件差别很大。那该怎么办呢,我们不可能不操作键盘吧,所以有一种方法能够解决这个问题,那就是看图

如图,看到键盘按键了吧,再仔细看,会发现这个属性是WinForm窗体本身的,所解决办法有了,就是将按键事件加载在窗体上。但是有大佬肯可能发现,绑定了keydown事件到winform窗体上,为啥键盘按键还是没有反应呢,这是因为看下图

原来键盘事件没有注册。未注册的的大佬请注册,hi hi。

3. 截屏又是怎么实现的呢,我这里只介绍一种截屏方法,话不多说,上源码:

4. 图片是怎么传输的呢,接着上源码:

客户端和控制端都是图片和二进制流进行转换的,通过UDP协议传输数据流。

5. 图片接收为什么会模糊?

那是因为截图的大小是屏幕大小,而我只传输了一个包,这一个包只有64K,所以客户端接收到的图片,可以说是只有真实图片的64/500左右,这个问题目前我的能力有限,尚未及解决,等待那位大佬前来指正。

 

如有需要

请联系qq邮箱:2590367577@qq.com

 

 

 


http://chatgpt.dhexx.cn/article/uRlMqN1G.shtml

相关文章

Windows自带的远程协助工具(非远程桌面)

准备 首先,我们的电脑必须又有msra.exe 如何得知电脑有没有这一工具? 1.winR 调出【运行】,在其中输入 msra 或者 msra.exe,回车 看看能否打开此程序 2.在【开始】里找到【Windows管理工具】下面的【系统配置】,然后…

Linxu终端远程协助工具termpair

Linxu终端远程协助工具termpair termpair简介安装termpair启动termpair服务生成远程控制终端的链接 termpair简介 安装termpair # 安装termpair pip install termpair启动termpair服务 # 启动termpair服务 termpair serve生成远程控制终端的链接 # 生成远程控制终端的链接 t…

Windows自带的远程协助工具(非远程桌面,类比QQ远程桌面)

本期,我给大家介绍一个Windows自带的远程协助工具msra.exe,看见网上相关资料很少,所以补充一下。 准备 如果没有找到相应结果 使用msra exethe end 远程协助相比于远程桌面,优点是双方可以同时操作,类比于QQ远程桌面 …

远程协助工具

转载自北极星博客 当你在使用电脑时突然碰到了问题自己解决不了,那么我们可以通过远程协助来让网友解决。首先,如果网友和你在同一个局域网中你可以使用的就是Windows 的远程桌面功能。如果你不在局域网中,并且只有一个Internet 连接。你可以…

远程协助软件推荐,有哪些远程协助工具?

Win10、11自带远程协助工具-快速助手 Win10、11的快速助手使用非常简单。只要在左下角的搜索框搜索一下就可以找到了。 我们都知道,Windows带有远程桌面RDP功能,而快速助手是通过Windows的远程连接机制实现的。所以在使用前,被控端需要开启系…

内网远程协助工具_分享几个常用的免费远程软件

转载自:https://blog.csdn.net/weixin_39806779/article/details/110962599 1、说到远程工具,首先我们想到的是影子(Radmin),外网需要映射端口,较不安全,内网远程无敌,界面如下图。 Radmin是收费的,我在…

Windows 10 自带的远程协助工具 快速助手

概述 之前一直是使用 Teamviewer 来作为远程协助工具,但是最近发现控制端必须要登录账号才能使用,而且还有设备数量上的限制,所以就打算另找一个软件来代替,无意中发现了,原来在 Windows 10中已经内置了一个远程协助的…

【指纹识别】基于MATLAB/FPGA的指纹识别算法仿真实现

1.软件版本 MATLAB2013b,vivado2019.2 2.本算法理论知识 指纹识别技术是指使用取像设备读取指纹图像,通过识别软件提取出指纹图像中的特征数据,然后根据匹配算法得到的结果鉴别指纹所有人身份的生物特征识别技术。指纹识别系统主要涉及三大…

研究报告称指纹识别传感器将保持主流市场地位

在一份最新发布的“生物识别技术和应用”的研究报告中,美国市场研究公司ABI Research指出:“2018年,整个消费市场的指纹感应器全球总出货量预计将达到12亿美元,确保其仍占市场主导地位。” 该报告承认,在过去几年里指纹感应器的平均销售价格遭…

指纹识别与交互(冯建江,2022)

以下为本人在2022年中国生物特征识别会议报告的文字版,对应的视频包含更清晰流畅的动画演示。 一提到指纹,绝大部分人的反应是指纹识别。因为指纹识别的应用已经非常广泛了,而且除了身份识别,指纹目前基本上没有其他实际应用。 图…

指纹识别-(1)基本知识

指纹识别-(1)基本知识 脊线为指纹纹理中凸起部分,谷线为指纹纹理中凹陷部分。将从一个人身上获取的指纹与数据库中存储的所有指纹进行比较称为1:N匹配,它经常被用在利用指纹库查找罪犯的过程中。利用指纹匹配算法将已采集的需匹配的指纹与指纹库中的某一…

指纹识别综述(9): 指纹系统安全

本文主要基于《Handbook of Fingerprint Recognition》第三版第九章“Securing Fingerprint Systems”的内容。本文会不定期更新,以反映一些新的进展和思考。 1、引言 指纹识别系统的主要目的是提供识别或验证个人身份的机制。然而就像任何系统一样,指纹…

【毕业设计项目】基于单片机的指纹识别系统实现 - 物联网 stm32 c51

文章目录 1 简介2 指纹识别简介3 指纹识别传感器原理3.1 光学指纹传感器原理3.2 半导体指纹传感器3.3 电容式指纹识别传感器 4 系统设计4.1 指纹识别核心技术流程4.2 硬件结构4.3 采集到的指纹4.4 指纹识别算法流程 5 实现效果6 部分实现代码6 最后 1 简介 Hi,大家…

基于神经网络的指纹识别,指纹比对技术何时出现

1、指纹识别是怎么进行的 导语:指纹识别技术通常使用指纹的总体特征如纹形、三角点等来进行分类,再用局部特征如位置和方向等来进行用户身份识别。尽管指纹只是人体皮肤的小部分,但是,它蕴涵着大量的信息。那么,接下来…

Arduino--AS608指纹传感器

(1)简介 如图所示为AS608指纹传感器,其可支持串口和USB通信 模块芯片上的管脚如下: 序号名称说明1Vi模块电源正输入端2Tx串行数据输出3Rx串行数据输入4GND信号地5WAK感应信号输出,默认高电平有效6Vt触摸感应电源输…

指纹辨识传感器解决方案

随著个人信息产品对资料安全性的要求日益升高,再加上指纹辨识感测技术近几年来,无论是在尺寸、成本、或者是准确度等,各方面的发展都获得快速的进步,因此,相关业者便积极开发指纹辨识感测技术应用在个人可携式产品等出…

指纹识别传感器市场仍将持续上涨

市场分析公司MarketsandMarkets的一份研究报告称,未来几年指纹识别传感器市场整体仍将呈上涨趋势。 市场分析公司MarketsandMarkets的新报告称,尽管由于移动部门的利润缩水,多家指纹识别传感器专业公司在2017年面临巨大的市场压力&#xff0c…

php图片指纹获取,指纹识别是通过什么等物理传感器获取指纹图像

指纹识别是将识别对象的指纹进行分类比对从而进行判别。指纹识别技术作为生物体特征识别技术之一在新世纪逐渐成熟,进入了人类的生产生活领域。 (推荐学习:web前端视频教程) 指纹模式 指纹是人类手指末端由凹凸的皮肤所形成的纹路,在人类出生…

指纹识别

前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。 1.概念 指纹是指手指末端正面皮肤上凹凸不平的纹路。这段纹路蕴含…

智能门锁:指纹识别概述

每个人的皮肤纹路在图案、断点、交叉点上各不相同,指纹识别技术依靠皮肤纹路的唯一性、稳定性,把个体身份同指纹对应起来,通过与预存指纹对比进行身份识别。在实现方式上,指纹识别技术主要分为:电容式、光学式、超声波…