SMB协议文件还原方法及系统与流程

文档序号:37550364发布日期:2024-04-08 13:58阅读:13来源:国知局
SMB协议文件还原方法及系统与流程

本技术涉及通信,尤其涉及一种smb协议文件还原方法及系统。


背景技术:

1、网络中传输的文件需要进行审计、防病毒等功能,审计、防病毒等功能需要对传输协议进行解析,从而识别文件传输过程中的文件名、文件大小和文件内容等。例如:在某些场景下,需要对smb(server message block服务器消息块)协议进行文件传输的控制、防病毒,而控制、防病毒依靠于传输过程中文件还原。

2、在smb协议文件还原中可通过对smb协议解析,获取传输过程中的文件名称、文件大小等信息。基于获取的信息控制smb文件传输,例如:限制文件大小、文件名称中的敏感词等。而基于文件内容识别到的真实文件类型、防病毒等功能需要一个完整的文件。

3、在smb协议传输过程中,当客户端传输文件到服务器时,文件会被分成多个文件块,然后逐个发送这些文件块到服务器,但在smb协议的文件传输过程中,由于网络延迟、中断或其他原因,会导致的文件块出现乱序。并且,通过上述方法仅能获得文件传输过程中的文件名、文件大小等内容,由于仅能获取文件名、文件大小,并且文件块在传输过程中会出现乱序情况,导致无法还原完整文件。


技术实现思路

1、本技术提供一种smb协议文件还原方法及系统,以解决无法还原完整文件的问题。

2、第一方面,本技术提供一种smb协议文件还原方法,所述方法包括:

3、获取目标文件的还原指令;

4、响应于所述还原指令,若smb协议的消息类型为下载文件,获取报文的方向;

5、若所述方向为请求方向,获取所述请求方向报文的还原文件字段信息,并将所述还原文件字段信息保存至会话控制结构,所述还原文件字段信息包括交互消息编号、文件偏移量、文件名称、文件大小和文件总长度信息;

6、若所述方向为响应方向,获取所述响应方向报文的交互消息编号;

7、若所述响应方向报文的交互消息编号存在于所述会话控制结构中,匹配所述还原文件字段信息中除所述交互消息编号以外其他的所述还原文件字段信息;

8、根据所述文件偏移量,将所述请求方向报文或所述响应方向报文的文件块写入内存中;

9、读取所述内存中已写入文件块的总长度与对应所述还原文件字段信息中的文件总长度,若所述已写入总长度与所述文件总长度相同,表征完成所述目标文件还原。

10、在一些可行的实施例中,所述响应于所述还原指令后,包括:

11、若所述smb协议的消息类型为上传文件,获取所述报文的方向;

12、若所述方向为请求方向,获取所述请求方向报文的还原文件字段信息,并将所述还原文件字段信息保存至所述会话控制结构;

13、若所述请求方向报文的还原文件字段信息中的交互消息编号存在于所述会话控制结构中,匹配所述会话控制结构中的文件偏移量;

14、根据所述文件偏移量,将所述请求方向报文的文件块写入内存中。

15、在一些可行的实施例中,所述根据所述文件偏移量,将所述请求方向报文或所述响应方向报文的文件块写入内存中,包括:

16、检测所述会话控制结构中的内存文件结构体,所述会话控制结构包括多个结构体;

17、若所述内存文件结构体处于默认的初始状态,则根据所述文件偏移量,将所述请求方向报文或所述响应方向报文的文件块写入内存中,所述内存包括多个字段。

18、在一些可行的实施例中,所述根据所述文件偏移量,将所述请求方向报文或所述响应方向报文的文件块写入内存中,包括:

19、将所述会话控制结构中的还原文件字段信息赋值给所述内存的字段,所述还原文件字段信息与所述字段存在映射关系;

20、设置文件指针偏移至所述内存的偏移字段处;

21、根据所述请求方向报文的文件偏移量,将所述请求方向报文的文件块写入内存对应的偏移字段处。

