-
Notifications
You must be signed in to change notification settings - Fork 2
概要设计(初版)
CXinsect edited this page May 4, 2019
·
7 revisions
- 目前暂决定使用ring3优先级的hook劫持open函数的调用过程。
-
客户端主要利用消息队列/共享内存进行文件操作的相关信息的交流。客户端根据文件操作请求讲相应路径的数据内容传递给服务器,然后客户端等待服务器将数据备份完成后发回来的响应消息。接着客户端再将消息利用IPC机制传递给调用hook的进程,使得该进程最后将文件操作返还给系统调用。
-
利用一个心跳包来判断客户端与服务器是否正常连接,正常则管控程序是客户端会发挥作用。否则将显示文件本来内容。
-
服务端主要还是采用常见的epoll + 线程池的模式来完成,以用来支持多个客户端连接过程。
-
线程函数用来完成数据的备份操作,然后将文件内容修改为it's s secret返回给客户端(注意对临界资源的保护)。
-
当函数请求关闭时将备份好的数据再传给客户端,客户端负责写回磁盘,成功后将消息传给调用hook进程,使其close函数正常关闭。
- 采用结构体设计
- 利用结构体,定长发送数据。
- 死写,死读固定长度的数据。(readn、writen)。