码迷,mamicode.com
首页 > 其他好文 > 详细

打造一款个人的远程协助软件

时间:2017-07-23 13:35:17      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:消息   做了   txt   test   blog   span   原理   通过   操作   

回到深圳的这段时间一直宅在家里搞这个,学习了老狼的教程,照着做了一个,功能差不多都实现了,做这个仅仅是对编程,对安全领域感兴趣做做实验而已。

技术分享

采用了gh0st开源远控内核,它是一款基于C/S架构的远程管理软件。服务端通过反向连接主控端,连接成功后主控端会提示服务端上线,然后主控端和服务端就能互相传输信息了。并可进行终端管理,进程处理,窗口管理,文件管理,远程桌面,获取视频语音等操作,服务端设置了心跳包机制防止意外掉线。

 

gh0st开源远控内核原理分析:

主控端传输数据使用CIOCPServer类实现。被控端数据传输使用CClientSocket类实现,传输数据之前使用zlib进行压缩,减小数据包的大小,数据传输是远控的核心;

主控端有个回调函数NotifyProc,所有被控端发来的消息都会经过此函数,在该函数中使用switch语句处理各个消息。使得代码看起来井井有条,方便添加减少功能。

被控端功能管理上使用了一个不错的方案。先做一个CManager类作为所有管理功能的基类,其他的管理类比如系统管理类CSystenManager继承CManager,这样处理起来比较方便,增加了代码的重用性,大大减少了代码量;

被控端svchost以系统服务启动,并用心跳包机制防止意外掉线,具有良好的连接稳定性。

 

使用问题:

在局域网中,IP号通常是固定的,但在实际情况中,主控端电脑并不都是固定的IP,比如我们在公司使用同一个路由器,IP是内网IP(192.168.x.x),如果换到咖啡厅上网,IP会变成公网IP。这样服务端就找不到我的IP的。很多远控处理这个问题有两个解决方法:

1.DNS上线

花生壳、3322提供了免费的动态域名服务,也就是DNS服务。把自己的IP绑定到DNS服务器上,被控端通过对DNS的解析,找到主控端的IP连接。下次换地方上网,只需更改一下自己绑定到DNS服务器上的IP即可。

2.FTP(HTTP)上线

我们把自己的IP写入一个文本文件test.txt,放在ftp(http)服务器上,比如ftp://leavesongs.com/test.txt。被控端去下载该txt,在其中找到主控端的IP。再连接。

 

打造一款个人的远程协助软件

标签:消息   做了   txt   test   blog   span   原理   通过   操作   

原文地址:http://www.cnblogs.com/zylq-blog/p/7224233.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!