摘要:
随着软件系统规模与复杂度的日渐下降linux命令,软件系统结构以及软件安全漏洞的源代码剖析也显得愈发重要。目前存在的源代码剖析方式及源代码剖析工具,不能否满足剖析小型软件源代码体系结构的需求。对于像Linux内核等小型软件来说,因为开发人员诸多,没有统一的开发文档,对于想要开发和改进其西路由合同的开发人员来说,须要耗费较长时间去了解,面临挑战和困难。本文通过剖析往年源代码剖析方式及源代码剖析工具中存在的不足,针对往年源代码剖析中存在的不能否便捷的剖析文件及目录间的函数调用关系以及直接对源代码剖析存在冗余linux虚拟主机,同时结合编译过程生成的寄存器传送语言,提出基于RTL(RegisterTransferLanguage,寄存器传送语言)的函数调用图生成方式,从而设计并实现了内核函数调用图工具CG-RTL(callgraphbasedonRTL,简称为CG-RTL)。RTL即寄存器传送语言,富含函数的定义以及函数调用信息。内核函数调用图工具CG-RTL通过从RTL中获取信息而且与LXR相结合来解决上述问题。本文通过从每位源文件编译过程中生成的RTL文件中提取函数定义及调用信息,当用户的选择和输入为生成目录间的函数调用图或则函数调用关系列表时,对每位源文件函数调用信息进行递归,生成目录间的函数调用关系,从而通过图和列表的方式展示在浏览器中。
因为SVG图片良好的交互功能,内核函数调用图工具CG-RTL对图片进行功能的扩充,而且对函数调用列表进行函数注释的直接突显。本文通过使用内核函数调用图工具CG-RTL(callgraphbasedonRTL)对Linux系统中TCP/IP合同栈中的部份内容做剖析。路由合同剖析是Linux内核剖析中的重要内容,其中AODV路由合同是在自组网中常常用到的被动路由合同,自组网(adhocnetwork)是一组无线节点组成的联通自组织网路,其不依赖于具体的设施,在基站覆盖不到的地方,可以利用自组网里的中间节点收发信息进行节点间的通讯。AODV路由合同一般移植到Linux用户空间应用在实际系统中linux内核网络栈源代码情景分析,其运行会用到Linux操作系统内核的TCP/IP合同栈处理机制,其中netlink是一个特殊的IPC通讯机制,主要用于进程在用户空间和内核空间之间的通讯,而netfilter则充当过滤层在IP层进行字段传送时,对进来或则出去的数据包或则帧进行过滤。通过剖析Linux实际系统中TCP/IP合同栈中的内容,可以显示内核函数调用图工具CG-RTL(callgraphbasedonRTL)在剖析小型软件,比如Linux等源代码对应文档不多linux内核网络栈源代码情景分析,开发人员复杂的软件体系结构,相对于传统的源代码剖析方式以及源代码剖析工具愈发简便,耗费时间更少,愈发紧贴于源代码运行时的状态。
展开