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