logo好方法网

一种程序特征序列生成方法和装置


技术摘要:
本发明公开了一种程序特征序列生成方法和装置,用于判断运行中的程序是否被篡改。本发明包括:当扫描程序时,扫描多条程序指令中指令序号最小的未扫描的程序指令,并判断当前扫描的程序指令的指令类型;当指令类型为跳转类指令时,生成所述当前扫描的程序指令的跳转关  全部
背景技术:
程序在运行前,需要进行可信检查,检查程序是否遭到篡改,以确保所运行的程序 是预期的程序。程序在运行过程中,同样需要进行可信检查,确保程序运行的行为与预期行 为一致。 现有技术中,多采用程序签名的方法检查程序是否遭到篡改,但这种方法仅适用 于程序运行前的检查。在程序运行过程中,由于程序已经被打散在内存中,指令部分、数据 部分、堆栈部分都有所不同,数据部分会时刻变化,因此难以在程序运行过程中检查程序是 否遭到篡改。
技术实现要素:
本发明提供了一种程序特征序列生成方法和装置,解决了现有技术难以在程序运 行过程中检查程序是否遭到篡改的问题。 本发明提供的一种程序特征序列的生成方法,所述程序包括多条程序指令;所述 多条程序指令分别具有对应的指令序号;所述的方法包括: 当扫描所述程序时,扫描所述多条程序指令中指令序号最小的未扫描的程序指 令,并判断当前扫描的程序指令的指令类型; 当所述指令类型为跳转类指令时,生成所述当前扫描的程序指令的跳转关系数字 对,并保存所述跳转关系数字对; 判断所述当前运行的程序指令的指令序号是否等于预设阈值; 若否,则跳转至扫描所述多条程序指令中指令序号最小的未扫描的程序指令的步 骤; 若是,则采用保存的所述跳转关系数字对生成特征序列,并停止扫描所述程序。 可选地,所述多条程序指令还具有对应的指令地址;所述当所述指令类型为跳转 类指令时,生成所述当前扫描的程序指令的跳转关系数字对,并保存所述跳转关系数字对 的步骤,包括: 当所述指令类型为跳转类指令时,在所述当前扫描的程序指令中提取跳转地址; 计算所述跳转地址与所述当前扫描的程序指令的指令地址之间的差值; 获取预设计数器的当前计数器值; 采用所述当前计数器值和所述差值生成所述当前扫描的程序指令的跳转关系数 字对,并保存所述跳转关系数字对。 可选地,所述的方法还包括: 若所述指令类型为非跳转类指令,则跳转至扫描所述多条程序指令中指令序号最 4 CN 111552959 A 说 明 书 2/7 页 小的未扫描的程序指令的步骤。 可选地,所述跳转类指令包括条件跳转指令;所述当所述指令类型为跳转类指令 时,在所述当前扫描的程序指令中提取跳转地址的步骤,包括: 当所述指令类型为条件跳转指令时,在所述当前扫描的程序指令中提取跳转地 址。 可选地,所述跳转类指令还包括非条件跳转指令;所述方法还包括: 当所述指令类型为非条件跳转指令时,则跳转至扫描所述多条程序指令中指令序 号最小的未扫描的程序指令的步骤。 本发明提供的一种程序特征序列生成装置,所述程序包括多条程序指令;所述多 条程序指令分别具有对应的指令序号;包括: 指令类型判断模块,用于当扫描所述程序时,扫描所述多条程序指令中指令序号 最小的未扫描的程序指令,并判断当前扫描的程序指令的指令类型; 跳转关系数字对生成模块,用于当所述指令类型为跳转类指令时,生成所述当前 扫描的程序指令的跳转关系数字对,并保存所述跳转关系数字对; 判断模块,用于判断所述当前运行的程序指令的指令序号是否等于预设阈值; 第一跳转模块,用于若否,则跳转至扫描所述多条程序指令中指令序号最小的未 扫描的程序指令的步骤; 特征序列生成模块,用于若是,则采用保存的所述跳转关系数字对生成特征序列, 并停止扫描所述程序。 可选地,所述多条程序指令还具有对应的指令地址;所述跳转关系数字对生成模 块,包括: 跳转地址提取子模块,用于当所述指令类型为跳转类指令时,在所述当前扫描的 程序指令中提取对应的跳转地址; 差值计算子模块,用于计算所述跳转地址与所述当前扫描的程序指令的指令地址 之间的差值; 当前计数器值获取模块子,用于获取预设计数器的当前计数器值; 跳转关系数字对生成子模块,用于采用所述当前计数器值和所述差值生成所述当 前扫描的程序指令的跳转关系数字对,并保存所述跳转关系数字对。 可选地,所述的装置还包括: 第二跳转模块,用于若所述指令类型为非跳转类指令,则跳转至扫描所述多条程 序指令中指令序号最小的未扫描的程序指令的步骤。 可选地,所述跳转类指令包括条件跳转指令;所述跳转地址提取子模块,包括: 跳转地址提取单元,用于当所述指令类型为条件跳转指令时,在所述当前扫描的 程序指令中提取跳转地址。 可选地,所述跳转类指令还包括非条件跳转指令;所述跳转地址提取子模块,还包 括: 跳转单元,用于当所述指令类型为非条件跳转指令时,则跳转至扫描所述多条程 序指令中指令序号最小的未扫描的程序指令的步骤。 从以上技术方案可以看出,本发明具有以下优点:本发明在扫描程序时,依次扫描 5 CN 111552959 A 说 明 书 3/7 页 程序指令,当程序指令为跳转类指令时,计算该程序指令的指令地址与跳转地址之间的差 值;采用该差值和该程序指令所对应的计数器值生成跳转关系数字对,以根据跳转关系数 字对生成特征序列。从而通过判断该特征序列是否为预期的特征序列来判断运行中的程序 是否被篡改。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其它的附图。 图1为本发明提供的一种程序特征序列生成方法实施例的步骤流程图; 图2为本发明提供的一种程序特征序列生成装置实施例的结构框图。
分享到:
收藏