Skip to content

2 概要&详细设计

mayicheng edited this page May 6, 2019 · 14 revisions

系统详细设计

系统分为3个部分,hook-客户端-服务器。

hook:劫持open和close,并通过消息队列去给客户端传递消息。

客户端:首先是消息队列,消息队列不是单方面的消息队列,如图: 如图

每个hook都有一个私有的消息队列,cli通过ftok有一个公共的消息队列,这样传输消息更加稳定。 (但是因为一些原因,导致第一版的cli得轮询这个消息队列,在下一版应该改了)

对于应该劫持的文件:客户端劫持此文件,向服务器发消息,备份此文件,备份成功后,将原文件改为It is a secret,给hook发送继续操作。 对于不应该劫持的文件:客户端给hook发送继续操作。

服务器:备份和复原文件。

客户端结构设计和子模块划分

服务端结构设计和子模块划分

数据格式设计

配置文件格式

配置文件在:etc/file.conf

port表示客户端需要连接的服务器的端口。 addr表示服务器地址。 path表示你要监控的目录,目录请使用绝对路径。

通信协议格式

使用定长发送消息

代码结构设计

第一版只考虑了功能实现,还没有代码结构设计,之后完善。

客户端

服务端

Clone this wiki locally