ET006远程控制系统组六.docx
- 文档编号:30058473
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:10
- 大小:78.55KB
ET006远程控制系统组六.docx
《ET006远程控制系统组六.docx》由会员分享,可在线阅读,更多相关《ET006远程控制系统组六.docx(10页珍藏版)》请在冰豆网上搜索。
ET006远程控制系统组六
E.T.006远程控制系统(组六)
系统设计报告
(服务器端设计以及所需要的整个控制系统中其他单元的支持)
编制:
鲁晨平
日期:
2004-9-30
最后修改日期:
2004-11-28
审核:
陈天翔冯一梁2004-11-28
目录部分(页码在具体开发时需更新)
1.引言部分------------------------------------------------------------3
1.1.服务器端概述------------------------------------------------3
1.2.实现功能------------------------------------------------------3
1.3.本系统分析与设计的目的---------------------------------3
2.服务器端系统运行流程-------------------------------------------4
2.1.服务器端系统运行流程设计------------------------------4
2.2.服务器端系统对外接口------------------------------------4
2.3.服务器端运行流程图---------------------------------------5
2.4.服务器端流程图说明---------------------------------------6
3.服务器端系统具体设计-------------------------------------------8
3.1.服务器端各个模块设计-------------------------------------8
3.2.对外接口设计------------------------------------------------11
4.参考资料------------------------------------------------------------12
1.引言部分
1.1.服务器端概述
首先明确服务器端需要做的工作。
服务器端主要需要完成的工作是:
1.执行攻击主体(客户端)的命令,接受攻击主体上传的重要插件部分并安装相应功能。
2.实现和本系统其他单元的交互。
3.把具体需要其他系统单元完成的工作及时告诉其他组员,要求尽快完成。
1.2.实现功能
1.建立连接,接受命令,接受文件,安装插件。
2.提供给其他系统单元接口以便实现最终目的。
1.3.本系统分析与设计的目的
对我来说,是为了提供一个查看自己完成度的方法。
用估计的完成度来衡量自己工作的进度情况,并具体到每个服务器端模块的完成情况,来督促自己的工作或者告诉自己应该通知相关组员完成指定的工作。
对其他组员来说(如果他完成的任务是我这个单元所需要的),可以清楚地了解自己的任务和在整个开发的系统中所处的位置。
2.服务器端系统运行流程
2.1.服务器端系统运行流程设计
在服务器端的系统运行时,遵照以下流程:
建立连接接受命令执行命令用户退出安全结束
(其中接受命令和执行命令要循环不断进行。
)
以上流程只是简单规划,具体设计还需细化。
流程中一个非常重要的环节是接受命令和执行命令的循环,现在我就决定要采用非阻塞的套接字模式和不存在窗口的模型,这是为了直接实现木马系统的需求,即服务器端要运行在难以发现的情况下。
2.2.服务器端系统对外接口
要求其他组员完成以下接口所指定的部分工作。
1.程序运行开始时提供接口用来隐藏自己。
(需小组其他成员提供)
2.侦听客户端连接要求的接口。
2.运行中提供读取配置信息的接口。
3.提供给安装插件程序接口(插件隐藏方案需小组其他成员提供)。
4.提供给dll绑定程序接口。
5.所有数据传输操作要求在加密状态下进行。
(需完成加密系统的组员实现)
2.3.服务器端运行具体流程图设计
流程图如下(按需要可以改进):
2.4.服务器端流程图说明(用编号区别)
图中由边框处出发的箭头标志都认为是本系统其他单元功能进入的接口,也就是说在本单元中的相关模块要提供接受方式。
反之,指向图外的是指为其他单元提供服务或者是启动其他单元的标志。
所有图中的箭头符号表示的数据传送方向和内容都在以下的模块定义中具体说明(括号中为箭头编号):
B:
服务器端开始执行,此模块需要其他模块配合运行。
B0.1:
读取配置文件.ini
(1),然后根据配置要求初始化程序
(2)。
这一步是为了完成组长交代的自我保护的要求。
B0.2:
绑定到进程(3),这一步是对外接口,目前已知的方法(其他成员提供)是插入到其他系统进程中以隐藏自己。
得到绑定方法后用来初始化本服务器端程序(4)。
以上步骤完成后才认为初始化工作基本完成(5)。
B1:
实现主侦听套接字,之后把此套接字传入下一步(6)。
B1.1:
主套接字初始化时或者当客户端断开连接后(h箭头处)处于侦听状态,等待外界请求(7)。
使用新的一个套接字来建立连接,主套接字保持侦听。
B1.2:
确认连接正确建立(8)后,等待客户端命令到来(a)。
或者等待前一个命令执行结束(b,c),并返回相关结果给客户端(9)。
B1.3:
把得到的命令(d)分析,然后判断他是普通执行命令(e),还是文件传输命令(f),或者是一个断开连接的指示(g)。
B1.3.1:
执行普通命令,并把结果通过B1.2模块返回给客户端(c)。
B1.3.2:
文件传输命令,如果命令合法,则交辅助套接字实现(i)。
同时把命令是否可以执行成功的信息返回给模块B1.2(b)。
B1.3.3:
客户的命令请求是断开,则关闭此套接字上的连接,并返回模块B1.1(h)以便在主套接字上等待可能到来的新的连接。
B2:
建立用来传送文件的辅助套接字。
B2.1:
辅助套接字(来自j)开始等待客户端的连接请求(s)。
当命令到达时,判断是属于接收文件(k)还是发送文件(l)。
B2.2:
完成文件接收操作,主要是数据接收和文件重组等等工作。
然后交数据流m完成下一步操作。
B2.2.1:
在普通文件的条件下,文件接收完成后直接关闭辅助套接字(r),如果是一个插件的相关文件,则交插件模块处理(n)。
B2.2.2:
插件的安装处理模块,交由数据流o进行插件的具体执行工作,同时把辅助套接字关闭(p)。
B2.3:
完成发送操作,主要是指定文件的发送方法。
完成后发出要求关闭辅助套接字的要求(q)。
B2.4:
关闭辅助套接字。
关闭的条件是由数据流p,q,r所指示的。
3.服务器端系统具体设计
这里列出了已经实现的各部分模块的设计过程。
服务器端程序没有运行界面,需要和客户端一起才能运行,否则即使运行了也会一直处于侦听状态直到超时。
目前完成的服务器端具体设计大致进度:
60%
3.1.服务器端各个模块具体设计
B(初始化,完成度:
60%)
准备重要的全局变量:
SOCKETs(主套接字),soc(连接套接字),TransSoc(辅助套接字);等等。
读取配置文件;
读取自身dll插入程序;
配置文件信息准备就绪;
程序插入某一系统重要进程中;
B1(套接字建立,完成度:
100%)
套接字s准备工作。
(s=socket(…))
WSAStartup();
bind(s,…);
B1.2(等待命令,完成度:
100%)
while(上一个命令结束){
等待命令;
新命令到达;
转命令分析模块B1.3;
}
B1.3(分析命令,完成度:
100%)
如果命令是普通的操作命令,转命令执行模块B1.3.1;
如果是文件传输命令,转文件传输模块B1.3.2
如果是一个结束连接的断开命令,则进入断开soc的模块B1.3.3。
B1.3.1(执行命令,完成度:
100%)
调用一般windows应用程序接口来执行命令;
//有如下一些命令:
//copy,erad,makd,list,move。
return执行成功与否;(返回到B1.2)
B1.3.2(文件传送,完成度:
50%)
判断命令是否合法,结果返回到B1.2;
激活新的辅助套接字TransSoc,进入模块B2。
B1.3.3(客户断开,完成度:
100%)
closesocket(soc);
进入套接字s的侦听状态等待新的连接;
至模块B1.1;
B2(辅助套接字,完成度:
100%)
辅助套接字建立:
TransSoc=socket(…);
B2.2(文件接收,完成度:
0%)
准备缓冲区;
do{接收文件数据;
}while(还有没有接收的文件数据);
进入模块B2.2.1;
B2.2.1(插件判断,完成度:
0%)
如果是一个插件文件,进入模块B2.2.2,否则进入模块2.4;
B2.3:
(文件发送,完成度:
100%)
准备好发送的指定文件;
发出文件长度;
while(还有数据未发出){
发送指定量数据;
}
进入B2.4;
B2.4(套接字关闭,完成度:
100%)
closesocket(TransSoc);//辅助套接字在需要时再重新打开。
3.2.对外接口具体设计
除了在初步设计时考虑到的接口以外,在流程图设计时还考虑到了其他一些接口,具体的设计如下:
首先注意一个独立的接口,就是数据加密部分,这个部分组员完成后就可以直接应用到所有有关数据传输的模块。
在发送和接收时采用以下顺序:
发送时:
组成发送数据调用加密模块发送
接收时:
接收数据调用解密模块读出并使用数据
至于选择具体加密模式原则上由加密单元设计的组员进行。
然后是其他具体接口:
B0.1(读取配置,完成度:
30%)此接口自己完成
(未完全完成,暂时把部分信息还是放在程序内,不从配置文件读取。
目前完成的是简单的端口和密码配置信息读取。
)
B0.2:
(进程绑定,完成度:
90%)此接口其他组员完成
把本服务器端程序转变为可以在dll中执行的程序段,转变之后可以实现插入到进程中。
接口和负责dll插入与隐藏部分的其他组员的设计挂钩。
B1.1(等待连接,完成度:
100%)此接口自己完成
listen(s,2);//主套接字一直保持侦听
soc=accept(s,…);//soc为连接套接字,这里等待连接请求
发出密码要求;
得到密码并判断,如果错误则发出拒绝连接通知;
closesocket(soc);
重复本接口模块;
B2.1(开始连接,完成度:
100%)此接口自己完成
侦听来自同一个客户端的请求(判断是否是同一个客户端);
如果是一个发送文件请求,进入模块B2.3;break;
是一个接收文件的要求,进入B2.2;
B2.2.2(执行安装,完成度:
0%)此接口自己完成,但是插件执行时需要隐藏,这由其他组员完成
调用插件的安装程序;
插件的执行操作(外部提供);//这里是提供给其他单元的接口。
4.参考资料
首先是从教材《计算机网络实验指导》中学习基础知识,然后参考了黑客相关杂志,包括《黑客防线》、《CSDN开发高手》,还去了一些论坛。
参考的书目有:
《Windows网络技术编程》(电子版,作者不详。
)
《新编WindowsAPI参考大全》(电子版,署名是“本书编写组”)
《软件工程实践者的研究方法》RogerS.Pressman,机械工业出版社,2002
《Winsock中文参考》施炜等编著,交通大学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ET006 远程 控制系统
![提示](https://static.bdocx.com/images/bang_tan.gif)