@@@@@@@@@@@@@@@@@@@@@@@@@
怖客官方网站:www.bkhack.com 怖客群:50246933
TOP技术社区: www.topjishu.com
@@@@@@@@@@@@@@@@@@@@@@@@@
视频教程下载地址:http://www.topjishu.com/thread-21-1-1.html
by:lxsky(怖客) QQ:86717375
大家好,我是lxsky.这篇文章是<怖客delphi黑客编程培训课程>的辅助内容。不知道各位是否了解远控软件的运
行原理.编写远控,我们就必须要知道它的原理才能够开始编写.
下面我就来简单介绍一下远程控制软件.
远控软件分为客户端(控制端)与服务端(被控端).这节主要来看看服务端
服务端启动后,首先到指定网页读取控制者的IP地址,然后连接,连接不成功则反复连接,直到连接客户端成功
,然后等待客户端命令,执行后把结果返回客户端.
看了上面的分析,我们知道:要想客户端成功管理服务端主机,那么服务端在启动后就必须知道客户端主机(控
制者主机)的ip地址,之后才能够链接.而我们的IP地址是变化的,拨号上网的IP是动态的,并且,就算我们有了
静态IP,如果我们出门了,到其他地方上网的话,服务端就无法连接我们,上不了线了.所以,我们不能把IP存到
服务端里,而是需要构造一个我们能够控制的“中转站”.
当我们更换了IP,就把新的IP地址告诉“中转站”
服务端每次启动后就到“中转站”获得我们的IP地址,连接我们。
常见的中转站有“网站空间”。“动态域名”.
也因此,远控中就有了“IP更新”的概念,一般分为网页文件更新法和动态域名更新法.
网页文件更新法就是服务端到指定网页文件读取其中的内容,内容就是IP地址.并且控制者能够随意修改这个文件
的内容(IP) (需要购买虚拟主机/服务器/网站空间)//今天我们就是修改此方法!
动态域名更新法就是服务端解析动态域名所指向的IP地址,而控制者能够随
意更改这个域名所指向的IP地址.(可以申请希网动态域名)
对于常见远控中的上线功能,我一直不是很满意,特别是第一种,需要购买
网站空间.我倒无所谓,但对于不是站长的朋友就悲剧了(免费空间?那是
悲剧)
所以....我们要改进!知道了远控的原理,那我们就可以改进它了。首先我们改改它的上线方式.
我们要实现的功能就是上线不需要买空间,不需要动态域名.我们可以使用
任意一个网页上线,如:网易博客,百度空间,论坛等等!
让服务端每次启动后到指定网页读内容,或如特定部分内容(ip)。
实现代码很简单.我编写了一个示例程序,
我在本地用小旋风搭建好了ASP服务器环境,网站地址暂时用http://localhost代替。
我在根目录创建了一个文本文件,ip.txt,我们访问试试
内容为:gdgdgrfgrdgdhhbfdbfdbxbaaaaaa127.0.0.1bbbbbbbtrbfcxbedrg5641561z5d151g561zswegdxg
六个a,6个b,之间的内容就是我们的IP地址.而我们今天要实现的,就是读取其中的IP内容
【使用idhttp控件】
程序代码为:
procedure TForm1.Button1Click(Sender: TObject);
var
str,ret:string;
i1,i2:integer;
begin
str:=idhttp1.Get(edit2.text); //获取网页内容
i1:=ansipos('aaaaaa',str)+length('aaaaaa');
i2:=ansipos('bbbbbb',str);
ret:=copy(str,i1,i2-i1); //ret的值就是ip地址内容.
edit1.Text:=ret;
end;
是不是很简单?上面这段代码就可以读取任意网页在字符"aaaaaa"到"bbbbbb"之间的内容了.我们可以在网易/百
度空间发布文章,在文章中加入”aaaaaa你ip地址bbbbbb“,当IP变动后,修改文章即可,也可以在个人资料里
构造.我们来看看效果
在远控编写的实际运用中,我们可以这样:
在程序的formcreate事件中自动获取客户端IP地址.用一个变量保存IP内容.
然后,在TIME1.time事件中设置clientsocket控件的host属性的值为变量保存IP内容......这样就ok啦!
注:本文主要是实现远控的另一种上线方法和给出一种思路.远控具体编写请看怖客delphi黑客编程培训课程.
学习delphi编程基础请到怖客或TOP技术论坛查看【怖客+TOP技术社区】《delphi编程培训教程》
完!
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。