1
0ZXYDDu796nVCFxq 2020-09-27 14:44:24 +08:00
|
2
kangsheng9527 2020-09-27 16:52:38 +08:00
其实这些 RDP 编写难度不大, ,,(以前有个人吓唬我以为好难,现在一看还算简单)
客户端普通简单界面 5 万元帮你写一份简单的,完全属于你版权的 RDP,远端是 windows 。。。 原理好简单,截图对比更新相应变化,加入适当加密。。。 如果同时兼容 linux 端请加 8 万,总计 13 万。 客户端服务器同时兼容 windows 、linux 。 再加上 mac osx 端再加 10 万。。。 |
3
s609926202 OP @kangsheng9527 这个得会 c#或者 c++语言吧、
|
4
kangsheng9527 2020-09-27 17:12:23 +08:00
不需要,能截图的语言都可以例如 python 、java 、go 、c 、c++、c#、nodejs 等等。。。
截图然后对比上一张图的变化,有变化的地方就加密传回到客户端,客户端更新变化的地方,所以非常节省流量的,能做到跟 windows 的 rdp 一样的效果。。。 1 年经验就可以做到。 但是要做安全类产品就需要摸熟全套。。。全方位的业务掌握及底层、后门、硬件等问题 |
5
angryfish 2020-09-27 17:55:56 +08:00 via iPhone
@kangsheng9527 看到您的思路,我觉得确实不难了。话说,画面变化对比怎么做的?
|
6
kangsheng9527 2020-09-27 23:35:34 +08:00
@angryfish 服务端,就是放在服务器上的那端负责定时间隔截图例如每 0.1 秒截图一次。
每张截图都是固定大小的,只要屏幕色彩位数不变,像素不变情况下。。。 如: protobuf 定义结构如下, message BytesMessage{ repeated bytes screenBytes = 1; //原始截图数据,第一次带全数据,第二次开始这里为空,节省带宽 map<int, uint32> screenChangedMapIntByes = 2;//protobuf3 没有 uint8,uint8 足够表示,客户端那边转为 uint8 刷入到指定变化位置。用于记录截图那些出现了变化,如果只有第 10 、23[]byte 出现变化那么 screenChangedMapIntByes[9]=uint32(screenBytes[9]),screenChangedMapIntByes[22]=uint32(screenBytes[22]) } //以上设计相对于截图然后将没有变化的位置全部置 0 传输中,在屏幕变化少于一半的情况下是优势的,但是当屏幕变化较大可以采用没变化位置置 0 传输让客户端自己对比上一张截图数据实现更新。。。 //还能压缩一下再传送,这个自己代码中测试。。。 根本不需要其他第三方库或者 sdk 之类。。。完全自己完成所有。。。 |
7
s609926202 OP @kangsheng9527 市面上的远控大多是截图对比这个原理吗?我想着是利用微软自带的 RDP,在 RDP 的基础上集成他们的软件。。。
|
8
kangsheng9527 2020-09-29 13:20:54 +08:00
‘大多’如何实现的不知道,不懂你后半句话意思
|