论文部分内容阅读
软件网络通信过程的逆向分析在入侵检测、木马检测、协议逆向分析以及网络隐蔽通道的检测等方面都具有重要的应用价值,对其进行深入研究具有重要的意义。本文首先提出了一种基于动态二进制平台的软件网络通信过程逆向分析技术。利用动态二进制平台对网络应用程序解释执行,并在程序执行过程中对其动态插桩分析,准确记录软件网络通信过程中的程序执行轨迹。根据程序执行轨迹,从以下几个方面分析软件网络通信过程:线程创建关系、线程同步关系、socket对象操作函数关联性和套接字I/O模型。研究线程创建方法及特点,设计线程创建关系的获取方法;研究线程同步机制,设计线程同步关系的分析方法;研究socket对象操作函数关联性,提取关联的socket对象操作函数集合,并在此基础上分析通信信息,包括通信目标IP地址、目标端口、通信协议以及传输数据等;研究套接字I/O模型,分析各模型特点,提取各模型特征函数,在此基础上提出基于自动机的套接字I/O模型识别方法。其次,研究可视化方法,根据软件网络通信过程的信息特点提出可视化要求及目标,设计可视化图形以及可视化算法,将软件网络通信过程中的线程创建关系、线程同步关系以及socket对象操作函数关联性分析结果展现为可视化的图形形式。然后,设计软件网络通信行为分析方法,捕获网络数据并分析提取TCP数据与UDP数据,提出软件网络通信行为分别与TCP数据包、UDP数据包的关联性分析方法。论文最后设计并实现了基于动态二进制平台的软件网络通信过程逆向分析系统,并对套接字I/O模型识别、软件网络通信过程可视化、软件网络通信行为分析、以及软件网络通信行为与网络截包数据关联等功能进行了测试与分析。结果表明,系统能够正确并高效的分析软件网络通信过程。