logo好方法网

针对MIPS架构的物联网设备组件版本信息提取方法


技术摘要:
本发明实施例提供一种针对MIPS架构的物联网设备组件版本信息提取方法,包括:采集物联网设备固件,基于所述固件确定所述物联网设备的组件二进制字符串;基于所述组件二进制字符串确定所述物联网设备的具有版本信息的二进制字符串;基于所述具有版本信息的二进制字符串  全部
背景技术:
随着物联网技术的广泛应用,物联网设备数量也在逐年的增加。而物联网固件中 使用的开源组件,为物联网设备安全带来了新的挑战。随着开源组件的日益增多,为了更好 分析固件,需要准确的收集固件和固件中的组件信息,因此组件版本分析在固件的安全分 析之中成为了一件重中之重的事情。 在一般情况下,组件的版本信息可以通过在设备真实运行或模拟运行的情况下, 通过运行组件来得到其版本信息,但是由于设备种类的不同,固件的模拟依赖平台和依赖 库也不尽相同,通过动态的运行组件来获取组件的版本信息是一种不具有普适性且低效的 方法。因此如何准确的得到固件组件当中的组件版本信息,成为了一大问题。 因此,如何避免现有的获取组件的方法不具有普适性的麻烦,以及效率低下的情 况,仍然是本领域技术人员亟待解决的问题。
技术实现要素:
本发明实施例提供一种针对MIPS架构的物联网设备组件版本信息提取方法,用以 解决现有的获取组件的方法不具有普适性且效率低下的问题。 第一方面,本发明实施例提供一种针对MIPS架构的物联网设备组件版本信息提取 方法,包括: 采集物联网设备固件,基于所述固件确定所述物联网设备的组件二进制字符串; 基于所述组件二进制字符串确定所述物联网设备的具有版本信息的二进制字符 串; 基于所述具有版本信息的二进制字符串确定所述物联网设备的组件版本信息,所 述组件版本信息包括组件版本号和组件版本名。 优选地,该方法中,所述基于所述具有版本信息的二进制字符串确定所述物联网 设备的组件版本信息,所述组件版本信息包括组件版本号和组件版本名,具体包括: 若所述具有版本信息的二进制字符串中包含组件版本名和组件版本号,则确定所 述组件版本名和组件版本号为所述物联网设备的组件版本信息; 若所述具有版本信息的二进制字符串中包含组件版本名和格式化字符串,则对所 述格式化字符串获取反汇编数据,基于所述反汇编数据确定组件版本号,确定所述组件版 本名和组件版本号为所述物联网设备的组件版本信息。 优选地,该方法中,所述对所述格式化字符串获取反汇编数据,基于所述反汇编数 据确定组件版本号,具体包括: 获取所述格式化字符串的反汇编数据,所述反汇编数据包括数据段和代码段,确 4 CN 111580856 A 说 明 书 2/10 页 定所述格式化字符串在代码段中的引用地址为第一地址; 确定所述第一地址所在的代码基本块,在所述代码基本块中确定格式化版本号字 符串的传递地址; 基于所述格式化版本号字符串的传递地址确定组件版本号。 优选地,该方法中,所述基于所述格式化版本号字符串的传递地址确定组件版本 号,具体包括: 若所述格式化版本号字符串的传递地址为堆栈地址,基于版本号占位符在格式化 字符串中的位置顺序确定所述堆栈地址在堆栈中的相对位置地址,确定所述相对位置地址 的堆栈值,基于所述堆栈值确定组件版本号; 若所述格式化版本号字符串的传递地址为参数寄存器,确定所述参数寄存器中最 终存储的常量数据段地址,基于所述常量数据段地址获取组件版本号字符串的值,确定所 述组件版本号字符串的值为组件版本号。 优选地,该方法中,所述采集物联网设备固件,基于所述固件确定所述物联网设备 的组件二进制字符串,具体包括: 爬取物联网设备的固件,对所述固件进行解压获取解压组件; 判断所述解压组件是否为二进制可执行文件,若是,则确定所述解压组件为所述 物联网设备的组件二进制字符串。 优选地,该方法中,所述基于所述组件二进制字符串确定所述物联网设备的具有 版本信息的二进制字符串,具体包括: 通过正则匹配方法对所述组件二进制字符串进行过滤,确定所述组件二进制字符 串中的具有版本信息的二进制字符串; 确定所述具有版本信息的二进制字符串为所述物联网设备的具有版本信息的二 进制字符串; 其中,所述具有版本信息的二进制字符串为同时包括组件版本名和组件版本号的 二进制字符串或者为同时包括组件版本名和格式化字符串的二进制字符串。 第二方面,本发明实施例提供一种针对MIPS架构的物联网设备组件版本信息提取 装置,包括: 采集单元,用于采集物联网设备固件,基于所述固件确定所述物联网设备的组件 二进制字符串; 提取单元,用于基于所述组件二进制字符串确定所述物联网设备的具有版本信息 的二进制字符串; 确定单元,用于基于所述具有版本信息的二进制字符串确定所述物联网设备的组 件版本信息,所述组件版本信息包括组件版本号和组件版本名。 优选地,该装置中,所述确定单元,具体用于, 若所述具有版本信息的二进制字符串中包含组件版本名和组件版本号,则确定所 述组件版本名和组件版本号为所述物联网设备的组件版本信息; 若所述具有版本信息的二进制字符串中包含组件版本名和格式化字符串,则对所 述格式化字符串获取反汇编数据,基于所述反汇编数据确定组件版本号,确定所述组件版 本名和组件版本号为所述物联网设备的组件版本信息。 5 CN 111580856 A 说 明 书 3/10 页 第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器 上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供 的针对MIPS架构的物联网设备组件版本信息提取方法的步骤。 第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算 机程序,该计算机程序被处理器执行时实现如第一方面所提供的针对MIPS架构的物联网设 备组件版本信息提取方法的步骤。 本发明实施例提供的方法,通过确定采集的物联网设备固件对应的组件二进制字 符串,从所述组件二进制字符串中筛选出具有版本信息的二进制字符串,然后从所述具有 版本信息的二进制字符串中提取出物联网设备的组件版本号和组件版本名。如此,实现了 物联网设备的组件版本信息的自动提取。因此,本发明实施例提供的方法,能够提高物联网 设备的组件版本信息提取的效率。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。 图1为本发明实施例提供的针对MIPS架构的物联网设备组件版本信息提取方法的 流程示意图; 图2为包括格式化字符串的组件静态数据段的示意图; 图3为包括格式化字符串aGeneratedByIpt的代码基本块的示意图; 图4为包括格式化字符串aPrint1s2s3s4s5的代码段的示意图; 图5为包括格式化字符串aPrintReturnVer的代码段的示意图; 图6为本发明实施例提供的物联网设备组件版本信息提取具体流程的示意图; 图7为本发明实施例提供的针对MIPS架构的物联网设备组件版本信息提取装置的 结构示意图; 图8为本发明实施例提供的电子设备的实体结构示意图。
下载此资料需消耗2积分,
分享到:
收藏