22、在一些可行的实施例中,所述根据所述文件偏移量,将所述请求方向报文或所述响应方向报文的文件块写入内存中,还包括:

23、向操作系统申请内存,所述内存包括多个内存块。

24、在一些可行的实施例中,所述读取所述内存中已写入文件块的总长度与对应所述还原文件字段信息中的文件总长度后,包括:

25、根据已写入文件块,查找所述文件块对应的还原文件字段信息;

26、若所述已写入文件块的总长度与所述还原文件字段信息中文件总长度相同,表征所述目标文件保存至所述内存中;

27、将保存在所述内存中的所述目标文件写入硬盘中,以完成所述目标文件的还原。

28、在一些可行的实施例中,所述将所述还原文件字段信息保存至会话控制结构,包括:

29、获取所述请求方向报文的间隔时间;

30、若所述间隔时间小于时间阈值,获取所述会话控制结构可保存的会话数量;并在所述会话控制结构中创建整数数组,所述数组用于储存所述请求方向报文的交互消息编号、文件偏移量以及文件大小,所述数组的大小与所述会话控制结构可保存的会话数量相同。

31、在一些可行的实施例中,所述方法还包括:

32、获取五元组信息;

33、根据所述五元组信息创建会话控制结构。

34、在一些可行的实施例中,所述将所述请求方向报文或所述响应方向报文的文件块写入内存中,还包括:

35、获取所述文件块类型;

36、若所述文件块类型为可执行文件,基于行为分析检测方法检测所述文件块,以得到检测结果;

37、若所述检测结果为未检测到恶意行为,写入所述文件块内容。

38、第二方面,本技术提供一种smb协议文件还原系统,用于执行第一方面任一项所述的smb协议文件还原方法,所述系统包括:

39、获取单元,所述获取单元用于获取目标文件的还原指令;

40、响应于所述还原指令,若smb协议的消息类型为下载文件,所述获取单元还用于获取报文的方向;若所述方向为请求方向,用于获取所述请求方向报文的还原文件字段信息,并将所述还原文件字段信息保存至会话控制结构,其中,所述还原文件字段信息包括交互消息编号、文件偏移量、文件名称、文件大小和文件总长度信息;若所述方向为响应方向,用于获取所述响应方向报文的交互消息编号;

41、匹配单元,若所述响应方向报文的交互消息编号存在于所述会话控制结构中,所述匹配单元用于匹配所述还原文件字段信息中除所述交互消息编号以外其他的所述还原文件字段信息;

42、写入单元,所述写入单元用于根据所述文件偏移量,将所述请求方向报文或所述响应方向报文的文件块写入内存中;

43、读取单元,所述读取单元用于读取所述内存中已写入文件块的总长度与对应所述还原文件字段信息中的文件总长度,若所述已写入文件块的总长度与所述文件总长度相同,表征完成所述目标文件还原。

44、由以上技术方案可知,本技术提供一种smb协议文件还原方法及系统,通过获取目标文件的还原指令,如果smb协议的消息类型为下载文件,获取报文的方向;如果方向为请求方向,获取请求方向报文的还原文件字段信息,将还原文件字段信息保存至会话控制结构,其中,还原文件字段信息包括交互消息编号、文件偏移量、文件名称、文件大小和文件总长度信息。如果方向为响应方向,获取响应方向报文的交互消息编号;如果响应方向报文的交互消息编号存在于会话控制结构中,匹配还原文件字段信息中除交互消息编号以外其他的还原文件字段信息;根据文件偏移量,将请求方向报文或响应方向报文的文件块写入内存中;读取内存中的已写入文件块的总长度与对应还原文件字段信息中的文件总长度,若已写入文件块的总长度与文件总长度相同,表征完成目标文件还原。本技术通过将还原文件字段信息存入会话控制结构中,并通过交互消息编号和文件偏移量,解决在smb协议文件传输中存在文件乱序块的问题,以还原完整目标文件。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1