《易语言远程控制技术教程》[1].doc_第1页
《易语言远程控制技术教程》[1].doc_第2页
《易语言远程控制技术教程》[1].doc_第3页
《易语言远程控制技术教程》[1].doc_第4页
《易语言远程控制技术教程》[1].doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

传承中华民族文化 发挥母语编程优势 易语言远程控制技术教程(2007年10月第一版)前 言利用远程控制技术对企业管理,可加快我国经济建设的需要。易语言以其易学易用功能完善的功能,从而为企业管理中的远程控制提供了基础的编程条件。本教程从一个基本面说明了远程控制技术的编程环节,可能大家比较感兴趣的是双向通讯技术、自动上线技术、网络通讯协议、内存压缩图片技术、TELNET超级终端等技术,本教程均提供了例程。高级的远程控制技术应用请大家继续学习WINSOCK,API应用,端口映射技术等。对于破坏国家正常经济秩序的黑客行为,本书是严厉批评的。由于黑客技术的发展,远程控制被少数人利用,对国民生产产生了不良的后果。本教程不得不接触到远程控制这个方面,但仅以讨论的形式为大家介绍,并不进行细致的介绍,以让大家对此类黑客技术有所提防。由于本教程中,某程序可能即包含了服务器组件,也包含了客户组件,因此如果用外部流行的“服务端/客户端”提法很容易混淆,因此本书将主动进行控制管理的一方称为:“主控方”,编写的程序为:“主控端”;将被动接受控制的一方称为:“受控方”,编写的程序为:“受控端”。本教材个人可打印一份细看,各兄弟网站可自由转载而不用事先打招呼。版权所有,不得批量印刷即可。作者还要说的话:本教程用了我两个月的时间写完,前期收集例程及写例程用了我更多的时间,特别辛苦。远程控制是把双刃剑,可以好好利用,也可能造成不好的影响。还好作者回头再看本教材后,感觉对于企业内部管理应用还是非常不错的,可以提高中国中小企业的管理水平,但不可能制作成类似于灰鸽子那样的破坏功能,本书没有提供这样的技术,也请大家自重,不要写破坏性的程序。本书使用到大量的例程,足有200MB,还好,书中我基本都提供了下载链接,如果书中没有列出的例程,请大家跟贴指出来,我会补上。我觉得最好的学习方法是先将这些例程收集全了,再一个一个打开看看,基本上就能明白了。目 录目 录1第一课远程控制原理41企业管理的需要42介绍相关管理工具43组件简介6第二课组件选择71数据报72服务器/客户组件83网络通讯支持库84保密通讯支持库95远程服务支持库106网络传送支持库117网络通讯支持库二128表1:网络通讯类支持库组件功能对比表12网络传送大文件丢包的原因13第三课组件构成141用例图1:通讯类(易鸽子,局域网寻呼机,方舟千里眼)142用例图2:聊天室类143用例图3:远程控制154用例图4:远程数据服务(数据库)155采用单对组件166采用多种组件167组件搭配168表2:有易语言源码的远程控制软件对比16第四课通讯协议181指令简介182指令应用18第五课用户连接191连接方式192登录口令203身份验证,MAC和硬盘码20第六课远程监视201“服务器/客户”组件通讯模式202内存压缩图片203“远程服务支持库”21第七课自动上线211数据报广播自动上线212多对“服务器/客户”组件反向扫描上线213服务IP地址自动搜寻自动上线214将IP地址直接绑定在受控端215推举服务器21第八课客户端功能221发送指令222对话聊天223监视屏幕234遥控功能255了解信息及修改信息265TELNET超级终端266文件传输277鼠标键盘录制288隐藏进程289开机启动运行2910正常关机2911多用户识别3012不重复运行3013系统服务权限3014其他功能30第九课服务端功能301安全性保证302用户列表信息323数据库操作344自动生成EXE365跨网远程39第十课捆绑与免杀391捆绑392免杀39第十一课打造超小受控端401请使用斩月工具,去掉易语言的核心支持库。402尽量使用API,这样不带有大量的支持库,体积就小了。41第十二课 一个实例的分析411设计文档41激活客户端过程42客户端上线过程422开机口令423用户列表/选择用户434发送指令435激活用户446发送文件45本书引用例程我收集了一些例程,较多,足有100MB以上,因此只能将例程的地址提供给大家,有需要时大家再自己搜索下载。1易语言自带例程:数据报例程,服务器/客户组件例程,远程服务例程等。2远程桌面易语言论坛搜索,关键字:远程桌面,作者:王军/dispbbs.asp?BoardID=124&ID=136950&replyID=&skin/dispbbs.asp?BoardID=124&ID=110918&replyID=&skin3诺亚远程控制系统论坛搜索关键字:诺亚,诺亚远程/dispbbs.asp?BoardID=124&ID=134465&replyID=&skin4让服务器控件真正分辨多客户,不用客户发送标识/dispbbs.asp?BoardID=124&ID=38916&replyID=&skin5使用GDI+在内存转换图像格式-凌晨孤星/dispbbs.asp?BoardID=124&ID=127301&replyID=&skin6冰河幻灵-鼠标录制程序有几个例程,可搜索易语言论坛关键字:鼠标录制,近在眼前/dispbbs.asp?BoardID=124&ID=110632&replyID=&skin第一课远程控制原理1企业管理的需要利用易语言的远程控制技术,可以对企业中的电脑进行非常方便的管理。典型的类似软件如:QQ的远程协助功能,微软的NETMEETING,PCANYWHERE,还有一些网吧等单位利用远程管理,自动更新客户机的桌面游戏链接,游戏文件大文件的自动更新。有的企业可以远程管理员工的桌面,及时发布企业重要信息,大文件的传输,远程维修客户电脑等。2介绍相关管理工具在企业管理中,实际上已有一些软件了,如:腾讯的QQ,还有CC,以及一些有名的远程管理软件PCANYWHERE;黑客使用远程控制较有名的是:冰河、灰鸽子,任我行等。企业内部使用的还有一些如:局域网寻呼机,内部聊天工具,易鸽子,聊天室等。PCANYWHERE冰河灰鸽子局域网寻呼机易鸽子3组件简介易语言中数据报组件采用了UDP原理的协议。还有采用简单TCP/IP协议的组件,如:服务器/客户组件。保密通讯支持库将TCP/IP协议及安全套接字层/RSA加密技术,两用户之间通讯较好及稳定。而远程服务支持库采用了TCP/IP协议,并且封装了多线程池,支持多用户、多任务、多线程、大文件的数据传输。第二课组件选择下面对易语言中几种远程管理的组件对比介绍1数据报数据报是一种不可靠、小数据量的网络数据交互方式。如果传递的数据量过大,有可能会失败,最好不要超过 127 字节。如需要大数据量或者可靠数据传送方式,请使用基于连接的其它网络组件。数据报组件转输的协议是UDP,也就是说,他的发送量非常小,介绍中说最好不要超过127字节,但在网络稳定的情况下,可以发送200字节不成问题。同时它也是一种不需要握手过程的通讯协议,即:它可以广播发送,这个优势可以利用到局域网中向所有用户发送消息,广播发送的速度也非常快,无需等待。也可以利用这个组件的广播机制,进行快速的连接服务端。即程序中同时使用数据报和“服务器/客户”组件,这样通过数据报通知已下线的客户连接服务器。同时,如果设计得好的话,可以让这个组件自己推举服务器,即查到IP地址中哪一台电脑的IP值最大,找到最大号的,这台就作为服务器使用,或启动“服务器/客户”组件,改由“服务器/客户”组件进行服务。2服务器/客户组件服务器组件是基于连接的网络数据交换的服务方组件,用作在指定端口监视来自客户方的数据。需要采用一台电脑作为服务器使用,其他电脑作为客户机,使用上较为方便,一次最大可发送4380个字节,超过这个字节数,必须使用分包的办法,在接收的用户处再还原包。由于可扩展性非常差,即不支持多用户,多线程,大文件传输入,在用户数量多,数据量大的情况下会产生紊乱,不建议大家用于商业程序中。3网络通讯支持库是服务器/客户组件的升级版。包括了监听等功能。同上,不建议大家用于商业程序中。4保密通讯支持库本支持库实现在网络上保密通讯的目的。由于一些机密数据在网上传输过程中可能会被一些别有用心的人截获破坏,以致对数据的拥有者造成经济上或者是物质上的损失,这样就要求数据在网络上传输的过程中不会被他人利用破坏。本支持库的设计和实现就是为了完成在网络上保密通讯的目的,注意本支持库仅仅是完成对数据在传输的过程中的保护。理论上,在用户的私钥不公开的情况下,该通讯方式是绝对安全的,即使算法的设计者也不能做出任何破坏。本支持库使用也非常简单,在客户端和服务程序连接前,设置好相应密钥,在实际的使用过程中,用户不必关心加密解密的过程,正常发送和接收数据就可以了。为了完全理解该支持库,建议使用者查阅有关“安全套接字层(SSL)”的原理,本支持库就是对该原理的实现。这是一个较好的用于商业的组件,每次最大发送:20480个字节,再大的文件需要自定义分包协议传输,保密性能好。但存在的问题是,多用户机制,及多线程不支持。因此只能作为点对点传输的工具编程,即当用户需要传送时,手工建立两个用户的连接,再进行传输,建议一些保密要求极为严格的商业程序使用本支持库。如军方、政府。5远程服务支持库该支持库提供对服务器端程序和客户端程序的支持。客户端发出请求,服务器端接受到客户端的请求后,就会执行事先设置好的触发函数,在触发函数的方法中就可以分析用户端的请求,然后计算出结果发回给相应的客户端。该支持库的服务器模型支持多用户多任务,内部采用多个线程池协调同步共同完成任务数据的发送接收。本支持库一般可以使用在网络服务中间件,远程调用服务器,分布式计算等等程序的开发过程中。这个支持库是本书重点推荐的一个支持库。支持多用户,多任务,多线程,大文件传送。支持库内部已将多用户计划任务作为线程池保护起来,直接传输完成为止。应用上极为广泛,如:远程监视控制,远程数据服务等。这是个多线程的,使用了4个线程池。建议你使用同步连接模式,这样,客户的每一次请求处理完成后才顺序执行下一个请求,会有一个顺序性。如果你使用异步传输模式 快速的发向服务器 实际上每个发送来的信息都作为一个请求放到了请求列队中。异步连接模式:服务端不会按照发送来的顺序返回信息,造成不便。接受 - 处理 - 返回 就这样一个流程,每个发送的请求都单独处理。你发的又不是数据流,如果你不停的发,服务器就会不停的接收直到请求文本发送结束服务器才处理这个请求。如果你快速的发很多数据造成服务器来不及时处理。缓存大量的请求信息 会造成问题。但是呢,线程数量是能自己控制的,你改成99999,就看你的机器处理能力了。如果你一定要大量的发送请求信息,处理过程很复杂服务器不能及时处理,就会让服务器跨掉。实际上这样的话,服务器的性能达到极限,你还要考虑带宽是否充足哦。同步连接 - 处理客户端主动的请求信息,主动的查询。在有明确查询目的时候使用。异步连接 - 被动等待服务器的信息并做出反应,被动的接收然后响应服务器。在不确定什么时间查询,需要服务器主动联系客户端的时候使用。“服务器.发送文本”第1个参数问题:如果你给的是文本型,就默认是请求代码如果你给的整数型,就默认是客户句柄而“到数值”方法返回的是双精度小数型,因此必须用整数型,可以用“取整()” 命令,或整数型的变量。用以下代码试试:服务器.发送文本 (取整(到数值(列表框1.取项目文本 (列表框1.现行选中项) 千万不能用“到数值()”这样的单一命令放在第一个参数中,因为“到数值()”返回的是双精度小数型。因此还要用“到整数(到数值()”这样的命令方式。6网络传送支持库本支持库实现对多种协议断点续传下载与FTP上传的支持,并提供了丰富的设置方式。当前版本支持HTTP,FTP,MMS多线程下载及断点续传,以及对RTSP协议的单线程下载及断点续传。用户可以根据各自的主机及网络情况进行设置,本支持库可以运行在linux下.详细情况参见例程,注意:当前版本使用了映射文件模式,并且是一次全部映射的方法。所以最大传送不超过一次映射文件的长度。这个支持库主要是应用于FTP,需要FTP服务器。易语言中有现成的例程,在远程控制中,用于客户端的自动上线功能。7网络通讯支持库二本支持库实现了对原始套接字和ARP协议的支持。通过原始套接字,我们可以更加自如地控制多种协议,而且能够对网络底层的传输机制进行控制;ARP(地址解析协议),就是将网络层(IP层,也就是相当于ISO OSI 的第三层)地址解析为数据连接层(MAC层,也就是相当于ISO OSI的第二层)的MAC地址。这个支持库使用较为自由,但必须要熟悉相关的网络通讯协议,如果你对其中的协议都了解了,使用这个支持库就简单了。8表1:网络通讯类支持库组件功能对比表表1:网络通讯类支持库组件功能对比表使用组件优点缺点性能比较系统核心支持库:服务器/客户简单易用传送量小最大发送:4380个字节是否稳定:一般自动分包:否,需要自定协议最大连接客户数:未统计外网可用:未测试系统核心支持库:数据报极易使用传送量小,不稳定,发送出去不检查最大发送:最好不要超过127个字节。经试网络稳定时可发送200个汉字是否稳定:不稳定自动分包:否,需要自定协议最大连接客户数:未统计外网可用:未测试网络通讯支持库:网络服务器/网络客户端较易使用,可监听传送量小最大发送:20480个字节是否稳定:稳定自动分包:否,需要自定协议最大连接客户数:未统计外网可用:未测试保密通讯支持库:保密服务器/保密客户端保密,小范围保密转送文件,RSA加解密方法较繁琐,多客户可能出错最大发送:20480个字节是否稳定:很稳定自动分包:否,需要自定协议最大连接客户数:未统计外网可用:未测试远程服务支持库:远程服务/请求客户端支持多用户多任务,采用多个线程池协调同步一个线程池占用四个线程,开多了也有问题最大发送:不限字节是否稳定:极稳定自动分包:自动分包最大连接客户数:未统计外网可用:未测试网络通讯支持库二较自由需了解现有通讯协议与协议有关网络传送支持库FTP,可断点续转需要开FTP与FTP协议有关网络套接字通信支持库非官方与网络套接字协议有关9网络传送大文件丢包的原因不外乎以下几个原因:1单用户分包问题:小量字节发送以上组件完全没有问题,但如果通讯内容超过了最大发送的范围,就只能通过分包传送解决。正确的方法是:分包时就要制定一个转送的协议,简单地就是在每个包前面加个标记和序号,有的还加上MD5码以检查是否传送完整,整个多少包的信息等,然后在服务端组织收包的工作。有的用户传送时只与一个用户通讯,并通过延时解决交叉传送互相影响的问题,不太科学。延时相对就时间长,时间长不一定不好,就看你能不能有信心等下去了。2多用户分包问题:第二个原因是用户多,即使分包了,也不一定能正常转送完整,还要回过头来进行检查是否丢包,如果有丢包就要回头重新传,最后合并为一个文件。并发的用户乱传包,你受得了吗?需要写程序实现多用户多线程序操作,工作量不小。最好组件能自己建立线程池,自己组织收包的工作。3支持库有BUG,如:有人说发一个包,接收方却收到两个包。还有支持库运行时间长了,会有各种问题,开一天,开一个星期,开一个月长时间的测试看看。总结:实际上,易语言核心支持库中的三个组件只能学习用,或发一些简单的指令什么的可完全胜任,简单的制作个QQ登录什么的,到此为止吧。网络通讯支持库也只是个没有组件界面的简单升级版而已,浪费编程人员很多时间。如果要实战,那么单用户大文件传送请直接考虑保密通讯支持库,多用户大文件传送请直接考虑远程服务支持库。不要多想了,立即行动吧。第三课组件构成1用例图1:通讯类(易鸽子,局域网寻呼机,方舟千里眼)寻呼机通讯上线下线聊天2用例图2:聊天室类聊天室服务器启动列表踢出客户端管理员用户上线下线聊天改名客户端客户端3用例图3:远程控制远程控制启动服务器管理员列表发命令客户端客户端上线下线客户端用户聊天交互4用例图4:远程数据服务(数据库)远程数据服务服务器启动列表数据库客户端管理员用户上线下线显示传数据客户端客户端5采用单对组件基本上编程人员在确定自己选用哪一种组件后,就固定在程序中只使用这种组件,编程上就较为简单。但一些受单一组件限制的功能就无法解决,复杂一些的功能可能也难以应用,如:服务端必须先上线再让客户机上线,服务端上线后不允许掉线,服务端掉线后,客户端必须重启等。这样在单一组件的模式下,总是很难完成一些“自动化”的任务。如果用时钟总是去偿试连接,可能造成网络资源的占用。有时就会产生反向连接的状态,即客户端使用的是服务器组件,而服务端使用的是客户组件,这在一些黑客软件中采用比较多,但6采用多种组件在这里是将组件的类型扩大化了,实际上,采用了这样一种策略,即自动上线即采用了数据报,也采用了服务端/客户反向连接,以及远程服务反向连接,和FTP网络地址的方式。最终的通讯还是使用远程服务支持库来实现。即自动连接是由不同组件完成的,连接后的操作权交由远程服务来完成。特别注意的是,这里用数据报进行了广播形式的激活,这种方法速度非常快,在局域网内非常有效,而用英特网的IP地址的方法将服务端的IP地址告诉客户机的方法非常适合英特网用户使用。7组件搭配如果限定了在只在局域网内进行远程服务,那么采用:数据报激活+服务器/客户反向激活+远程服务支持库提供服务比较好。如果是在英特网的广域网上使用,可以采用FTP,及网页上存放服务端IP地址的方式,或远程序服务支持库反向激活的方式进行激活,激活后的权限交由远程程序支持库操作比较好。8表2:有易语言源码的远程控制软件对比功能列表非雪之恋远程控制方舟千里眼诺亚远程控制蝶蝶不休远程控制好人好远程协助yok9金立远程控制云霄远程精灵连接方式一种三种一种一种一种一种一种连接密码无无有无无无有使用组件服务器/客户(反向)服务器/客户/数据报服务器/客户(反向)服务器/客户服务器/客户远程服务并行同步远程服务并行异步受控端隐藏进程模块中引用DLL不隐藏模块中引用DLL直接调用DLL受控端开机启动注册表方式注册表方式主控端生成受控端有有自动上线数据报有手工设置有有远程卸载有自杀程序有指令集/指令发送有有,带参数有,较多有文字聊天类QQ有有有捕获屏幕/连续监控九画面监视墙小屏幕有连续/分包有有即时视频传输有即时语音聊天TELNET超级终端有查看受控端系统信息有查看受控端文件系统有有查看受控端注册表有查看受控端剪辑板有查看受控端进程有有有共享/上传下载文件有上传大文件可以下载大文件可以记录键盘有可以记录鼠标操作检查插入光盘/通知检查插入U盘/通知远程录像远程控制鼠标动作指令方式有发动肉鸡攻击自动免杀自动捆绑FTP操作界面简单界面QQ界面界面漂亮蝴蝶界面太差皮肤漂亮还行评语入门级值得学习进阶级部分学习不容易值得学习功能较全9实用例程简介非雪之恋远程控制这是一个极简单的远程序控制系统,采用了常见的“服务器/客户”反向连接的方式。一些常用的命令列在界面中,操作简单方便。方舟千里眼采用了两对“服务器/客户”组件互相连接,以及用数据报发布广播自动上线功能。特点是采用“服务器/客户”实现了远程监控,及九画面监控墙的功能。有类似于QQ聊天的窗口。自动上线找用户,非常方便。诺亚远程控制类似于灰鸽子的界面,采用了常见的“服务器/客户”反向连接的方式。实现了简单指令集的功能。较为简单。蝶蝶不休远程控制采用了常见的“服务器/客户”正向连接的方式。可学习的地方是对进程及键盘鼠标的监视功能。好人好远程协助采用了常见的“服务器/客户”正向连接的方式。是参加易语言大奖赛未得奖的作品,主要是写得太乱了。对远程注册表、进程管理、鼠标控制都有较好的支持。yok9金立远程控制采用远程服务支持库,并行同步发送数据。主控端可生成受控端EXE文件。最重要的是对TELNET超级终端的支持。以及远程进程方面可以学习。还带一个漂亮的皮肤。云霄远程精灵采用远程服务支持库,并行异步发送数据。功能较为全面,如:聊天工具也有,也可以查看受控端剪辑板,生成受控端EXE文件,远程注册表,进程管理、鼠标控制等。第四课通讯协议1指令简介按形式分,可分为:简单指令、复合指令、复杂指令按内容分,可分为以下:1)文本指令/多文本指令2)指令文本+字节集3)指令文本+字节集+指令文本4)指令文本+字节集+间隔符号+字节集+间隔符号2指令应用1)简单指令:文本指令/多文本指令发送一些简单的指令,如让客户机电脑重启,开启光驱等。如果带有参数,后面可跟着其他指令文本,中间用分隔符分隔。主要用于单个指令。例如:打开光驱也可用于组合指令,或带有参数的。例如:“鼠标移动|30|20”例程:参见“诺亚远程”中的说明文档(诺亚指令集)。2)指令文本+字节集主要用于传输入文件,如数据库,配置文件,图片文件等。前面的指令文本可用复合指令,可包含文件名的信息等。大文件传输入时,在用远程服务支持库时可以直接采用这种方式。在分包的情况下,也可以这样传送,但在指令文本处标记当前是哪一个包号,甚至将单个字节集的MD5码也放在指令文本中发送,以进行验证数据完整性。也可以将整个字节集的MD5码进行数据完整性验证。主要用于大文件整包发送。例如:“保存文件|”+文件名+“|”+文件字节集或分包发送时代用。例如:“保存文件|”+文件名+“|包1|共10|”+MD5码+“|”+文件字节集3)指令文本+字节集+指令文本这里主要用于对传送字节有限制时,要将传送的文件的前后加上标记,这样用户端接收到之后,就可以还原文件了。必要时,需要将整个字节集的MD5码放在指令文本中,以进行验证数据的完整性。主要用于大文件分包发送时的指令。例如:“图片开始”+图片字节集+“图片结束”“文件开始”+文件字节集+“文件结束”例程:指令文本+字节集+指令文本:请参见诺亚远程中的传送接收图片部分。4)指令文本+字节集+间隔符号+字节集+间隔符号这里主要是多文件传送,如一个数据库还带有索引及备注库,这样最好是一次性地传送过去。或其他特别的场合用上。第五课用户连接1连接方式正向连接:就是管理员使用的组件是服务器组件,用户端使用的是客户组件。这时,客户组件需要知道服务器组件的IP地址,同时需要服务器组件先上线,以取得握手。反向连接:这是黑客一般使用的,即用户端使用的是服务器组件,而管理员使用的是客户组件,这样管理员可以非常方便地与用户连接。一般来说,原理就是这样,采用何种连接方式都是可以的,主要在于编程人员怎样克服困难了。如正向连接时必须服务器先上线,这个可以克服的,服务器后上线时,可以将IP地址放在网上或某台电脑上,用户可以定时去取,以自动激活上线。或用数据报广播让客户端上线。如反向连接时,不知被控端的IP地址,主控端需要扫描网络,以知道哪台被控端电脑上线了,这时可以通过被控端用户发送EMIAL或FTP消息通知主控端管理员有人上线了。如反向连接时,不能直接广播,可以用循环命令,依次向受控端尝试连接。2登录口令为安全起见,有时通讯组件的端口可能会被检查人员查到,或正好遇到某个端口号与其他软件重复,因此在握手连接时,需要加上用户名和口令,以示区别。3身份验证,MAC和硬盘码每台电脑的IP地址及用户名都是可以换的,而且换起来非常方便。为安全管理,IP地址应该绑定一些硬件才行,这样网卡的MAC地址是比较固定的,如果可能,也可以与硬盘码、硬盘序列号、CPU序列号、BOIS序列号绑字在一起。同时要注意,如果绑定时取不到硬件号,一定要做好容错处理,可以默认一个固定的序列号。第六课远程监视1“服务器/客户”组件通讯模式“服务器/客户”组件只能用于发送小于4380字节的通讯,因此对于超过4380字节的大图片,操作上就需要分包传输了。例程参见:诺亚远程中的图片传输部分。2内存压缩图片使用“快照()”命令,所取得的字节集是BMP格式,非常大,如果直接传,将大量占用网络资源。因此要压缩成JPG图片格式,传统的,要将BMP保存到硬盘上,形成BMP文件,再转换为JPG格式,才可以传送,这样是十分麻烦的。因此有没有办法直接在内存中压缩为JPG格式呢?可以的,请使用凌晨孤星发的“使用GDI+在内存转换图像格式”例程,在论坛上可以搜索到的。例程参见:使用GDI+在内存转换图像格式.RAR3“远程服务支持库”由于远程服务支持库支持大文件传输,因此不用分包传图片,而且还支持多用户 ,多任务,多线程,是进行远程桌面监视的好工具。例程参见:第2课_基本组件例程河童-远程桌面主控端-远程.e例程参见:第2课_基本组件例程河童-远程桌面受控端-远程.e第七课自动上线1数据报广播自动上线局域网内可采用“数据报”的广播功能,实现自动上线。下述命令中的第一个参数为空,即是广播发送。对象发送数据 (文本型 接收主机地址,整数型 接收主机端口号,通用型 欲发送数据)2多对“服务器/客户”组件反向扫描上线即用户端使用的是“服务器”组件,而主控端使用的是“客户”组件,通过对IP地址的顺序连接,实现自动上线。缺点:扫描时间非常长,有时电脑像死机一样。减少连接时间的办法是采用多线程,ARP技术实现快速扫描在线客户,然后再对在线客户连接,实现自动上线。3服务IP地址自动搜寻自动上线可建立FTP,将服务器的IP地址放在上面,受控端自动查找,每间隔一段时间自动连接。或将服务IP地址放在网页上,由受控端读取,自动连接。4将IP地址直接绑定在受控端将主控端的IP地址直接写在受控端,生成EXE可执行文件,供受控端使用。5推举服务器推举网内最大的一个或最小的一个IP地址为服务器。此服务器如果下线,就根据规则再推举一个为服务器。第八课客户端功能1发送指令如:鸣叫,鼠标,信息框黑屏、锁定、重启、关机、光驱、启动运行、定时运行、关闭运行在客户端一般要实现的功能就是发送指令。由受控端接收指令后运行指令。或简单地弹出信息框;有时指令带有参数。参见表2中大多数例程。2对话聊天即实现类似于QQ聊天的功能,实现对话通讯的功能。参见表2中具有聊天功能的例程。比较好的一个聊天工具例程是“方舟千里眼”,特点是:不使用专用服务器,而可以直接聊天。此外,比较专业的还有EQQ,竹林聊天室等。3监视屏幕即实现类似于QQ的远程协助功能。“服务器/客户”组件可以实现抓取远程屏幕的功能。使用分包发送可传送大图片。参见“河童远程桌面”例程。也可直接使用远程服务支持库,支持多任务,多线程,大图片传送。参见“远程桌面-你的桌面我作主-王军”例程,特点是:可放大缩小。比较好的是“方舟千里眼”,特点是:九画面监视墙,可放大缩小。提高传输图像的技术,可以采用内存中抓图,内存中压缩图片为JPG图片,内存中转送显示在主控端。如论坛上的例程:“使用GDI+在内存转换图像格式-凌晨孤星”加快图像转输速度的方法还有:不必要每次都传送一张大的全屏图片,而是对前后两张抓图间隔一些点后进行对比,只将不同的画面传过去,相同的就不传了。因为电脑相对于播放电影来说,屏幕不是经常改变的。例如:将屏幕分成6*8这样的48小块,每小块中取一些点进行对比,这样就知道哪些范围是改过的,哪些没有改过,对于改过的,就取出范围,抓图后传送,这样就节约了转输的数据量。还有将真彩色转换为256色或16色转输,这样也会使转输量小一些。4遥控功能即实现类似于QQ的远程协助功能中的控制功能。实现鼠标和键盘的控制。参见“远程桌面V1.0-你的桌面我作主-王军”例程,特点是:还可输入文字。比较好的是“方舟千里眼”,特点是:带有对方屏幕上的鼠标指针。5了解信息及修改信息了解对方电脑内的信息。如:文件目录信息,电脑系统信息,注册表,内存剪贴板了解目录信息可以帮助我们查看是否有此可执行文件,或资料是否传输到位;上传下载文件等。了解电脑系统信息,可以帮助我们为受控端的程序查错。了解内存剪贴板的内容是为了了解用户操作的步骤。了解键盘输入记录,是黑客需要知道一些游戏的口令等。了解注册表是为了修正客户注册表中的问题。参见表2中相关软件源代码。少少-少图5TELNET超级终端TELNET超级终端,即象在自己的电脑中操作DOS控制台一样。表2中“yok9金立远程控制”软件提供了TELNET的功能,非常值得大家学习。主要是采用了通道技术,因此反应非常快,象在操作自己的电脑一样。大家也可以使用模拟DOS的技术,取得DOS的反馈信息来实现这个效果。6文件传输即实现类似于QQ中的文件传输功能,甚至还可以远程更新程序,远程运行程序,资料传送,FTP下载等。大文件转输一般采用远程服务支持库,优势是多用户,多线程,多任务,大文件。而采用“服务器/客户”这样的模式,不是不可以,就是当用户多时,就会非常混乱,特别是网络非常繁忙的时候。下面是一个采用“服务器/客户”组件发送及接收的代码,可以看到如何收包还原为一个完整数据包的。7鼠标键盘录制可参见参赛作品“丁坤屏捕”,论坛例程“近在眼前键盘&鼠标录制、回放例程(正规方法并带记录保存)”8隐藏进程有时为了不让用户意外终止受控端的运行,需要将受控端的进程隐藏起来。隐藏进程:参见表2中相关例程。9开机启动运行一般使用了写注册表的形式实现开机时启动运行:写注册项 (#本地机器, “SOFTWAREMicrosoftWindowsCurrentVersionRun你的受控端程序名”, 取运行目录 () “” 取执行文件名 ()删除命令是:删除注册项 (#本地机器, “SOFTWAREMicrosoftWindowsCurrentVersionRun你的受控端程序名”)看看下面是“韩非-非雪之恋远程控制系统”中的代码,比较厉害:注册系统进程 (取当前进程 (), 1)隐藏系统进程 ()复制文件 (取当前目录 () “” “soft.exe”, 系统目录 “.exe”)复制文件 (取当前目录 () “” “soft.exe”, “C:windowsdll.exe”)写注册项 (#本地机器, “SoftwareMicrosoftWindowsCurrentVersionRun ”, 系统目录 “.exe”)写注册项 (#本地机器, “SoftwareMicrosoftWindowsCurrentVersionRun ”, “c:windowsdll.exe”)写注册项 (#本地机器, “SoftwareMicrosoftWindowsCurrentVersionRunOnce ”, 系统目录 “.exe”)写注册项 (#本地机器, “SoftwareMicrosoftWindowsCurrentVersionRunOnce ”, “c:windowsdll.exe”)写注册项 (#本地机器, “SoftwareMicrosoftWindowsCurrentVersionRunOnceEx ”, 系统目录 “.exe”)写注册项 (#本地机器, “SoftwareMicrosoftWindowsCurrentVersionRunServices ”, 系统目录 “.exe”)写注册项 (#本地机器, “SoftwareMicrosoftWindowsCurrentVersionRunServicesOnce ”, 系统目录 “.exe”)10正常关机有时,客户端被设置不能用户关闭,而是存于系统托盘中的,这时如果关机时,将不能自动关机,比较麻烦。请大家参看下面的代码,实现关机正常化:“关闭程序最小化托盘(可以正常关机).e”/dispbbs.asp?BoardID=124&ID=123693&replyID=&skin前段时间写个程序需要点关闭按钮自动最小化托盘,结果程序如果不退出的话,关机都关不了,于是在论坛搜索截获关机消息,就找到了老近的一个例程,改造一下,这个程序关电脑时候就不会关不了啦,今天看到有新手问这个问题,特放上来。11多用户识别“让服务器控件真正分辨多客户,不用客户发送标识.e”/dispbbs.asp?BoardID=124&ID=38916&replyID=&skin基本原理: 一,取出客户句柄 要实现区分多客户,就要知道数据到达的是哪个客户,我们可以利用客户句柄来实现,但易的服务器控件不提供客户句柄,这里我们借用ELib的截获消息来实现,这个很简单,就用 截获消息 () 二、用自己的发送函数。这个实际上是调用Winsock API函数的send函数来实现 具体实现方法请看我上传的示例,示例中提供了按句柄取出客户地址的子程序,可以让你在数据到达事件中取出客户地址。12不重复运行有时,打开两个带有“数据报”组件的程序,会造成端口被占用,发送不正常,因此需要确定,一台电脑只能运行一个服务端,或客户端。防止重复运行的例子已非常多了,大家自己在论坛上找吧。13系统服务权限请参看“yok9金立远程控制-远程服务”的受控端,将自身写到系统服务中。14其他功能还可以让客户端进行以下的行为,取得最大的利益。虽然没有造成破坏,但也会影响网络速度,不建议大家这样做。自动点击广告:点击某个广告页面,增加点击量。弹出通知或广告:企业中弹出一些通知,或更换墙纸功能,网吧中更换广告功能。刷新网页:可以刷新某个网页,使得网页刷新数增加。洪水攻击:不断刷某个网址,造成此网站拥堵。不建议大家这样做。第九课服务端功能1安全性保证1主控端要设置管理员密码,以保证主控端的安全性。2连接时,设置口令,以防止非法用户连接进入。3受控端的安全性:客户端的IP地址是非常方便的更改的,因此需要收集用户的网卡MAC地址,进行绑定验证。或其他硬件信息,如:硬盘序列号,硬盘序列号,BIOS序列号等。在主控端可用一个小型数据库存储进行比对。编程时要注意:这些信息取不出来时的容错处理。易语言的向导可以自动生成密码登录界面,采用MD5比对口令,非常安全,建议大家使用。下面是硬件信息的收集,以和IP地址进行绑定,防止用户改成其他组别的用户,而造成企业机密的损失。2用户列表信息一个好的用户列表,不仅可以非常清楚地知道哪些用户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论