远程桌面控制原理是什么,符合那些条件才可以实现?
发布网友
发布时间:2022-04-23 06:29
我来回答
共5个回答
热心网友
时间:2023-07-12 05:30
原理很简单,优化很复杂;
就是抓屏,发送,至少要优化一下,每次只发送不同的地方;
设计条件如下:
① 【主机】端的界面位图传输功能使用的是《Visual C++C6.0技术内幕第五版》源码ex34a的Blocksock,这个TCP套接字类非常好用,因为带了“超时取消”功能,建议在工程中多多使用这样的类;
② 【主机】端的桌面位图捕获,见CopyBitmap、ToMemory两个函数,分为实现了获取桌面HBITMAP和将这个HBITMAP完整的按bitmap格式保存到内存中。ToMemory的第三个参数为像素颜色,可选择32、24、16、8,自己试一试,会占用不同的内存容量,建议取8,这样一幅800×600的位图不压缩时占用480K字节多;
③ 【主机】端的位图压缩,采用了开源项目miniLZO,这个开源压缩项目非常好用。经验证,一般界面下的位图,压缩后压缩比可以达到90%而且速度超快。这些比例数字都在程序中显示;
④ 鼠标键盘控制信息采用了低级钩子的方法获取,注意,低级钩子它们并不需要单独写DLL。(VC6捕获鼠标事件(移动、单击等)的一些总结(MFC消息、DriectInput、钩子)),说明了为什么要使用低级钩子来换取;
⑤ 鼠标键盘的控制信息传输采用了UDP,在Lan.cpp中实现;
⑥ 为了提高程序的健壮性,使用毫秒级的多媒体测时函数,测量发送、接收花费的时间,做到心中有数;
⑦ 【远程终端】把收到的压缩位图,解压后,使用函数GetHBmp得到HBIMAP,并使用一个位图控件做显示。
使用时,先将每个程序的IP地址设一下(每个程序有两处IP需要设,IP指的是都是对方的IP地址),先运行【远程终端】,再运行【主机】程序。
热心网友
时间:2023-07-12 05:30
1。你和对方机器建立一个Socket链接(协议估计是tcp/ip这种有状态协议)
2。在本地虚拟一个对方的系统
3。对方系统会在这个socket链接上实时给你发送目前他系统状态数据
4.你收到数据,本地虚拟的系统通过这个数据还原对方系统操作(包括图象和操作等等)
5。你在本地操作这个虚拟的操作系统。又会发送数据命令到对方机器,
6。对方机器接收指令,通过Hook (底层钩子),等操作系统,
7。然后重复流程3,循环反复
其中应用的技术
1。SOCKET
2.Hook钩子
3.虚拟技术(window虚拟不了linux,所以也就无法远程,欧linux支持SOCKET吗?不得而知)
4。传输(需要用增量传输,没研究过)
认为是不停的整屏传输截图的,是想当然了,呵呵,除非系统疯了(即使还原了图象,操作也无法还原)
热心网友
时间:2023-07-12 05:31
1.利用系统自带的3389端口和远程桌面,被控制机器必需开启相关服务和3389端口,当然也可以改成其他端口;2.安装第三方软件,QQ,Radmin等都可以,QQ等通讯软件需要被控制机器发出远程协助并申请控制请求才可以操控,而Radmin这类可以在被控制机器无人的情况下同步操作,如果想用的话推荐使用这个,安装简易,控制方面,还有文件传输功能等。3.通过其他黑客软件实现,也属于第三方软件,这类软件比较多,各大黑客网站都有。只要是联网的机器,开启了相关服务和端口就可以实现远程控制,端口不是固定的,看各人设置。
热心网友
时间:2023-07-12 05:31
远程控制是说有控制权限的人可以远程控制一些人的电脑,从而实现远距离操作别人的电脑。条件是被控制的人应该给别人相应的控制权限,这些权限要双方协商好了
热心网友
时间:2023-07-12 05:32
用安卓的网灵移动办公软件,可以通过手机,平板,甚至网页控制