CN117270878B - 程序执行路径中程序变量的约束条件提取方法及设备 - Google Patents
程序执行路径中程序变量的约束条件提取方法及设备 Download PDFInfo
- Publication number
- CN117270878B CN117270878B CN202311559245.3A CN202311559245A CN117270878B CN 117270878 B CN117270878 B CN 117270878B CN 202311559245 A CN202311559245 A CN 202311559245A CN 117270878 B CN117270878 B CN 117270878B
- Authority
- CN
- China
- Prior art keywords
- basic block
- state
- basic
- control flow
- blocks
- 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 30
- 238000000034 method Methods 0.000 claims description 17
- 238000001514 detection method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 description 7
- 239000000243 solution Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000010949 in-process test method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种程序执行路径中程序变量的约束条件提取方法及设备,包括:获取函数控制流图和起始基本块;将每个基本块对应一个状态,构建基本块‑状态字典;根据控制流图的控制流关系,采用广度优先的策略进行状态步进,顺序执行对应基本块中的代码,维护基本块‑状态字典;如果当前状态对应的基本块为谓词基本块,跟踪其每个分支的跳转,并在跳转到达后继基本块时,生成对应状态,并提取跳转的约束条件。仅提取谓词基本块的分支跳转相关的约束条件,而不需要探索从起始状态到当前谓词基本块对应状态的所有可能路径,能较大地提升运行速率。
Description
技术领域
本发明属于软件检测技术领域,本发明涉及一种程序执行路径中程序变量的约束条件提取方法及设备。
背景技术
控制流图(Control Flow Graph, CFG)是程序的抽象表现,反映了程序中基本块所有可能的执行路径,是二进制程序分析的重要部分。在控制流图中,将基本块中包含条件语句,且具有多条跳转分支的基本块称为谓词基本块。在程序执行过程中,当执行到一个谓词基本块时,程序会根据条件语句具体选择相应的分支连接的基本块继续执行。这种分支执行结构的存在,会使得程序的执行流程变得复杂,将增加程序分析的难度。
约束条件(Constraints)是对变量之间关系的限制条件,通常以方程组或不等式组的形式表示。这些条件可以限制变量的取值范围和描述变量之间的依赖关系。约束条件提取是程序高级别检测分析的基础,其主要目的是从程序执行路径中提取出关于程序变量的约束条件,以便后续的检测分析。
申请号2023102263458公开了一种基于静态分析的程序源码的安全配置项约束提取方法,采取了流敏感的过程内分析的方法,过程内分析能覆盖到所有类型的类和方法,包括匿名内部类和动态调用等。为了能够精准提取配置项约束,采用了路径敏感的数据流分析方法,将粒度细分到语句级,每个语句分别维护一个约束集。此外为每一个配置项构建配置项的约束集,可以为用户提供配置值推荐。该方法用于掌握安全配置项受到的约束,并没有给出程序分析中如何提取约束条件的问题解决方案。
发明内容
本发明的目的在于提供一种程序执行路径中程序变量的约束条件提取方法及设备,仅提取谓词基本块的分支跳转相关的约束条件,而不需要探索从起始状态到当前谓词基本块对应状态的所有可能路径,能较大地提升运行速率。
实现本发明目的的技术解决方案为:
一种程序执行路径中程序变量的约束条件提取方法,包括以下步骤:
S01:获取函数控制流图和起始基本块;
S02:将每个基本块对应一个状态,构建基本块-状态字典;
S03:根据控制流图的控制流关系,采用广度优先的策略进行状态步进,顺序执行对应基本块中的代码,维护基本块-状态字典;
S04:如果当前状态对应的基本块为谓词基本块,跟踪其每个分支的跳转,并在跳转到达后继基本块时,生成对应状态,并提取跳转的约束条件。
优选的技术方案中,所述步骤S02中状态包括基本块被执行时的内存、寄存器、堆栈、各种标志位信息及注入的符号变量。
优选的技术方案中,所述步骤S02中还包括,构建状态队列,所述状态队列用于存储将要访问的基本块的状态,并采用先进先出的方式进行队列访问。
优选的技术方案中,在状态队列为空时,停止状态步进,并进行基本块覆盖率检测,检查是否存在未被访问的基本块;如果存在未被访问的基本块,以选取的未访问基本块为起始基本块,生成对应状态并加入状态队列,继续进行状态步进。
优选的技术方案中,所述步骤S04中谓词基本块的识别方法包括:
对用户代码基本块集合中的基本块进行判断,如果基本块在控制流图中存在多个后继基本块并且该基本块中包含有条件跳转指令,且在控制流图上的出度大于等于2,则判定为谓词基本块。
本发明还公开了一种程序执行路径中程序变量的约束条件提取设备,包括:
控制流图和基本块获取模块,获取函数控制流图和起始基本块;
基本块-状态字典构建模块,将每个基本块对应一个状态,构建基本块-状态字典;
基本块-状态字典更新模块,根据控制流图的控制流关系,采用广度优先的策略进行状态步进,顺序执行对应基本块中的代码,维护基本块-状态字典;
约束条件提取模块,如果当前状态对应的基本块为谓词基本块,跟踪其每个分支的跳转,并在跳转到达后继基本块时,生成对应状态,并提取跳转的约束条件。
优选的技术方案中,所述基本块-状态字典更新模块还包括,构建状态队列,所述状态队列用于存储将要访问的基本块的状态,并采用先进先出的方式进行队列访问。
优选的技术方案中,还包括基本块覆盖率检测模块,在状态队列为空时,停止状态步进,并进行基本块覆盖率检测,检查是否存在未被访问的基本块;如果存在未被访问的基本块,以选取的未访问基本块为起始基本块,生成对应状态并加入状态队列,继续进行状态步进。
优选的技术方案中,所述约束条件提取模块中谓词基本块的识别方法包括:
对用户代码基本块集合中的基本块进行判断,如果基本块在控制流图中存在多个后继基本块并且该基本块中包含有条件跳转指令,且在控制流图上的出度大于等于2,则判定为谓词基本块。
本发明又公开了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的程序执行路径中程序变量的约束条件提取方法。
本发明与现有技术相比,其显著优点为:
本发明算法仅提取谓词基本块的分支跳转相关的约束条件,而不需要探索从起始状态到当前谓词基本块对应状态的所有可能路径,能较大地提升运行速率。
同时,通过基本块覆盖率检测,以确保访问控制流图中的所有基本块,从而触发所有代码,并完成谓词基本块的分支跳转约束条件的提取,从而确保约束条件的完整性。
此外,本发明算法还对基本块的访问进行了记录,不会出现重复访问的情况,这样可以避免陷入循环访问,可提高本发明算法的健壮性。
附图说明
图1为本实施例程序执行路径中程序变量的约束条件提取方法的流程图;
图2为本实施例程序执行路径中程序变量的约束条件提取设备的原理框图。
具体实施方式
本发明的原理是:本发明算法仅提取谓词基本块的分支跳转相关的约束条件,而不需要探索从起始状态到当前谓词基本块对应状态的所有可能路径。同时,通过基本块覆盖率检测,以确保访问控制流图中的所有基本块,从而触发所有代码,并完成谓词基本块的分支跳转约束条件的提取,从而确保约束条件的完整性。此外,本发明算法还对基本块的访问进行了记录,不会出现重复访问的情况,这样可以避免陷入循环访问,可提高本发明算法的健壮性。
实施例1:
如图1所示,一种程序执行路径中程序变量的约束条件提取方法,包括以下步骤:
S01:获取函数控制流图和起始基本块;
S02:将每个基本块对应一个状态,构建基本块-状态字典;
S03:根据控制流图的控制流关系,采用广度优先的策略进行状态步进,顺序执行对应基本块中的代码,维护基本块-状态字典;
S04:如果当前状态对应的基本块为谓词基本块,跟踪其每个分支的跳转,并在跳转到达后继基本块时,生成对应状态,并提取跳转的约束条件。
一较佳的实施例中,步骤S02中状态包括基本块被执行时的内存、寄存器、堆栈、各种标志位信息及注入的符号变量。
一较佳的实施例中,步骤S02中还包括,构建状态队列,所述状态队列用于存储将要访问的基本块的状态,并采用先进先出的方式进行队列访问。
一较佳的实施例中,在状态队列为空时,停止状态步进,并进行基本块覆盖率检测,检查是否存在未被访问的基本块;如果存在未被访问的基本块,以选取的未访问基本块为起始基本块,生成对应状态并加入状态队列,继续进行状态步进。
一较佳的实施例中,步骤S04中谓词基本块的识别方法包括:
对用户代码基本块集合中的基本块进行判断,如果基本块在控制流图中存在多个后继基本块并且该基本块中包含有条件跳转指令,且在控制流图上的出度大于等于2,则判定为谓词基本块。
另一实施例中,一种计算机存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的程序执行路径中程序变量的约束条件提取方法。
又一实施例中,如图2所示,一种程序执行路径中程序变量的约束条件提取设备,包括:
控制流图和基本块获取模块10,获取函数控制流图和起始基本块;
基本块-状态字典构建模块20,将每个基本块对应一个状态,构建基本块-状态字典;
基本块-状态字典更新模块30,根据控制流图的控制流关系,采用广度优先的策略进行状态步进,顺序执行对应基本块中的代码,维护基本块-状态字典;
约束条件提取模块40,如果当前状态对应的基本块为谓词基本块,跟踪其每个分支的跳转,并在跳转到达后继基本块时,生成对应状态,并提取跳转的约束条件。
具体的,下面以一较佳的实施例为例对程序执行路径中程序变量的约束条件提取设备的工作流程说明如下:
本发明构建了一种状态管理机制来提取约束条件,在该机制下,每个基本块将会对应一个状态,该状态包含了这个基本块被执行时的内存、寄存器、堆栈以及各种标志位等信息,以及注入的符号变量。为此,本发明设定一个基本块-状态字典。该状态管理机制下将根据控制流图的控制流关系,采用广度优先的策略进行状态步进。状态步进将在当前状态,执行基本块相关代码,并跳转到后继基本块,然后生成一个新的状态。
在步进过程中,需要维护基本块-状态字典,并在达到相应谓词基本块时从其对应的状态中提取相关约束条件。首先,将初始化一个状态队列,该队列存储待访问的状态。根据需要检测的程序具体代码段选择一个基本块作为检测起点,称该基本块为起始基本块。并在完成相应符号变量的注入操作后,为起始基本块初始化一个状态,称为起始状态,这个状态作为状态步进的起始状态。然后,根据控制流进行状态步进,在状态步进过程中将会记录每个基本块的访问情况,并在步进到达基本块时生成新状态。如果当前状态对应的基本块为谓词基本块时,将跟踪其每个分支的跳转,并在跳转到达后继基本块时,生成对应状态,并在这些状态中可以提取跳转所必须满足的约束条件。在状态队列为空时,将利用所记录的基本块访问情况来进行基本块访问覆盖率检测,来检查是否存在未被访问的基本块。如果存在未被访问的基本块,将选取未被生成的基本块生成对应状态并加入状态队列,继续进行状态步进,从而使得所有的基本块都可被访问到,并且每个基本块中的代码都可被触发,以确保每个谓词基本块分支跳转的约束条件都被提取。
具体的,谓词基本块的识别方法包括:
对用户代码基本块集合中的基本块进行判断,如果基本块在控制流图中存在多个后继基本块并且该基本块中包含有条件跳转指令,且在控制流图上的出度大于等于2,则判定为谓词基本块。
具体的,谓词基本块分支跳转约束条件提取算法如下所示:
输入: 函数控制流图 G = (V, E), 起始基本块 B_start
输出: 约束条件字典constraints
步骤1:获取函数控制流图G和起始基本块B_start
步骤2:构建已访问基本块字典visited
步骤3:构建基本块-状态字典stateDict
步骤4:构建状态队列queue
步骤5:初始化B_start状态state = initializeState(B_start),并完成符号变量注入
步骤6:维持基本块-状态字典stateDict[B_start] = state
步骤7:将B_start状态state加入状态队列queue.append(state)
步骤8:构建约束条件字典constraints
步骤9:当状态队列queue不为空时,执行步骤10~步骤31进行迭代
步骤10:从状态队列中取出队首状态state = queue.pop(0)
步骤11:获取该状态对应的基本块B,并标记B为已访问
步骤12:如果基本B块未被访问,则执行步骤13,否则执行步骤14
步骤13:记录访问的基本块B,即visited[B]值为真
步骤14:维持基本块-状态字典stateDict[B]=state
步骤15:对基本块B进行状态步进,执行相应指令,并更新状态,即step=stateStep(state)
步骤16:获取步进后生成的新状态,即SuccessiveStates=getSuccessors(step)
步骤17:跟踪新状态:for state_next in SuccessiveStates: #
步骤18:获取对应基本块,即block = getBlock(state_next)
步骤19:更新基本块-状态字典,即stateDict[block]= state_next
步骤20:将其加入状态队列中,即queue.append(state_next)
步骤21:构建基本块的约束条件:blockConstraints = {}
步骤22:如果基本块B是谓词基本块,则执行步骤23~步骤25,否则执行步骤26
步骤23:提取约束条件,constraint = extractConstraint(state_next)
步骤24:将约束条件添加到基本块的约束列表中,即blockConstraints[block]=constraint
步骤25:将基本块B的约束条件存储到字典中,即constraints[B] =blockConstraints
步骤26:如果队列为空,则停止步进,执行步骤27,否则执行步骤32
步骤27:进行基本块覆盖率检查,即blockCoverageCheck(G,visited)
步骤28:如果存在未被访问的基本块,执行步骤29~步骤31,否则执行步骤32
步骤29:算法选择一个未被访问的基本块uncovered_block,即uncovered_block= selectUnvisitedBlock(G,visited),
步骤30:重新初始化未访问基本块的状态,即new_state = initializeState(uncovered_block)
步骤31:将状态new_state加入状态队列,以继续探索未被访问的基本块,即queue.append(new_state)
步骤32:算法返回存储了基本块约束条件的字典constraints
该算法的输入包括函数控制流图G和起始基本块B_start。首先初始化已访问基本块字典、基本块-状态字典和状态队列。然后,B_start基本块构建一个初始状态并完成符号变量注入,再将该状态加入状态队列。
接下来,算法进入主循环,当状态队列不为空时进行迭代。在每次迭代中,算法从状态队列中取出队首状态state,并进行处理。算法首先获取该状态对应的基本块B,并标记B为已访问。然后,执行状态步进操作,执行相应指令并更新状态。通过获取步进后生成的新状态SuccessiveStates,算法跟踪新状态并将其加入状态队列中。同时,算法将新状态与对应的基本块建立映射关系,更新基本块-状态字典stateDict。如果当前基本块B是谓词基本块,算法提取该状态的约束条件,并将约束条件添加到基本块的约束列表中。最后,将基本块B的约束条件存储到字典constraints中。
在状态队列为空时,算法进行基本块覆盖率检查。如果存在未被访问的基本块,算法选择一个未被访问的基本块uncovered_block,并重新初始化其状态。然后,将该状态加入状态队列,以继续探索未被访问的基本块。最终,算法返回存储了基本块约束条件的字典constraints。
本发明的技术关键点和欲保护点是:(1)构建基本块-状态字典:构建一个基本块-状态字典,每个基本块将会对应一个状态;(2)记录访问的基本块:对基本块的访问进行了记录,不会出现重复访问的情况,这样可以避免陷入循环访问;(3)基本块-状态字典更新:根据控制流图的控制流关系将采用广度优先的策略进行状态步进,步进操作将会顺序执行对应基本块中的代码,并维护基本块-状态字典;(4)约束条件提取:如果当前状态为谓词基本块(带有条件跳转分支结构的基本块)对应状态,跟踪其生成的新状态,并提取对应约束条件,无需进行可满足性验证;(5)基本块覆盖率检测:如果访问队列为空,则停止步进,并进行基本块覆盖率检测。如果存在未访问的基本块,以选取的未访问基本块为起始基本块。通过基本块覆盖率检测确保访问控制流图中的所有基本块,从而触发所有代码,并完成谓词基本块的分支跳转约束条件的提取,从而确保约束条件的完整性;(6)构建状态队列:构建状态队列用于存储将要访问的状态,并采用先进先出的方式进行队列访问。
上述实施例为本发明优选地实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种程序执行路径中程序变量的约束条件提取方法,其特征在于,包括以下步骤:
S01:获取函数控制流图和起始基本块;
S02:将每个基本块对应一个状态,构建基本块-状态字典,将状态与对应的基本块建立映射关系;
S03:根据控制流图的控制流关系,采用广度优先的策略进行状态步进,顺序执行对应基本块中的代码,维护基本块-状态字典;
S04:如果当前状态对应的基本块为谓词基本块,跟踪其每个分支的跳转,并在跳转到达后继基本块时,生成对应状态,并提取跳转的约束条件。
2.根据权利要求1所述的程序执行路径中程序变量的约束条件提取方法,其特征在于,所述步骤S02中状态包括基本块被执行时的内存、寄存器、堆栈、各种标志位信息及注入的符号变量。
3.根据权利要求1所述的程序执行路径中程序变量的约束条件提取方法,其特征在于,所述步骤S02中还包括,构建状态队列,所述状态队列用于存储将要访问的基本块的状态,并采用先进先出的方式进行队列访问。
4.根据权利要求3所述的程序执行路径中程序变量的约束条件提取方法,其特征在于,在状态队列为空时,停止状态步进,并进行基本块覆盖率检测,检查是否存在未被访问的基本块;如果存在未被访问的基本块,以选取的未访问基本块为起始基本块,生成对应状态并加入状态队列,继续进行状态步进。
5.根据权利要求1所述的程序执行路径中程序变量的约束条件提取方法,其特征在于,所述步骤S04中谓词基本块的识别方法包括:
对用户代码基本块集合中的基本块进行判断,如果基本块在控制流图中存在多个后继基本块并且该基本块中包含有条件跳转指令,且在控制流图上的出度大于等于2,则判定为谓词基本块。
6.一种程序执行路径中程序变量的约束条件提取设备,其特征在于,包括:
控制流图和基本块获取模块,获取函数控制流图和起始基本块;
基本块-状态字典构建模块,将每个基本块对应一个状态,构建基本块-状态字典,将状态与对应的基本块建立映射关系;
基本块-状态字典更新模块,根据控制流图的控制流关系,采用广度优先的策略进行状态步进,顺序执行对应基本块中的代码,维护基本块-状态字典;
约束条件提取模块,如果当前状态对应的基本块为谓词基本块,跟踪其每个分支的跳转,并在跳转到达后继基本块时,生成对应状态,并提取跳转的约束条件。
7.根据权利要求6所述的程序执行路径中程序变量的约束条件提取设备,其特征在于,所述基本块-状态字典更新模块还包括,构建状态队列,所述状态队列用于存储将要访问的基本块的状态,并采用先进先出的方式进行队列访问。
8.根据权利要求7所述的程序执行路径中程序变量的约束条件提取设备,其特征在于,还包括基本块覆盖率检测模块,在状态队列为空时,停止状态步进,并进行基本块覆盖率检测,检查是否存在未被访问的基本块;如果存在未被访问的基本块,以选取的未访问基本块为起始基本块,生成对应状态并加入状态队列,继续进行状态步进。
9.根据权利要求6所述的程序执行路径中程序变量的约束条件提取设备,其特征在于,所述约束条件提取模块中谓词基本块的识别方法包括:
对用户代码基本块集合中的基本块进行判断,如果基本块在控制流图中存在多个后继基本块并且该基本块中包含有条件跳转指令,且在控制流图上的出度大于等于2,则判定为谓词基本块。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现权利要求1-5任一项所述的程序执行路径中程序变量的约束条件提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311559245.3A CN117270878B (zh) | 2023-11-22 | 2023-11-22 | 程序执行路径中程序变量的约束条件提取方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311559245.3A CN117270878B (zh) | 2023-11-22 | 2023-11-22 | 程序执行路径中程序变量的约束条件提取方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117270878A CN117270878A (zh) | 2023-12-22 |
CN117270878B true CN117270878B (zh) | 2024-02-09 |
Family
ID=89216449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311559245.3A Active CN117270878B (zh) | 2023-11-22 | 2023-11-22 | 程序执行路径中程序变量的约束条件提取方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117270878B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170124322A1 (en) * | 2014-06-20 | 2017-05-04 | Secure-Ic Sas | A computer implemented method and a system for controlling dynamically the execution of a code |
CN109840416A (zh) * | 2017-11-28 | 2019-06-04 | 西安玖诚玖谊实业有限公司 | 恶意代码行为自动分析系统 |
CN114385185A (zh) * | 2021-12-24 | 2022-04-22 | 深圳前海微众银行股份有限公司 | 一种智能合约的控制流图生成方法及装置 |
CN114817927A (zh) * | 2022-03-30 | 2022-07-29 | 北京邮电大学 | 基于分支覆盖指导的有效符号执行方法及装置 |
-
2023
- 2023-11-22 CN CN202311559245.3A patent/CN117270878B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170124322A1 (en) * | 2014-06-20 | 2017-05-04 | Secure-Ic Sas | A computer implemented method and a system for controlling dynamically the execution of a code |
CN109840416A (zh) * | 2017-11-28 | 2019-06-04 | 西安玖诚玖谊实业有限公司 | 恶意代码行为自动分析系统 |
CN114385185A (zh) * | 2021-12-24 | 2022-04-22 | 深圳前海微众银行股份有限公司 | 一种智能合约的控制流图生成方法及装置 |
CN114817927A (zh) * | 2022-03-30 | 2022-07-29 | 北京邮电大学 | 基于分支覆盖指导的有效符号执行方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117270878A (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Berthomieu et al. | Bridging the gap between timed automata and bounded time Petri nets | |
Dang et al. | Binary reachability analysis of discrete pushdown timed automata | |
Yu et al. | Symbolic string verification: Combining string analysis and size analysis | |
US11004003B2 (en) | Machine learning based exploit detection | |
CN111723345B (zh) | 基于回调函数的控制流混淆方法及系统 | |
CN113419960B (zh) | 用于可信操作系统内核模糊测试的种子生成方法及系统 | |
Bouyer et al. | The cost of punctuality | |
Jurdziński et al. | Model checking probabilistic timed automata with one or two clocks | |
Atig | Model-checking of ordered multi-pushdown automata | |
CN117270878B (zh) | 程序执行路径中程序变量的约束条件提取方法及设备 | |
CN111488276B (zh) | 基于代码跟踪的软件可靠性测试方法和装置 | |
CN116305131B (zh) | 脚本静态去混淆方法及系统 | |
CN112559983B (zh) | 软件安全加固方法、装置、电子设备及存储介质 | |
CN111488558B (zh) | 脚本保护方法、装置、计算机可读存储介质和计算机设备 | |
CN109165509A (zh) | 软件实时可信度量的方法、设备、系统及存储介质 | |
Jiang et al. | An exploitability analysis technique for binary vulnerability based on automatic exception suppression | |
CN117828618B (zh) | 许可链智能合约漏洞的检测方法、装置、设备及存储介质 | |
CN111475415B (zh) | 一种可靠性策略模型与代码的一致性检测方法和装置 | |
CN117614681B (zh) | 智能合约的重入漏洞检测方法、系统、设备和存储介质 | |
CN111611579B (zh) | 一种基于驱动特征检测powershadow虚拟环境的方法及其系统 | |
CN113536297B (zh) | 基于RISC-V与Canary机制的缓冲区溢出攻击防御方法及装置 | |
Kochems | Verification of asynchronous concurrency and the shaped stack constraint | |
Pontiggia et al. | Model Checking Recursive Probabilistic Programs with Conditioning | |
Dimovski | Symbolic representation of algorithmic game semantics | |
US20220374741A1 (en) | Inference apparatus, inference method, and computer readable recording medium |
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 |