对别人计算机屏幕监视(黑客教程)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC++实现对远程计算机屏幕的监视

天极网2005-06-07 08:28

分享到:我要吐槽

摘要:本文介绍了一种通过套接字网络编程和屏幕捕获技术实现的对远程计算机屏幕进行监视的方法。

关键词:套接字;屏幕捕捉;远程监视;网络

前言

在实际工程中,经常有施工现场和控制中心不在一起的情况,在这种情况一般多由工程技术人员往返穿梭其间来实现对远程施工现场的情况了解和对控制中心的矫正控制。显然这种工作方式的效率是很低下的,没有充分发挥计算机网络的强大优势,其实通过网络编程完全可以使技术人员在控制中心对位于工程现场的远程计算机实施监视和控制。虽然互联网上有不少远程终端控制软件如"超级间谍"、"冰河"等,但由于其带有黑软的性质,不能保证其在编程时没有留有其他后门,因此从计算机安全的角度出发应当自行开发此类软件。为避免本文所述技术被用于制造黑客类软件,本文将不准备对远程终端的控制部分做进一步的介绍,而将重点放在对远程计算机屏幕界面的监视上。1 数据信息在网络上的传送

由于本地计算机是通过网络来对远程计算机实施监控,因此需要对网卡进行编程以实现往来于双方的数据信息在网络上的顺畅通讯。可供选择的方案有套接字、邮槽、命名管道等多种,本文在此选用开发和应用都比较灵活的流式套接字作为网络通讯的基础。考虑到实际情况,远程被监视主机随时为本地监控主机提供屏幕信息的服务,因此整个系统可以划分为两大模块--服务器端和客户机端,分别运行于远程主机和本地监控主机,由客户机向服务器发出连接请求,在建立连接后由服务器定时发送远程屏幕信息给客户机,客户机接收到服务器发来的数据后将其显示在本地主机。

至于用流式套接字对网络进行编程的主要过程可用下图来表示。服务器方在使用套接字之前,首先必须拥有一个Socket,可用socket()函数创建之:

其中AF_INET 和SOCK_STREAM指定了创建的是采用了TCP/IP地址族的流式套接字。该套接字实际上是提供了一个通信端口,通过这个端口可与任何一个具有套接字端口的计算机实施通信。一旦获取了新的套接字,应立即通过bind()将该套接字与本机上的一个端口建立关联。需要预先对一个指向包含有本机IP地址和端口信息的sockaddr_in结构填充一些必要的信息,如本地端口号和本地主机地址等,并通过bind()将服务器进程在网络上标识出来:

面窗口指针并建立一个与之兼容的设备环境,然后创建一个与桌面窗口指针相兼容的内存位图并以位图的形式将屏幕图像拷贝到新创建的位图之中:

至于监控中心对现场主机的远程控制,则主要是通过向对方程序发送用以标识消息的数据并在远程主机接收完毕后用SendMessage()向指定窗口发送消息来完成的,可用CreateProcess();来启动现场主机的程序以响应消息。由于该部分技术亦可用来编写黑客软件,故本文在此不便作进一步的描述。

小结:

本文主要针对基于流式套接字的低层网络通讯模块和建立在该模块基础之上的屏幕截取和复原技术的设计、实现作了较为详细的介绍。本文所述监控系统在实际应用中取得了较好的效果。使工程技术人员能在控制中心及时了解到位于工程现场的计算机屏幕上的指示图表的动态显示,并根据监视结果作出及时的决策。本文所述程序在Windows 2000 Professional下,由Microsoft Visual C++编译通过。

相关文档
最新文档