IE盒子

搜索
查看: 146|回复: 1

使用易语言开发一款远控软件

[复制链接]

1

主题

8

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2022-12-19 10:19:07 | 显示全部楼层 |阅读模式
界面/功能实现

远控为C/S结构,主要功能实现都在服务端,而客户端则根据收到的指令进行对应的操作, 下面是本文要实现的功能;
1. 服务端

  • 主机信息
  • 命令执行
  • 端口扫描
  • 键盘记录
  • 开机启动
  • 文件上传
  • 屏幕监控
2. 客户端
根据服务端指令进行相应操作
功能实现

先把大体界面画出来,用到以下组件:选择夹、超级列表框、服务器、客户、状态栏等等
主机信息

客户端:



2022-07-18-14-06-45-image.png

客户端上线后发送数据 "加入连接+主机名" 到服务端,如:加入连接admin;便于服务端取数据进行数据操作区分


上线

服务端:使用超级列表框组件对上线主机进行展示,并添加一个服务器组件


当服务端数据到达时取回数据,并以每个汉字2字节的大小来提取标志位✅,也就是8字节的“加入连接”来判断客户端发送来的数据,从而进行主机名提取;最后按照顺序,以id,ip,主机名、时间上、状态等方式插入表




离线

当客户离开时将离开的ip与列表框的ip一列进行遍历对比,如果一致则将该ip的状态修改成离线。


效果 ,剩下的就是一些细节日志问题了,自行添加;   



命令执行

整体实现逻辑: 取用户右键单击☑️选中位置,弹出命令执行菜单;当用户点击”命令执行“时取所选中列表项的IP,并跳转选择夹到命令执行栏,当点击执行时候,服务端发送标志头和命令给客户端,客户端取回响应数据并返回给服务端。
![QQ20220718-145847-HD.gif](https://raw.githubusercontent.com/weujieytt/Images/main/2022/QQ20220718-145847-HD.gif)

服务端:
首先创建菜单,在主窗口右键选择菜单编辑器


添加功能选项,将可视打勾


设置在表单中右击弹出菜单


让右击后取鼠标位置弹出菜单


单击命令执行选项,添加被点击后的功能


画一个命令执行界面


“执行” 按钮被点击服务器发送编辑框的内容到被选择的主机上


客户端:
把命令执行的标志头取出来后,剩下的就是要执行的命令了,这里用到了一个封装好的模块,取DOS返回文本1() ,也可以使用运行()方法将cmd结果写入文本,然后再读文件返回给服务器。




端口扫描

这里先考虑同步扫描,就是循环端口范围,使用复制窗口组件函数对客户1进行复制,然后再使用复制的客户进行循环连接判断,设置标志当用户点击停止时候停止循环连接。


效果:
多线程实现:






效果:
键盘记录

键盘记录在hook类中内置了
客户端:
首先创建一个hook全局变量,类型为类_钩子 ,当客户端收到监控键盘指令时候安装键盘监控,安装转换为可读值加上标志位发送给服务端,服务端进行展示。


服务端:


开机启动

这里只简单写到C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ 这个启动路径下这一种方式
服务端:
发送设置开机启动指令


客户端:
接收到指令后取当前用户文件名进行路径拼接写文件


文件上传

文件上传使用分包发送,也就是将上传文件读到变量中以固定字节大小进行切割发送,客户端再根据数据包大小判断是否为最后一个数据包,进行拼接写文件。
服务端:
这里以10000字节为一个包发送




客户端:
客户端收到的数据包小于1w时,就认为是最后一个分包,直接写入文件。


屏幕监控

屏幕监控用幻灯片模式,客户端一张张截图拼凑发送给服务端展示,截图更替速度快就能实现gif的效果,还是取决于网速,相当于文件上传功能,只不过是一直在循环。
服务端:
为了方便为我选择在服务、客户端添加各添加两个组件,一个负责普通的操作;另一个是用于屏幕监控准备,因为要断开监控必须将客户端踢出。


客户端:


使用时钟事件进行循环




服务端操作判断


效果

回复

使用道具 举报

2

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 前天 03:51 | 显示全部楼层
撸过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表