CN111552958B - 一种程序运行特征提取方法和装置 - Google Patents
一种程序运行特征提取方法和装置 Download PDFInfo
- Publication number
- CN111552958B CN111552958B CN202010558723.9A CN202010558723A CN111552958B CN 111552958 B CN111552958 B CN 111552958B CN 202010558723 A CN202010558723 A CN 202010558723A CN 111552958 B CN111552958 B CN 111552958B
- Authority
- CN
- China
- Prior art keywords
- instruction
- program
- jump
- address
- current execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种程序运行特征提取方法和装置,包括:当程序运行时,在多条程序指令中确定当前执行程序指令;判断当前执行程序指令的指令类型;当指令类型为跳转类指令时,从当前执行程序指令中提取跳转地址;计算跳转地址与当前执行程序指令的指令地址之间的差值;获取当前执行程序指令的指令执行数;采用差值和指令执行数生成当前执行程序指令的运行特征关系。本发明通过计算当前执行程序的跳转地址与指令地址之间的差值;采用差值和指令执行数生成当前执行程序指令的运行特征关系。从而完成程序运行特征关系的提取。进而通过判断所提取的运行特征关系是否为预期的运行特征关系来判断运行中的程序是否被篡改。
Description
技术领域
本发明涉及特征提取技术领域,尤其涉及一种程序运行特征提取方法和装置。
背景技术
程序在运行前,需要进行可信检查,检查程序是否遭到篡改,以确保所运行的程序是预期的程序。程序在运行过程中,同样需要进行可信检查,确保程序运行的行为与预期行为一致。
现有技术中,多采用程序签名的方法检查程序是否遭到篡改,但这种方法仅适用于程序运行前的检查。在程序运行过程中,由于程序已经被打散在内存中,指令部分、数据部分、堆栈部分都有所不同,数据部分会时刻变化,因此难以在程序运行过程中检查程序是否遭到篡改。
发明内容
本发明提供了一种程序运行特征提取方法和装置,用于解决在程序运行过程中检查程序是否遭到篡改的问题。
本发明提供的一种程序运行特征提取方法,所述程序包括多条程序指令;所述多条程序指令分别具有对应的指令地址;所述的方法包括:
当程序运行时,在所述多条程序指令中确定当前执行程序指令;
判断所述当前执行程序指令的指令类型;
当所述指令类型为跳转类指令时,从所述当前执行程序指令中提取跳转地址;
计算所述跳转地址与所述当前执行程序指令的指令地址之间的差值;
获取所述当前执行程序指令的指令执行数;
采用所述差值和所述指令执行数生成所述当前执行程序指令的运行特征关系。
可选地,所述多条程序指令分别具有对应的指令序号;所述的方法还包括:
当所述指令类型为非跳转类指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
可选地,所述跳转类指令包括条件跳转指令;所述当所述指令类型为跳转类指令时,从所述当前执行程序指令中提取跳转地址的步骤,包括:
当所述指令类型为条件跳转指令时,判断所述当前执行程序指令是否执行对应的跳转操作;
当所述当前执行程序指令执行所述跳转操作时,从所述当前执行程序指令中提取跳转地址。
可选地,所述跳转类指令还包括非条件跳转指令,所述当所述指令类型为跳转类指令时,从所述当前执行程序指令中提取跳转地址的步骤,包括:
当所述指令类型为非条件跳转指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
本发明提供的一种程序运行特征提取装置,所述程序包括多条程序指令;所述多条程序指令分别具有对应的指令地址;所述的装置包括:
当前执行程序指令确定模块,用于当程序运行时,在所述多条程序指令中确定当前执行程序指令;
指令类型判断模块,用于判断所述当前执行程序指令的指令类型;
跳转地址提取模块,用于当所述指令类型为跳转类指令时,从所述当前执行程序指令中提取跳转地址;
差值计算模块,用于计算所述跳转地址与所述当前执行程序指令的指令地址之间的差值;
指令执行数获取模块,用于获取所述当前执行程序指令的指令执行数;
运行特征关系生成模块,用于采用所述差值和所述指令执行数生成所述当前执行程序指令的运行特征关系。
可选地,所述多条程序指令分别具有对应的指令序号;所述的装置还包括:
顺序执行模块,用于当所述指令类型为非跳转类指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
可选地,所述跳转类指令包括条件跳转指令;所述跳转地址提取模块,包括:
执行判断子模块,用于当所述指令类型为条件跳转指令时,判断所述条件跳转指令是否执行;
跳转地址提取子模块,用于当所述条件跳转指令执行时,从所述当前执行程序指令中提取跳转地址。
可选地,所述跳转类指令还包括非条件跳转指令,所述跳转地址提取模块,包括:
顺序执行子模块,用于当所述指令类型为非条件跳转指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
本发明提供的一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的程序运行特征提取方法的步骤。
本发明提供的一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现如上任一项所述的程序运行特征提取方法。
从以上技术方案可以看出,本发明具有以下优点:本发明在程序运行时,首先,判断当前执行程序指令是否为跳转类指令,若是,则从当前执行程序指令中提取跳转地址;计算跳转地址与当前执行程序指令的指令地址之间的差值;接着获取当前执行程序指令的指令执行数;采用差值和指令执行数生成当前执行程序指令的运行特征关系。从而完成程序运行特征关系的提取。进而通过判断所提取的运行特征关系是否为预期的运行特征关系来判断运行中的程序是否被篡改。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种程序运行特征提取方法的步骤流程图;
图2为本发明一种程序运行特征提取电路的输入输出示意图;
图3为本发明的电路架构示意图;
图4为本发明实施例提供的一种程序运行特征提取装置的结构框图。
具体实施方式
本发明实施例提供了一种程序运行特征提取方法,用于解决在程序运行过程中检查程序是否遭到篡改的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种程序运行特征提取方法的步骤流程图。
在实际应用中,出于保证信息安全的目的,在运行程序时,需要检测程序是否被篡改。而在程序运行过程中,由于程序已经被打散在内存中,指令部分、数据部分、堆栈部分都有所不同,数据部分会时刻变化,因此难以检测程序是否被篡改。因此,本发明的核心构思在于,通过计算当前执行的跳转类指令的跳转地址与指令地址之间的差值,以及获取当前执行的跳转类指令的指令执行数,采用上述计算得到的差值与所获取的指令执行数来生成运行特征关系。通过判断运行特征关系是否为预期的运行特征关系来判断程序是否被篡改。具体通过以下实施例进行说明。
本发明提供的一种程序运行特征提取方法,包括:
步骤101,当程序运行时,在所述多条程序指令中确定当前执行程序指令;
程序是由程序指令组成的,程序指令是指挥计算机执行各种操作的命令。在本发明实施例中,程序指令包括跳转类指令和非跳转类指令。跳转类指令可在该指令执行完毕的时候跳转至对应的程序指令并执行。非跳转类指令则会按程序指令的顺序顺次执行下一条程序指令。
在程序运行的过程中,首先确定当前正在执行的程序指令,以便于对正在执行的程序指令进行分析。
步骤102,判断所述当前执行程序指令的指令类型;
在本发明实施例中,由于只有跳转类指令具有相应的跳转地址,因此,在确定了当前执行程序指令后,需要确定当前执行程序指令的指令类型,以判断当前执行程序指令是否具有跳转关系。
在本发明实施例中,程序指令可以包括跳转类指令和非跳转类指令,其中,跳转类指令记录了该条程序指令执行完毕后需要跳转执行的程序指令的指令地址,用于在该条程序指令执行完毕后进行相应的跳转。
步骤103,当所述指令类型为跳转类指令时,从所述当前执行程序指令中提取跳转地址;
在本发明实施例中,当前正在执行的程序指令为跳转类指令时,可以提取当前执行的跳转类指令的跳转地址,用以确定当前执行的跳转类指令的跳转关系。
在本发明实施例中,跳转类指令包括条件跳转指令,步骤103可以包括以下子步骤:
S1,当所述指令类型为条件跳转指令时,判断所述当前执行程序指令是否执行对应的跳转操作;
S2,当所述当前执行程序指令执行所述跳转操作时,从所述当前执行程序指令中提取跳转地址。
在本发明实施例中,只有当当前执行程序指令为条件跳转指令并执行对应的跳转操作时,才需要提取当前执行程序指令的跳转地址,因为只有当其执行对应的跳转操作,外界对跳转地址的更改才会反映到程序执行中,从而导致程序运行过程发生变化。与此相反,若当前执行程序指令并未执行对应的跳转操作,即使跳转地址被篡改,也不会影响程序的运行顺序。因此,在本发明实施例中,当当前执行程序指令为条件跳转指令时,需要判断当前执行程序指令是否执行对应的跳转操作,当当前执行程序指令执行跳转操作时,才从当前执行程序指令中提取跳转地址。同时,记录当前正在执行的程序指令为已执行的第几条指令。用于标识该程序指令的执行顺序是否被篡改。
在本发明实施例中,所述多条程序指令分别具有对应的指令序号;所述的方法还包括:
当所述指令类型为非跳转类指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
具体地,当当前执行程序指令的指令类型为非跳转类指令时,表征该程序指令没有对应的跳转关系,因此直接按程序指令的指令顺序执行下一条程序指令即可。
例如,当当前执行的程序指令为指令序号为5的程序指令,且该程序指令是非跳转类指令时,直接跳转执行指令序号为6的程序指令即可。
在本发明实施例中,所述跳转类指令还包括非条件跳转指令,所述当所述指令类型为跳转类指令时,从所述当前执行程序指令中提取跳转地址的步骤,包括:
当所述指令类型为非条件跳转指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
具体地,当当前执行程序指令的指令类型为非条件跳转指令时,表征该程序指令没有执行跳转操作的条件,因此该程序指令不执行跳转操作,直接按程序指令的指令顺序执行下一条程序指令即可。
例如,当当前执行的程序指令为指令序号为6的程序指令,且该程序指令是非跳转类指令时,直接跳转执行指令序号为7的程序指令即可。
步骤104,计算所述跳转地址与所述当前执行程序指令的指令地址之间的差值;
在获取到正在执行的程序指令的跳转地址和自身的指令地址后,可以计算该程序指令的跳转地址与指令地址之间的差值,用于确定该程序指令的跳转内容是否被篡改。
在一个示例中,当正在执行的程序指令的指令地址为N1,跳转地址为N5时,跳转地址和指令地址之间的差值为(N5-N1)。在获取到正在执行的程序指令的跳转地址和自身的指令地址后,可以计算该程序指令的跳转地址与指令地址之间的差值,用于确定该程序指令的跳转内容是否被篡改。
在一个示例中,当正在执行的程序指令的指令地址为N1,跳转地址为N5时,跳转地址和指令地址之间的差值为(N5-N1)。
步骤105,获取所述当前执行程序指令的指令执行数;
在本发明实施例中,可以通过设置计数器来统计当前执行程序对应的指令执行数。具体地,当程序开始执行时,首先将计数器数值置为0,此后每执行一条程序指令,计数器的数值便加1,以此来统计程序指令的执行数。其中,指令执行数用于表征当前正在执行的程序指令为程序的所有程序指令中,第几条被执行的程序指令。
步骤106,采用所述差值和所述指令执行数生成所述当前执行程序指令的运行特征关系。
在获取到当前执行程序指令的指令执行数和当前执行程序指令的指令地址与跳转地址之间的差值后,可以生成用于表征当前执行程序指令的跳转情况的运行特征关系。
为使本领域技术人员充分理解本发明实施例,下面通过具体示例进行说明。
请参阅图2,图2为本发明一种程序运行特征提取电路的输入输出示意图。如图2所示,当某一程序开始运行后,向电路输入程序指令INS及其地址PC和控制信号Ctrl后,电路会判断该程序指令INS是否为跳转指令,若是,则会计算地址PC与跳转地址之间的差值Delta,并输出Delta和该程序指令INS的指令序号N。根据指令序号和已执行程序的跳转关系,可以计算指令序号与指令执行数之间的对应关系,从而获取指令执行数,与Delta构成程序运行特征关系。
电路实现本发明实施例的方法的架构如图3所示,图3为本发明的电路架构示意图。
在图3中,电路包括计算模块A,跳转指令判断模块B,计数模块C和寄存器模块D。其中,跳转指令判断模块B输入为程序指令INS和控制信号Ctrl,控制信号Ctrl包括置零信号,输出为是否跳转指令YN;若输入程序指令INS是条件跳转指令且跳转执行,则输出信号YN=1;否则YN=0。计算模块A的输入为程序指令INS、控制信号Ctrl,是否跳转指令YN和指令地址PC,输出为Delta;当YN=1时,Delta=跳转地址-PC,若YN=0,则Delta=1,其中跳转地址取自程序指令INS。计数器模块C的输入为控制信息Ctrl,包括置零信号、时钟信号等,输出为计数值N,N每次自加1。寄存器模块D的输入为计算模块A的输出Delta,控制信号Ctrl,输出是输入Delta。
具体地,当程序开始运行时,程序指令如表1所示,计数器N初始化为0;
第一步:N=1,第1条指令不是条件跳转指令,跳转指令判断模块B输出YN为0,计算模块A输出Delta为1,电路输出N=1,Delta=1。
第二步:N=2,第2条指令不是条件跳转指令,跳转指令判断模块B输出YN为0,计算模块A输出Delta为1,电路输出N=2,Delta=1。
第三步:N=3,第3条指令是条件跳转指令,跳转到地址5,跳转指令判断模块A输出YN为1,计算模块A输出Delta为2(5-3=2),电路输出N=3,Delta=2。
第四步,N=4,第5条指令不是条件跳转指令,跳转指令判断模块B输出YN为0,计算模块A输出Delta为1,电路输出N=4,Delta=1。
第五步,N=5,第6条指令是条件跳转指令,跳转到地址4,跳转指令判断模块A输出YN为1,计算模块A输出Delta为-2(4-6=-2),电路输出N=5,Delta=-2。
第六步,N=6,第4条指令不是条件跳转指令,跳转指令判断模块B输出YN为0,计算模块A输出Delta为1,电路输出N=6,Delta=1。
第七步,N=7,第5条指令不是条件跳转指令,跳转指令判断模块B输出YN为0,计算模块A输出Delta为1,电路输出N=7,Delta=1。
第八步,N=8,第6条指令是条件跳转指令但该指令不发生跳转,跳转指令判断模块B输出YN为0,计算模块A输出Delta1,电路输出N=8,Delta=1。
第九步,N=9,第7条指令不是条件跳转指令,跳转指令判断模块B输出YN为0,计算模块A输出Delta为1,电路输出N=9,Delta=1。
表1
提取所有输入为跳转指令的输出值,便可构建程序运行特征关系。
本发明在程序运行时,首先,判断当前执行程序指令是否为跳转类指令,若是,则从当前执行程序指令中提取跳转地址;计算跳转地址与当前执行程序指令的指令地址之间的差值;接着获取当前执行程序指令的指令执行数;采用差值和指令执行数生成当前执行程序指令的运行特征关系。从而完成程序运行特征关系的提取。进而通过判断所提取的运行特征关系是否为预期的运行特征关系来判断运行中的程序是否被篡改。
请参阅图4,图4为本发明实施例提供的一种程序运行特征提取装置的结构框图。
本发明提供的一种程序运行特征提取装置,包括:
当前执行程序指令确定模块401,用于当程序运行时,在所述多条程序指令中确定当前执行程序指令;
指令类型判断模块402,用于判断所述当前执行程序指令的指令类型;
跳转地址提取模块403,用于当所述指令类型为跳转类指令时,从所述当前执行程序指令中提取跳转地址;
差值计算模块404,用于计算所述跳转地址与所述当前执行程序指令的指令地址之间的差值;
指令执行数获取模块405,用于获取所述当前执行程序指令的指令执行数;
运行特征关系生成模块406,用于采用所述差值和所述指令执行数生成所述当前执行程序指令的运行特征关系。
在本发明实施例中,所述多条程序指令分别具有对应的指令序号;所述的装置还包括:
顺序执行模块,用于当所述指令类型为非跳转类指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
在本发明实施例中,所述跳转类指令包括条件跳转指令;所述跳转地址提取模块,包括:
执行判断子模块,用于当所述指令类型为条件跳转指令时,判断所述条件跳转指令是否执行;
跳转地址提取子模块,用于当所述条件跳转指令执行时,从所述当前执行程序指令中提取跳转地址。
在本发明实施例中,所述跳转类指令还包括非条件跳转指令,所述跳转地址提取模块,包括:
顺序执行子模块,用于当所述指令类型为非条件跳转指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
本发明实施例还提供了一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述电子设备执行本发明实施例所述的方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现如本发明实施例所述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置、电子设备和计算机可读存储介质的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、方法电子设备和计算机可读存储介质,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.一种程序运行特征提取方法,其特征在于,所述程序包括多条程序指令;所述多条程序指令分别具有对应的指令地址;所述的方法包括:
当程序运行时,在所述多条程序指令中确定当前执行程序指令;
判断所述当前执行程序指令的指令类型;
当所述指令类型为跳转类指令且执行时,从所述当前执行程序指令中提取跳转地址;
计算所述跳转地址与所述当前执行程序指令的指令地址之间的差值;
获取所述当前执行程序指令的指令执行数;
采用所述差值和所述指令执行数生成所述当前执行程序指令的运行特征关系;所述运行特征关系用于表征当前执行程序指令的跳转情况;其中,所述多条程序指令分别具有对应的指令序号;所述的方法还包括:
当所述指令类型为非跳转类指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令;
其中,所述跳转类指令包括条件跳转指令;所述当所述指令类型为跳转类指令且执行时,从所述当前执行程序指令中提取跳转地址的步骤,包括:
当所述指令类型为条件跳转指令时,判断所述当前执行程序指令是否执行对应的跳转操作;
当所述当前执行程序指令执行所述跳转操作时,从所述当前执行程序指令中提取跳转地址;
其中,所述跳转类指令还包括非条件跳转指令,所述当所述指令类型为跳转类指令且执行时,从所述当前执行程序指令中提取跳转地址的步骤,包括:
当所述指令类型为非条件跳转指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
2.一种程序运行特征提取装置,其特征在于,所述程序包括多条程序指令;所述多条程序指令分别具有对应的指令地址;所述的装置包括:
当前执行程序指令确定模块,用于当程序运行时,在所述多条程序指令中确定当前执行程序指令;
指令类型判断模块,用于判断所述当前执行程序指令的指令类型;
跳转地址提取模块,用于当所述指令类型为跳转类指令且执行时,从所述当前执行程序指令中提取跳转地址;
差值计算模块,用于计算所述跳转地址与所述当前执行程序指令的指令地址之间的差值;
指令执行数获取模块,用于获取所述当前执行程序指令的指令执行数;
运行特征关系生成模块,用于采用所述差值和所述指令执行数生成所述当前执行程序指令的运行特征关系;所述运行特征关系用于表征当前执行程序指令的跳转情况;
其中,所述多条程序指令分别具有对应的指令序号;所述的装置还包括:
顺序执行模块,用于当所述指令类型为非跳转类指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令;
其中,所述跳转类指令包括条件跳转指令;所述跳转地址提取模块,包括:
执行判断子模块,用于当所述指令类型为条件跳转指令时,判断所述条件跳转指令是否执行;
跳转地址提取子模块,用于当所述条件跳转指令执行时,从所述当前执行程序指令中提取跳转地址;
其中,所述跳转类指令还包括非条件跳转指令,所述跳转地址提取模块,包括:
顺序执行子模块,用于当所述指令类型为非条件跳转指令时,按照所述多条程序指令对应的指令序号顺序执行下一条程序指令。
3.一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1所述的程序运行特征提取方法的步骤。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1所述的程序运行特征提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010558723.9A CN111552958B (zh) | 2020-06-18 | 2020-06-18 | 一种程序运行特征提取方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010558723.9A CN111552958B (zh) | 2020-06-18 | 2020-06-18 | 一种程序运行特征提取方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552958A CN111552958A (zh) | 2020-08-18 |
CN111552958B true CN111552958B (zh) | 2024-01-19 |
Family
ID=72008836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010558723.9A Active CN111552958B (zh) | 2020-06-18 | 2020-06-18 | 一种程序运行特征提取方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552958B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616151A (zh) * | 2009-07-31 | 2009-12-30 | 中国科学院软件研究所 | 一种自动化的网络攻击特征生成方法 |
CN101939724A (zh) * | 2008-02-06 | 2011-01-05 | Nxp股份有限公司 | 数据处理设备及用于执行混淆程序的方法 |
CN104407968A (zh) * | 2014-10-30 | 2015-03-11 | 北京控制工程研究所 | 一种通过静态分析测算代码指令最长运行时间的方法 |
CN109508536A (zh) * | 2017-09-15 | 2019-03-22 | 华为技术有限公司 | 一种篡改程序流攻击的检测方法和装置 |
CN110851182A (zh) * | 2019-10-24 | 2020-02-28 | 珠海市杰理科技股份有限公司 | 指令获取方法、装置、计算机设备和存储介质 |
-
2020
- 2020-06-18 CN CN202010558723.9A patent/CN111552958B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101939724A (zh) * | 2008-02-06 | 2011-01-05 | Nxp股份有限公司 | 数据处理设备及用于执行混淆程序的方法 |
CN101616151A (zh) * | 2009-07-31 | 2009-12-30 | 中国科学院软件研究所 | 一种自动化的网络攻击特征生成方法 |
CN104407968A (zh) * | 2014-10-30 | 2015-03-11 | 北京控制工程研究所 | 一种通过静态分析测算代码指令最长运行时间的方法 |
CN109508536A (zh) * | 2017-09-15 | 2019-03-22 | 华为技术有限公司 | 一种篡改程序流攻击的检测方法和装置 |
CN110851182A (zh) * | 2019-10-24 | 2020-02-28 | 珠海市杰理科技股份有限公司 | 指令获取方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111552958A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2780820B1 (en) | Measuring web page rendering time | |
CN107908959B (zh) | 网站信息检测方法、装置、电子设备及存储介质 | |
JP2013511097A5 (zh) | ||
WO2019019628A1 (zh) | 移动应用的测试方法、装置、测试设备及介质 | |
CN108776595B (zh) | 一种gpu服务器的显卡的识别方法、装置、设备及介质 | |
CN104536810B (zh) | 一种基于栈的异常检测方法和装置 | |
CN106161133B (zh) | 一种网页加载时间的测试方法及装置 | |
US9652355B2 (en) | Bottleneck detection device, method and recording medium storing program | |
CN107292168A (zh) | 检测程序代码的方法及装置、服务器 | |
CN115686961A (zh) | 处理器测试方法、装置及电子设备 | |
CN114676040A (zh) | 一种测试覆盖率验证方法、装置及存储介质 | |
CN110287700B (zh) | 一种iOS应用安全分析方法及装置 | |
CN110245074B (zh) | 一种日志记录的生成方法、装置、存储介质和服务器 | |
CN110580220A (zh) | 测量代码段执行时间的方法及终端设备 | |
CN111552958B (zh) | 一种程序运行特征提取方法和装置 | |
US10169190B2 (en) | Call trace generation via behavior computation | |
CN110766402B (zh) | 交易顺序依赖漏洞检测方法、系统、电子装置及存储介质 | |
CN107085532B (zh) | 任务监听方法和装置 | |
US20150154103A1 (en) | Method and apparatus for measuring software performance | |
CN111295658B (zh) | 模拟装置、模拟方法和计算机能读取的存储介质 | |
CN113703753B (zh) | 用于产品开发的方法、装置和产品开发系统 | |
JP6048119B2 (ja) | 異常原因推定プログラム、異常原因推定装置及び異常原因推定方法 | |
US20230367884A1 (en) | Cyber attack scenario generation method and device | |
CN114662097A (zh) | Csv文件注入攻击的检测方法和装置、电子设备和存储介质 | |
US9594657B2 (en) | Method of analysing memory usage and user terminal performing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |