一种VxWorks库函数识别方法、装置、设备及介质制造方法及图纸

技术编号:37556606 阅读:14 留言:0更新日期:2023-05-15 07:40
本申请实施例提供了一种VxWorks库函数识别方法、装置、设备及介质,在VxWorks库函数识别方法中,确定用于定位的特定函数和其对应的目标函数,并基于特定函数和目标函数分别确定了第一库函数集合和第二库函数集合,对第一库函数集合和第二库函数集合进行识别,根据识别结果确定待识别VxWorks文件中包含的每个库函数,无需与样本VxWorks文件中的所有库函数一一进行识别与验证,减少了函数识别的次数,从而提高VxWorks库函数识别的效率。而提高VxWorks库函数识别的效率。而提高VxWorks库函数识别的效率。

【技术实现步骤摘要】
一种VxWorks库函数识别方法、装置、设备及介质


[0001]本专利技术涉及计算机
,尤其涉及一种VxWorks库函数识别方法、装置、设备及介质。

技术介绍

[0002]实时操作系统(VxWorks,VXW)是美国风河公司(WindRiver System,WRS)设计开发的一种嵌入式实时操作系统,由于其良好的可靠性和卓越的实时性被广泛的应用于军事、航天、通信等实时性要求较高的领域中。多数使用VxWorks系统的厂商为了避免其设备固件被逆向分析,在发布固件时往往会去除VxWorks的符号文件,导致安全研究人员无法从函数名称上来得知函数的功能,这给逆向分析造成了一定困难。编译好的VxWorks二进制文件一般存在10000个以上的函数,要识别其中的库函数,一般需要通过对每个函数的实现算法进行分析,而通过人工分析每个函数的算法来识别库函数无疑是非常低效的。
[0003]针对上述问题,目前的自动化识别库函数的方法包括交互式反汇编器专业版(Interactive Disassembler Professional,IDA)签名和二进制文件比较工具(BinDiff)工具。其中,IDA签名是IDA专用的库函数识别机制,利用相关工具可以把一些VxWorks相关的.a文件生成IDA签名,利用这些IDA签名来识别VxWorks中的库函数,由于其识别算法是基于具体的汇编级别的指令,所以这种方式对目标VxWorks二进制文件的系统版本、中央处理器(Central Processing Unit,CPU)架构、端序、编译方式要求严格,必须完全一致才能识别。另外由于VxWorks为闭源系统,网络上很难搜集到大量可用的.a文件,因此可用制作的签名文件也非常有限,导致通过IDA签名来识别库函数的效率较低。BinDiff工具的算法是基于处理二进制文件的抽象结果,而非具体汇编级别的指令,因此不严格限制CPU架构、端序和编译方式。但BinDiff工具依赖于一些存在符号的VxWorks样本,也就是说BinDiff工具的识别算法中依赖整个二进制文件中的函数关联,因此在两个VxWorks二进制文件非同源的情况下几乎无法准确识别出库函数。而现实场景中几乎无法找到同源且存在符号的VxWorks二进制文件,所以导致该BinDiff工具的识别库函数的识别效率较低。
[0004]综上,目前的自动化识别库函数的方法识别效率较低。

技术实现思路

