免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3527 | 回复: 0
打印 上一主题 下一主题

用UDP协议实现远程监视屏幕 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-09 00:25 |只看该作者 |倒序浏览
这篇文档原来是\"用UDP协议的木马编写方法(Delphi版)\",为了实现真正的C++Builder研究。我将他改成了CB版。呵呵。版权的没有。\r\n\r\n  木马的一个很重要的功能就是远程监视屏幕,下面的文章讲述了怎样利用UDP协议来实现,而不是我们通常用到的tcp/ip协议,很有特色,值得一学。\r\n\r\n  一、软硬件要求。\r\n\r\n  Windows95/98/2k对等网,用来监视的计算机(以下简称主控机)和被监视的计算机(以下简称受控机)都必须装有TCP/IP 协议,并正确配置。如没有网络,也可以在一台计算机上进行调试。\r\n\r\n  二、实现方法。\r\n\r\n  编制两个应用程序,一个为VClient.exe,装在受控机上,另一个为VServer.exe,装在主控机上。VServer.exe指定要监视的受控机的IP地址和将要在受控机屏幕上抓取区域的大小和位置,并发出屏幕抓取指令给VClient.exe,VClient.exe得到指令后,在受控机屏幕上选取指定区域,生成数据流,将其发回主控机,并在主控机上显示出抓取区域的BMP图象。由以上过程可以看出,该方法的关键有二:一是如何在受控机上进行屏幕抓取,二是如何通过TCP/IP协议在两台计算机中传输数据。\r\n\r\n  UDP(User Datagram Protocol,意为用户报文协议)是Internet上广泛采用的通信协议之一。与TCP协议不同,它是一种非连接的传输协议,没有确认机制,可靠性不如TCP,但它的效率却比TCP高,用于远程屏幕监视还是比较适合的。同时,UDP控件不区分服务器端和客户端,只区分发送端和接收端,编程上较为简单,故选用UDP协议,使用C++ Builder 6.0提供的TNMUDP控件。\r\n\r\n  三、创建演示程序。\r\n\r\n  第一步,编制VClient.exe文件。新建一个Application,将默认窗体的Name属性设为“Client”。加入TNMUDP控件,Name属性设为“CUDP”;LocalPort属性设为“1111”,让控件CUDP监视受控机的1111端口,当有数据发送到该口时,触发控件CUDP的OnDataReceived事件;RemotePort属性设为“2222”,当控件CUDP发送数据时,将数据发到主控机的2222口。\r\n\r\n  在Unit1.h中加入变量定义\r\n\r\n  TMemoryStream *BmpStream; //将屏幕保存在流中\r\n\r\n  long LeftSize;  //发送每一笔数据后剩余的字节数\r\n\r\n  void __fastcall TClient::ScreenCap(int LeftPos,int TopPos,int RightPos,int BottomPos); //自定义抓屏函数\r\n\r\n  在Unit1.cpp中加入\r\n\r\n  #define BuffSize 2048 //发送每一笔数据的缓冲区大小\r\n\r\n  在Client的OnCreate事件添加代码:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP