分享一个远程控制软件源代码

开门见山给地址
下载链接

效果如图所示
分享一个远程控制软件源代码_第1张图片

代码是2013年研究远程控制软件的时候基于gh0st3.6的源代码上面修改的。没有怎么去优化,也不免杀,有很多Bug遗留。放出代码也仅仅是为了给远程控制爱好者作为入门级的参考。

因为现在很久没有用C++做windows上面的开发了。电脑上也没安装visual studio。就简单的介绍下这个代码。运行目录如下图所示
分享一个远程控制软件源代码_第2张图片

使用方法
在控制端运行Gh0st.exe程序。
分享一个远程控制软件源代码_第3张图片
上线地址填写控制端所在的IP地址。(新手要注意内网和外网的区别!没有外网IP的,可以研究下向日葵内网上线的课题,这里就不引述了。)
反正也只是用于学习远程控制软件的运行机制,所以默认的端口和一些参数就不用改了。

点击生成服务端。(记得一定要关闭杀毒软件呀!什么361,卡巴死你之类的都给他关掉,服务器端记得关闭防火墙。)。

生成服务端后,就在当前目录下生成AeroServer.exe程序。

双击AeroServer.exe,就会发现在Gh0st3.8主界面中已经上线了。

软件运行的大概流程是很清晰的:

1.服务器端(控制机)Gh0st采用windows环境下的高效完成端口IOCP来处理网络数据,启动程序后IOCP初始化并监听1990端口,等待连接和处理网络数据。
2.客户端(肉鸡)被运行后,去连接指定的上线IP/或域名对应的端口(这里是1990)。
3.连接成功,运行在肉鸡上的程序和服务端里应外合。开始黑暗的特洛伊之旅。

指令流程:

控制机发送一条指令给肉鸡,在我们这个代码中就是 Gh0st.exe 发送指令到AeroServer.exe
肉鸡接收到这条指令后。解析对应的指令,然后执行相应的命令
执行完的结果进行回传给控制端。控制端才知道执行的结果是成功抑或是失败。

需要解决的问题:

1.网络数据包的传输
windows网络编程,需要解决数据粘包问题,需要解决掉线重连的问题。需要解决网络延时问题。

2.远程屏幕的查看。原理是被控端程序扫描整个屏幕,生成一张图,将这张图压缩后通过网络传输到控制端。控制端收到这个网络包,通过网络协议中的约定去解析。发现是一个远程桌面信息的包,解包后在本地进行展示。绘制出这张图。大家知道24帧/s的速度就能够产生连续的动画。在远程控制中也是这个原理,不间断的更新远程桌面,就能够产生连续的视觉效果。

如果想要了解更多的方法,可以去了解远程控制软件VNC。它的远程帧缓冲。查看这里了解远程帧缓冲相关的文章

3.在远程屏幕的传输中,屏幕扫描算法非常重要。因为它影响到传输包的大小、频率。比如被控端桌面长期保持不变,还有必要进行全屏扫描吗?比如被控制端桌面只开了个小的聊天窗口,其他的全都没有变化,如果只扫描、变更那个聊天窗口的内容,需要传输的网络数据是否就会少很多,在同等的带宽下,会让画面更清晰流畅?所以我们用不同的远程控制软件,会感觉有不同的控制效果。有些远程控制界面卡、画质渣。而有些效果就很好。流畅、反应迅速。比如teamview,windows自带的mstsc工具等。

远程控制软件中需要解决的问题有很多。涉及到系统的方方面面,除了网络传输,数据压缩,音视频的处理,服务器编程,EXE文件格式的处理等等。这不是一篇文章所能概述完成的。有兴趣的朋友可以自行了解相关的知识。

witch_soya
2016年11月19日10:00:15

你可能感兴趣的:(远程控制)