浅谈软件网络通信过程逆向分析及可视化技术研究

时间:2022-05-05 09:10:10

浅谈软件网络通信过程逆向分析及可视化技术研究

【摘要】软件网络通信过程逆向分析及可视化技术在游戏开发、软件漏洞的查找、代码恢复、平台间移植、比较代码等方面均可发挥作用。基于软件网络通信过程逆向分析的诸多优势以及重要的应用价值,本文将对软件网络通信过程逆向分析及可视化技术进行分析研究。

【关键词】网络通信过程,逆向分析,可视化技术

随着计算机网络通信的发展,计算机软件网络通信不再只通过检测哪些功能、需要删除和增减来解决计算机功能的实现问题的正向工程,而是,在此基础上能够解决程序理解问题的逆向工程。在软件网络通信过程逆向分析中包括代码级逆向分析和系统级逆向分析。通常应用到的是代码级逆向分析。一般是通过例如反汇编器、调试器、反编译器及系统监控工具等专门的逆向分析工具对待逆向的程序网络通信进行监控、研究及剖析。但是这样一种分析方式由于它本身的各种缺陷例如只能对程序进行外部执行行为结果的分析,在加壳加扰时应用没有实际的效果,调试器使用受限等等。经过不断的发展尝试,动态二进制平台DynamoRIO具有高效的分析优势。

一、动态二进制平台DynamoRIO

在操作系统和应用程序之间插入DynamoRIO并利用代码缓存技术将程序代码分为一段段指令序列拷入代码缓存。接着执行代码缓存中的程序。其中那一段段指令序列又称为基本块,它以类似于如call,jump等控制转移类指令为结束标志。DynamoRIO在基本块的执行结尾处通过上下文切换在基本块调度状态与程序的代码缓存这两个状态下切换过渡,接着将在本地执行缓存中的代码。DynamoRIO相对于其它的动态二进制平台而言,它的优势是具有很强的执行能力和很好的稳定性,并且它还具有一定的灵活性。DynamoRIO分析整理出的数据可构成API函数信息库并对网络通信中所执行的API函数信息做出相应的记录。在此基础上,可利用DynamoRIO提供的API函数集编写出满足各种需求的插件。

DynamoRIO最为核心的技术是DBI技术,这向技术是众多动态二进制平台的支撑技术。它能够实现对程序指令流和数据流信息进行实时分析和动态修改,主要是在分析要求的基础上,对程序动态执行过程插入分析代码。动态二进制平台DynamoRIO通过以上介绍的优势可以流畅且高效的完成软件网络通信过程逆向分析。

二、可视化

在软件网络通信过程逆向分析软件动态二进制平台DynamoRIO运行中,其接口函数可用于编写插桩工具。目标程序将通过插桩工具进入到DynamoRIO创设的API函数信息库中,在API数据库中,目标程序被分为一块块基本执行块,接着进行API判断之后,DynamoRIO会对整个过程中的指令进行记录,包括指令的执行时间、模块名和函数名、函数执行时返回值和参数信息,然后DynamoRIO会对API记录的信息进行分析,主要是对关联性分析模型和关联性分析算法进行函数关联性分析,最后根据数据图形显示的规则生成GDL文件,此文件可将软件网络通信过程以可视化的图形形式展现出来。最终实现软件网络通信过程可视化。在这一过程中对API函数信息的记录、API关联性分析以及软件网络通信过程可视化是关键。

(一)可视化技术中对API函数信息的记录。记录API函数信息首先要获取软件加载的库文件模块及其它地址空间信息,然后获取基本块执行后的跳转地址。接下来分为这样几种状况。1.跳转地址存在于API数据库中则调用API函数信息库中的数据进行下一步,记录此跳转地址的API和API参数信息,程序执行结束,最后进入到下一个基本块的执行中或者结束程序。在此过程中会出现另一种情况,即调用的函数并非API函数信息库中存在的函数,当遇到这种情况时,程序执行结束或执行下一个基本块。2.跳转地址不存在于API库文件空间中则直接结束程序或进入到下一个基本块的执行中。

(二)可视化技术中API关联性分析。在进行API关联性分析时要注意每个套接口所代表的通信通道以及每个套接口的描述字要包含通信的IP地址类型、协议类型等信息。套接口描述字是两个程序之间的通信手段,一般两个程序之间的连接都是建立在套接口的基础上的。函数关联性分析的目的是获得包括通信IP、端口、发送和接收的内容的通信会话的具体信息。

(三)可视化技术中软件网络通信过程可视化。软件网络通信过程可视化技术的最大优势是能够用直观的表现形式将大量的数据表现出来,从而为人们快速寻找数据中的特征、相关关系、模式、趋势、结构、异常现象等提供便利。可视化图形形式的生成是利用可视化通信工具和已有的相关软件对网络通信过程进行展现。目前所应用的一款可视化图形软件工具是aiSee与GDL语言。GDL是一种对图形中的边、结点、图形的属性进行描述的图形描述语言。而aiSee正是基于这种图形描述语言的用于使编译器中的多种内部数据结构进行形象化表述的可视化工具。在这款工具中对GDL的结点的设置是可以根据用户的需要来进行的调整的,因此,它具有一定的灵活性和个性化。基于这种特点aiSee软件的应用十分广泛。

结束语:

目前我国软件网络通信过程逆向分析及可视化技术的应用十分广泛,不仅是在计算机领域,在其他领域也有涉及。在软件网络通信过程逆向分析及可视化技术中,有一定的收获与突破,但是目前的发展现状比较缓慢,在80年代中合肥工业大学对软件网络通信过程逆向分析及可视化技术进行了一系列的研究之后,至今,没有出现比较系统的有关这方面的研究了。因此,在软件网络通信过程逆向分析及可视化技术的领域上,针对目前比较好用的动态二进制平台软件DynamoRIO应进行更加深入的分析研究,从其中比较重要的API函数信息的记录、API关联性分析、软件网络通信过程可视化这几个环节入手,进行多角度的探究。推动软件网络通信过程逆向分析及可视化技术的发展与应用。

参考文献:

[1]孙静,舒辉,康绯,董鹏程.软件网络通信过程逆向分析及可视化技术研究[J].计算机工程与设计,2012,09:3593-3597.

[2]杜坤凭,康绯,舒辉,等.基于会话关联的软件网络通信行为分析技术[J].计算机应用,2013,07:2046-2050+2066.

上一篇:高校全方位学位预警机制及其建立 下一篇:校企合作对双师队伍建设的促进作用研究