[0005]本申请实施例提供了一种VxWorks库函数识别方法、装置、设备及介质,用以解决现有技术中识别库函数的效率较低的问题。
[0006]第一方面,本申请实施例提供了一种VxWorks库函数识别方法,所述方法包括:
[0007]根据样本VxWorks文件中库函数的特征,确定用于定位的特定函数;
[0008]根据特定函数,在待识别VxWorks文件的库函数中,确定特定函数对应的目标函数;
[0009]在样本VxWorks文件中以特定函数为基准,按照设定选择规则选择设定数量的第一库函数集合,并在待识别VxWorks文件中以目标函数为基准,按照设定选择规则选择设定
数量的第二库函数集合;
[0010]判断第一库函数集合中库函数之间的排列顺序与第二库函数集合中库函数之间的排列顺序是否相同;
[0011]如果是,则将样本VxWorks文件中包含的每个库函数,确定为待识别VxWorks文件中包含的每个库函数;如果否,则对所述样本VxWorks文件中库函数的特征和所述待识别VxWorks文件中库函数的特征进行识别,根据识别结果,在所述样本VxWorks文件中包含的每个库函数中确定所述待识别VxWorks文件中包含的每个库函数。
[0012]第二方面,本申请实施例还提供了一种VxWorks库函数识别装置,所述装置包括:
[0013]第一确定模块,用于根据样本VxWorks文件中库函数的特征,确定用于定位的特定函数;
[0014]第二确定模块,用于根据特定函数,在待识别VxWorks文件的库函数中,确定特定函数对应的目标函数;
[0015]选择模块,用于在样本VxWorks文件中以特定函数为基准,按照设定选择规则选择设定数量的第一库函数集合,并在待识别VxWorks文件中以目标函数为基准,按照设定选择规则选择设定数量的第二库函数集合;
[0016]判断模块,用于判断第一库函数集合中库函数之间的排列顺序与第二库函数集合中库函数之间的排列顺序是否相同;
[0017]第三确定模块,用于如果是,则将样本VxWorks文件中包含的每个库函数,确定为待识别VxWorks文件中包含的每个库函数;如果否,则对所述样本VxWorks文件中库函数的特征和所述待识别VxWorks文件中库函数的特征进行识别,根据识别结果,在所述样本VxWorks文件中包含的每个库函数中确定所述待识别VxWorks文件中包含的每个库函数。
[0018]第三方面,本申请实施例还提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一项所述VxWorks库函数识别方法的步骤。
[0019]第四方面,本申请实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述VxWorks库函数识别方法的步骤。
[0020]在本申请实施例中,根据样本VxWorks文件中库函数的特征,确定用于定位的特定函数;根据特定函数,在待识别VxWorks文件的库函数中,确定特定函数对应的目标函数;在样本VxWorks文件中以特定函数为基准,按照设定选择规则选择设定数量的第一库函数集合,并在待识别VxWorks文件中以目标函数为基准,按照设定选择规则选择设定数量的第二库函数集合;判断第一库函数集合中库函数之间的排列顺序与第二库函数集合中库函数之间的排列顺序是否相同;如果是,则将样本VxWorks文件中包含的每个库函数,确定为待识别VxWorks文件中包含的每个库函数;如果否,则对样本VxWorks文件中库函数的特征和待识别VxWorks文件中库函数的特征进行识别,根据识别结果,在样本VxWorks文件中包含的每个库函数中确定待识别VxWorks文件中包含的每个库函数。由于本申请中先确定用于定位的特定函数和对应的目标函数,并基于特定函数和目标函数分别确定了第一库函数集合和第二库函数集合,对第一库函数集合和第二库函数集合进行识别,无需与样本VxWorks文件中的所有库函数一一进行识别与验证,大大减少了函数识别的次数,提高了VxWorks库函
数识别的效率。
附图说明
[0021]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1为本申请的一些实施例提供的一种本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种VxWorks库函数识别方法,其特征在于,所述方法包括:根据样本VxWorks文件中库函数的特征,确定用于定位的特定函数;根据所述特定函数,在待识别VxWorks文件的库函数中,确定所述特定函数对应的目标函数;在所述样本VxWorks文件中以所述特定函数为基准,按照设定选择规则选择设定数量的第一库函数集合,并在所述待识别VxWorks文件中以所述目标函数为基准,按照所述设定选择规则选择所述设定数量的第二库函数集合;判断所述第一库函数集合中库函数之间的排列顺序与所述第二库函数集合中库函数之间的排列顺序是否相同;如果是,则将所述样本VxWorks文件中包含的每个库函数,确定为所述待识别VxWorks文件中包含的每个库函数;如果否,则对所述样本VxWorks文件中库函数的特征和所述待识别VxWorks文件中库函数的特征进行识别,根据识别结果,在所述样本VxWorks文件中包含的每个库函数中确定所述待识别VxWorks文件中包含的每个库函数。2.根据权利要求1所述的方法,其特征在于,所述判断所述第一库函数集合中库函数之间的排列顺序与所述第二库函数集合中库函数之间的排列顺序是否相同,包括:针对每个库函数,判断所述第一库函数集合中的所述库函数的特征与所述第二库函数集合中对应的所述库函数的特征是否相同,所述库函数的特征包括以下一个或多个:算法特征、指令特征、调用关系、或字符串特征。3.根据权利要求1所述的方法,其特征在于,所述对所述样本VxWorks文件中库函数的特征和所述待识别VxWorks文件中库函数的特征进行识别,根据识别结果,在所述样本VxWorks文件中包含的每个库函数中确定所述待识别VxWorks文件中包含的每个库函数,包括:针对每个库函数,根据所述第二库函数集合的设定数量个库函数,在样本VxWorks文件中按照设定选择规则选择设定数量的第三库函数集合;对所述第二库函数集合中的库函数和所述第三库函数集合中的库函数的特征进行识别,在所述第三库函数集合中确定与所述第二库函数集合中的库函数特征相同的库函数;根据与所述第二库函数集合中的库函数特征相同的所述第三库函数集合中的库函数,在所述样本VxWorks文件中的库函数中确定所述待识别文件中包含的每个库函数。4.根据权利要求1所述的方法,其特征在于,在样本VxWorks文件的库函数中,确定用于定位的特定函数之前,所述方法还包括:在VxWorks文件中,通过查找以VxWorks开头的字符串,获取所述待识别VxWorks文件的版本;在所述VxWorks文件的头部中,获取所述待识别VxWorks文件的架构及编译参数;根据所述待识别VxWorks文件的版本、架构及编译参数,确定与所述待识别VxWorks文件对应的样本VxWorks文件。5.根据权利要求3所述的方法,其特征在于,所述根据所述...

【专利技术属性】
技术研发人员:魏凡李东宏陈杰马良高剑李泽赵亮
申请(专利权)人:北京神州绿盟科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1