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


    最近没怎么出去玩一直宅在家里搞这个,学习了老狼的教程,照着做了一个,功能差不多都实现了,做这个仅仅是对编程,对安全领域感兴趣做做实验而已。

    采用了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。再连接。

  • 相关阅读:
    像草一样,朝海生长
    那一次,我们属于彼此
    discuz !NT 3.5 论坛整合 .net 网站用户登录,退出
    oracel 10g 网络服务管理: 主机登录
    断章
    屏蔽浏览器左下角的js错误提示
    IE下载的文件自动加上中括号的Bug解决方案
    oracle下重置用户的所有序列
    循环追加表空间的数据文件的存储过程
    查询所有连接到ORACLE服务器的客户端IP地址的方法
  • 原文地址:https://www.cnblogs.com/zylq-blog/p/7224233.html
Copyright © 2020-2023  润新知