CN103810096A - 混合程序分析方法和系统 - Google Patents

混合程序分析方法和系统 Download PDF

Info

Publication number
CN103810096A
CN103810096A CN201310524568.9A CN201310524568A CN103810096A CN 103810096 A CN103810096 A CN 103810096A CN 201310524568 A CN201310524568 A CN 201310524568A CN 103810096 A CN103810096 A CN 103810096A
Authority
CN
China
Prior art keywords
analysis
application
code structure
static
dynamic routine
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.)
Pending
Application number
CN201310524568.9A
Other languages
English (en)
Inventor
E·贝斯克洛夫尼
M·皮斯托亚
O·特里普
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103810096A publication Critical patent/CN103810096A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种混合程序分析方法包括启动应用的静态程序分析;在判定需要动态分析的应用的代码结构时,通过静态程序分析器产生到动态程序分析器的查询;通过所述动态程序分析器将所述查询解析为可用于调用所述应用的所述代码结构的参数集;通过所述动态程序分析器产生所述参数集;通过所述动态程序分析器使用所述参数集调用所述应用的所述代码结构;通过所述动态程序分析器回答所述查询;以及继续所述应用的所述静态程序分析。

Description

混合程序分析方法和系统
技术领域
本发明涉及程序分析。更具体地说,本发明涉及混合程序分析。
背景技术
程序分析过程一般可被分为两类:静态程序分析和动态程序分析。在静态程序分析中,计算机软件的分析可在不执行被分析的应用的情况下执行。在动态程序分析中,在分析期间使用测试输入在真实或虚拟的处理器上执行应用。
根据Rice定理静态程序分析一般被视为不可判定的。Rice定理认为,对于部分函数的任何非平凡(non-trivial)属性,没有任何一般的且有效的方法来判定一种算法是否判定部分函数具有该属性。Rice定理不仅提供了理论性上限,而且还提供了许多实际的分析所遇到的极限。
在这些不可判定的分析中,有判定给定调用点(call site)的确切被调用方法集(也称为指针分析)不可判定的问题、解析反射调用不可判定的问题、以及与字符串分析和常量传播相关的问题。
上述问题的可靠解通常具有较差的精确度。例如,对Class.newInstance的调用(在Java中)的结果可以近似为本应用的类层次结构的所有可能类型。但是,结果的近似产生不精确且不可伸缩的分析。
已经引入了改进的技术来执行两阶段分析,其中首先运行动态程序分析以确定用于随后的静态分析的动态提示,然后静态分析可以使用动态提示以便为具有挑战性的代码结构建模。例如,在Class.newInstance的情况中,动态分析记录newInstance调用分配的确切对象类型,然后静态程序分析可以使用该数据进行指针分析以解析(resolve)虚拟调用。尽管一般理解对动态程序分析的这种依赖是不可靠的,但是两阶段分析所要解决的问题是不可判定的并且可靠的近似解经常由于丧失精确性而不可用。即,与静态程序分析相比,两阶段分析只是一种改进的折衷。
发明内容
根据本发明的实施例,一种混合程序分析方法包括启动应用的静态程序分析;在判定需要动态分析的应用的代码结构时,通过静态程序分析器产生到动态程序分析器的查询;将控制从所述静态程序分析器传递到所述动态程序分析器并启动所述代码结构的动态程序分析;通过所述动态程序分析器将所述查询解析为可用于调用所述应用的所述代码结构的参数集;通过所述动态程序分析器产生所述参数集;通过所述动态程序分析器使用所述参数集调用所述应用的所述代码结构;通过所述动态程序分析器回答所述查询;以及将控制从所述动态程序分析器传递到所述静态程序分析器并继续所述应用的所述静态程序分析。
根据本发明的实施例,混合程序分析系统包括:被配置为启动应用的静态程序分析的模块;被配置为在判定需要动态分析的应用的代码结构时,通过静态程序分析器产生到动态程序分析器的查询的模块;被配置为将控制从所述静态程序分析器传递到所述动态程序分析器并启动所述代码结构的动态程序分析的模块;被配置为通过所述动态程序分析器将所述查询解析为可用于调用所述应用的所述代码结构的参数集的模块;被配置为通过所述动态程序分析器产生所述参数集的模块;被配置为通过所述动态程序分析器,使用所述参数集调用所述应用的所述代码结构的模块;被配置为通过所述动态程序分析器回答所述查询的模块;以及被配置为将控制从所述动态程序分析器传递到所述静态程序分析器并继续所述应用的所述静态程序分析的模块。
一种混合程序分析方法包括启动应用的静态程序分析;在判定需要动态分析的应用的代码结构时,通过静态程序分析器产生到动态程序分析器的查询;通过所述动态程序分析器将所述查询解析为可用于调用所述应用的所述代码结构的参数集;通过所述动态程序分析器产生所述参数集;通过所述动态程序分析器,使用所述参数集调用所述应用的所述代码结构;通过所述动态程序分析器将对应于所述查询的答案返回到所述静态程序分析器;以及继续所述应用的所述静态程序分析。
根据本发明的实施例,混合程序分析系统包括:被配置为启动应用的静态程序分析的模块;被配置为在判定需要动态分析的应用的代码结构时,通过静态程序分析器产生到动态程序分析器的查询的模块;被配置为通过所述动态程序分析器将所述查询解析为可用于调用所述应用的所述代码结构的参数集的模块;被配置为通过所述动态程序分析器产生所述参数集的模块;被配置为通过所述动态程序分析器,使用所述参数集调用所述应用的所述代码结构的模块;被配置为通过所述动态程序分析器将对应于所述查询的答案返回到所述静态程序分析器的模块;以及被配置为继续所述应用的所述静态程序分析的模块。
附图说明
下面参考附图更详细地描述本发明的优选实施例:
图1是用于解释本发明的示例性实施例的例程的流程图;
图2是用于根据本发明的实施例的混合程序分析法的示例性方法的流程图;
图3是示出根据本发明的实施例用于执行用于混合程序分析法的方法的示例性计算机系统的框图;
图4是用于解释本发明的示例性实施例的例程的流程图;以及
图5是示出根据本发明的实施例用于执行用于混合程序分析法的方法的示例性计算机系统的框图。
具体实施方式
根据本发明的示例性实施例,实现用于混合程序分析法的框架,该混合程序分析法包括静态程序分析和动态程序分析。但是应该理解,本发明的实施例不限于此处描述的特定方法和/或装置。而是,本发明的实施例更广泛地涉及用于执行程序分析的增强的技术。此外,尽管此处参考特定的软件(例如,Java)、语法、协议、操作平台(硬件或软件)等,但是本发明的实施例不限于此类软件、语法、协议、操作平台等。而且,在给出此处的教导的前提下,本领域的技术人员很容易理解,可对所示的实施例做出各种处于所声明的发明的范围内的修改。即,此处示出和描述的实施例并非旨在或者可以推测出任何限制。
现在参考图1所示的示例性例程100来描述本发明的实施例。根据本发明的实施例,混合方法可以在了解静态扫描程序将给出哪些查询的情况下,提供在动态程序分析中使用的用于运行或执行给定的计算机可读指令的精确输入参数。控制了输入参数之后,使动态程序分析的响应专门针对适合于回答静态分析器提出的查询的程序运行。
请参考以下示例(以Java语法编写):
Figure BDA0000404727260000041
在该示例中,动态分析器选择的输入参数可全部沿着条件语句101的选定分支(104或105)向下引导。然后,当静态分析器询问流入Object o的可能类型时,动态程序分析的回答是Class1和Class2。
根据上述内容,并且根据本发明的实施例,动态程序分析专门用于当前的查询。动态程序分析的专门化允许与将获取的查询对应的特定控制流的精确信息,如上述示例所示。例如,在静态程序分析查询答案的点(例如,假分支)上启动的动态程序分析可获取简明精确的答案,因为动态分析器指向特定的控制流。
图2是根据本发明的实施例的示例性混合程序分析法200的流程图。更具体地说,参考图2,混合程序分析法200包括在201处的应用代码的静态程序分析。当在202处达到需要动态分析器的代码结构时,在203处,静态分析器将查询提交给动态分析器以检索相关信息。
现在参考方框202,任何影响静态分析精确度、但是在分析维护的抽象中被建模的一段信息都可触发查询。这包括反射结构、条件分支评估、外部内容(例如,来自数据库或文件)等。
相关信息可以包括newInstance语句分配的可能类型等。请求可以与上下文信息关联。在204处,动态分析器将请求以及上下文信息解析为一个或多个参数集,可使用这些参数集调用当前程序。这些参数的示例包括命令行参数,或者更一般地说,使执行沿着所需代码路径进行下去的数据输入。
可使用符号分析技术解析输入参数,所述符号分析技术例如用于面向对象的程序和框架的需求驱动型符号分析。例如,输入参数的提取可被视为目标可达性问题,其中为包括过程间流和异常条件的所有语句的语义建模。在示例性实现中,当分析找到用于后置条件R的前置条件P时,分析确保满足P的任何状态一定会将程序执行驱动到R。在到达R之前,不抛出其它任何异常。
在进一步的示例性实现中,目标可达性问题基于向后符号分析。在原理上,此类分析计算每个控制流路径上最弱的前置条件(此处描述的),从目标语句向后进行到输入参数。如果针对任何路径r的计算的前置条件P是可满足的,则对于P的满足赋值给出了将强行使执行沿着r到达目标的输入参数。
然后在205处,调用应用并且由动态分析器回答查询。例如,如果查询是对于上述例程中的反射分配的可能的解析,则答案将是Class1。如果查询涉及条件分支的评估,则答案将是真或假。根据上述内容,答案可采取任何形式。此处描述的示例性答案并非旨在作为限制。
如果在206处有其它可用的应用代码,则在201处使用静态分析器继续执行混合法200。混合法200将应用代码作为输入并输出应用属性(请参见图3)。应用属性可以揭示应用行为,并且可以包括应用度量(例如,应用行为的客观的、可再现的和可量化的测量)。
根据上述内容,动态程序分析可专门用于当前的查询。
根据上述内容,并且参考图3,根据本发明的实施例的示例性混合程序分析器301的至少一部分包括静态程序分析器302和动态程序分析器303。在示例性实施例中,静态程序分析器302在202处将应用分析的控制传递到动态程序分析器303。类似地,在示例性实施例中,动态程序分析器303在206处将应用分析的控制传递到静态程序分析器302。
考虑到图3,需要指出,此处描述的任何方法都可包括提供具有不同的软件模块的系统的附加步骤,这些软件模块包含在一个或多个有形的计算机可读存储介质上。例如,所有模块(或它们的任何子集)都可位于同一介质上,或者每个模块位于不同的介质上。这些模块可包括附图中所示的部分或全部组件。在非限制性示例中,这些模块包括第一模块,例如302,该模块使用静态程序分析扫描应用代码;第二模块,例如303,该模块从第一模块接收对应于特定应用分支的查询,其中第二模块响应于查询执行动态程序分析;第三模块,例如混合程序分析器,例如301,该模块根据静态程序分析和动态程序分析输出应用属性。然后可以使用上面所述的在一个或多个硬件处理器上执行的系统中的不同软件模块执行所述方法步骤。
根据本发明的实施例,并且参考上下文信息,静态程序分析的固有方面是数据抽象,所述抽象允许有限但可靠地探究应用的状态空间。例如,安全分析中的常见抽象是使用访问路径表示不受信任的堆区域。静态程序分析提供的上下文信息包括发出查询的点处的抽象状态。这可以通过图4中示出的以下web应用安全分析400的示例示出:
Figure BDA0000404727260000071
在该示例中,getParameter调用是安全源,它读取(不受信任)用户提供的数据。进一步地,println调用是将数据呈现到响应HTML的安全接收器(security sink)。
静态程序分析提出的可能查询是即将到达接收器(即方框403处的println调用)的数据是否包含特定字符(例如,非法字符“<”和“>”),在存在非法字符的情况下,上述代码将被判定为有漏洞。
接收器调用处的可能的抽象状态为{username.*,data.*},其表示username和data指向的值因为源调用的原因不受信任。当存在该上下文时,动态程序分析可以合成在到达接收器调用之前通过条件语句的真分支的测试有效负载。
根据本发明的实施例,并且参考到测试输入参数的转换,在给定静态分析的上下文信息(其使动态程序分析约束为或着重于根据数据抽象选择要访问的执行路径)的情况下,动态程序分析可以将这些约束映射到应用的输入参数(另请参见图2中的方框204)。
可使用公知的技术将限制映射到应用的输入参数,例如用于测试生成的最弱前置条件方法。最弱前置条件方法试图查找静态分析提供的上下文信息所诱发的约束系统以及连接程序入口位置与被查询位置的执行路径的向后遍历(即,输出到输入参数)所诱发的路径约束的解。更正式地说,根据最弱前置条件方法的示例性实现,在给定语句S的情况下,S的最弱前置条件是将任何后置条件R映射到前置条件的函数。该函数的结果(表示为wp(S,R))是确保S的执行以满意的最终状态终止的初始状态或输入参数上的“最弱的”前置条件。
最弱前置条件语义可用于提供导致给定输出观察的最大的可能输入参数集。
应该理解,此处使用的术语应用可以指计算机可读代码、个别对象、完整的应用源代码等中的个别语句和声明。类似地,此处描述的实施例不限于源代码并且可应用于目标代码。总之,本发明的实施例不限于代码的特定级别或类型的分析,而且可在其中可应用程序分析的任何情况下实现。
本发明的实施例的方法可以特别适合用于电子设备或备选系统中。因此,本发明的实施例可以采取以下形式,即:完全的硬件实施例或硬件和软件方面结合的实施例,这些方面在这里可以统称为“处理器”、“电路”、“模块”或“系统”。此外,本发明的实施例可以采取在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可用介质或可读介质的任意组合。计算机可用介质或可读介质可以是计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置、器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上面参照方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的实施例。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。
这些计算机程序指令可存储在计算机可读介质中,这些指令可使得计算机或其它可编程数据处理装置以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
例如,图5是示出根据本发明的实施例用于执行混合程序分析法的示例性计算机系统的框图。图5所示的计算机系统包括处理器501、存储器502、信号源503、系统总线504、硬盘驱动器(HD)控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508、显示控制器509、硬盘510、键盘511、串口外围设备512、并口外围设备513和显示器514。
在这些组件中,处理器501、存储器502、信号源503、HD控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508、显示控制器509与系统总线504相连。硬盘510连接到HD控制器505。键盘511连接到键盘控制器506。串口外围设备512连接到串行接口控制器507。并口外围设备513连接到并行接口控制器508。显示器510连接到显示控制器509。
在不同应用中,图5示出的某些组件可以省略。图5所示的整个系统通过计算机可读指令控制,这些计算机可读指令(例如软件)一般存储在硬盘510、EPROM或其它非易失性存储器中。
所述软件可以从网络(图中未示出)下载,存储在硬盘510中。备选地,从网络下载的软件可以加载到存储器502内并由处理器501执行,以便完成软件确定的功能。
处理器501可被配置为执行本发明中描述的一种或多种方法,本发明的示例性实施例在上面的附图中示出并在此进行描述。本发明的实施例可被实现为例程,该例程可以存储在存储器502内并由处理器501执行,以便处理来自信号源503的信号。因此,计算机系统是通用计算机系统,当执行本发明的例程时,该系统变为专用计算机系统。
尽管图5中描述的计算机系统可以支持根据本发明的方法,但是该系统只是计算机系统的一个示例。本领域的技术人员将理解,也可使用其它计算机系统设计来实现本发明。
将理解,如在此使用的那样,术语“处理器”旨在包括任何处理设备,例如,包括中央处理单元(CPU)和/或其它处理电路(例如,数字信号处理器(DSP)、微处理器等)的处理设备。此外,将理解,术语“处理器”可以指在一个处理器中包含多个处理核的多核处理器或一个以上的处理设备,并且与处理设备关联的各个组件可以被其它处理设备共享。
如在此使用的那样,术语“存储器”旨在包括与处理器或CPU关联的存储器和其它计算机可读介质,例如随机存取存储器(RAM)、只读存储器(ROM)、固定存储介质(例如,硬盘)、可移动存储介质(例如,软盘)、闪存等。此外,如在此使用的那样,术语“I/O电路”例如旨在包括用于将数据输入处理器的一个或多个输入设备(例如,键盘、鼠标等),和/或用于提供与处理器关联的结果的一个或多个输出设备(例如,打印机、监视器等)。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
尽管此处参考附图描述了本发明的示例性实施例,但是将理解,本发明不限于这些精确的实施例,且本领域的技术人员可以对这些实施例做出各种其它修改和改变,而不偏离所附权利要求的范围。

Claims (9)

1.一种混合程序分析方法,包括:
启动应用的静态程序分析;
在判定需要动态分析的应用的代码结构时,通过静态程序分析器产生到动态程序分析器的查询;
将控制从所述静态程序分析器传递到所述动态程序分析器并启动所述代码结构的动态程序分析;
通过所述动态程序分析器将所述查询解析为可用于调用所述应用的所述代码结构的参数集;
通过所述动态程序分析器产生所述参数集;
通过所述动态程序分析器使用所述参数集调用所述应用的所述代码结构;
通过所述动态程序分析器回答所述查询;以及
将控制从所述动态程序分析器传递到所述静态程序分析器并继续所述应用的所述静态程序分析。
2.根据权利要求1的混合方法,其中所述查询包括所述代码结构的上下文信息。
3.根据权利要求1的混合方法,其中需要动态分析的所述应用的所述代码结构被识别为影响所述静态分析的精确度,并且进一步地,其中所述代码结构在所述静态分析维护的抽象中未被建模。
4.根据权利要求1的混合方法,其中需要动态分析的所述应用的所述代码结构被所述静态分析识别为反射结构。
5.根据权利要求1的混合方法,其中需要动态分析的所述应用的所述代码结构被所述静态分析识别为所述应用中的条件分支的评估。
6.根据权利要求1的混合方法,其中需要动态分析的所述应用的所述代码结构被所述静态分析识别为外部内容。
7.根据权利要求1的混合方法,进一步包括通过所述动态程序分析器将带有上下文信息的所述查询解析为所述参数集。
8.根据权利要求1的混合方法,其中所述参数集包括对应于所述应用的已识别分支的命令行参数。
9.根据权利要求1的混合方法,其中所述参数集包括对应于所述应用的已识别分支的数据输入。
CN201310524568.9A 2012-11-06 2013-10-30 混合程序分析方法和系统 Pending CN103810096A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/670,270 2012-11-06
US13/670,270 US20140130015A1 (en) 2012-11-06 2012-11-06 Hybrid Program Analysis
US13/672,165 US10275238B2 (en) 2012-11-06 2012-11-08 Hybrid program analysis
US13/672,165 2012-11-08

Publications (1)

Publication Number Publication Date
CN103810096A true CN103810096A (zh) 2014-05-21

Family

ID=50623598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310524568.9A Pending CN103810096A (zh) 2012-11-06 2013-10-30 混合程序分析方法和系统

Country Status (2)

Country Link
US (2) US20140130015A1 (zh)
CN (1) CN103810096A (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8893101B2 (en) * 2012-12-21 2014-11-18 International Business Machines Corporation Hybrid dependency analysis using dynamic and static analyses
US20140372988A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation Using a Static Analysis for Configuring a Follow-On Dynamic Analysis for the Evaluation of Program Code
US10747748B2 (en) 2016-01-29 2020-08-18 International Business Machines Corporation Generating mobile data schema to support disconnected operations
US9626389B1 (en) * 2016-01-29 2017-04-18 International Business Machines Corporation Data compression model for mobile device disconnected operations
US10339320B2 (en) * 2016-11-18 2019-07-02 International Business Machines Corporation Applying machine learning techniques to discover security impacts of application programming interfaces
US10360134B2 (en) * 2017-10-31 2019-07-23 Commissariat A L'energie Atomique Et Aux Energies Alternatives System, method and computer program product for detecting infeasible events in dynamic programs

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522036A (en) * 1993-05-10 1996-05-28 Benjamin V. Shapiro Method and apparatus for the automatic analysis of computer software
US20070050427A1 (en) * 2005-08-02 2007-03-01 Steven Atkin System and method for validating application globalization issues and computer product
US20100031238A1 (en) * 2008-07-29 2010-02-04 International Business Machines Corporation Method and Apparatus for Locating Memory Leak in a Program
CN101968766A (zh) * 2010-10-21 2011-02-09 上海交通大学 计算机程序实际运行时触发软件漏洞的检测系统
CN102073825A (zh) * 2011-01-28 2011-05-25 李清宝 基于路径驱动的可执行程序安全性检测方法及系统
US20120233599A1 (en) * 2011-03-11 2012-09-13 Oracle International Corporation Efficient model checking technique for finding software defects

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070008887A1 (en) 2005-06-24 2007-01-11 Eugene Gorbatov Platform power management of a computing device using quality of service requirements of software tasks
US8286149B2 (en) * 2007-10-15 2012-10-09 International Business Machines Corporation Apparatus for and method of implementing feedback directed dependency analysis of software applications
US8201118B2 (en) 2009-05-30 2012-06-12 International Business Machines Corporation Method and system for dynamic automated hint generation for enhanced reachability analysis
US8621441B2 (en) * 2010-12-27 2013-12-31 Avaya Inc. System and method for software immunization based on static and dynamic analysis
US8726392B1 (en) * 2012-03-29 2014-05-13 Symantec Corporation Systems and methods for combining static and dynamic code analysis

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522036A (en) * 1993-05-10 1996-05-28 Benjamin V. Shapiro Method and apparatus for the automatic analysis of computer software
US20070050427A1 (en) * 2005-08-02 2007-03-01 Steven Atkin System and method for validating application globalization issues and computer product
US20100031238A1 (en) * 2008-07-29 2010-02-04 International Business Machines Corporation Method and Apparatus for Locating Memory Leak in a Program
CN101968766A (zh) * 2010-10-21 2011-02-09 上海交通大学 计算机程序实际运行时触发软件漏洞的检测系统
CN102073825A (zh) * 2011-01-28 2011-05-25 李清宝 基于路径驱动的可执行程序安全性检测方法及系统
US20120233599A1 (en) * 2011-03-11 2012-09-13 Oracle International Corporation Efficient model checking technique for finding software defects

Also Published As

Publication number Publication date
US20140130015A1 (en) 2014-05-08
US10275238B2 (en) 2019-04-30
US20140130019A1 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
Feng et al. A performance-sensitive malware detection system using deep learning on mobile devices
US11899818B2 (en) System and method for code-based protection of sensitive data
US11200143B2 (en) Software development framework for a cloud computing platform
US11663110B2 (en) Analysis to check web API code usage and specification
US9720798B2 (en) Simulating black box test results using information from white box testing
US8850581B2 (en) Identification of malware detection signature candidate code
US10031832B1 (en) Dynamic sandboxing
CN103810096A (zh) 混合程序分析方法和系统
US20130117855A1 (en) Apparatus for automatically inspecting security of applications and method thereof
CN111143087A (zh) 一种接口调用方法、装置、存储介质和服务器
US20210406004A1 (en) System and method for implementing a code audit tool
Boxler et al. Static taint analysis tools to detect information flows
KR20180129623A (ko) 연관된 다중 파일 정적 분석 장치
Lawall et al. WYSIWIB: exploiting fine‐grained program structure in a scriptable API‐usage protocol‐finding process
US9064042B2 (en) Instrumenting computer program code by merging template and target code methods
CN110427190B (zh) 应用程序的识别方法及其装置、电子设备和介质
US11593249B2 (en) Scalable points-to analysis via multiple slicing
Gazzillo Inferring and securing software configurations using automated reasoning
Zou et al. PosFuzz: augmenting greybox fuzzing with effective position distribution
Zhao et al. {UVSCAN}: Detecting {Third-Party} Component Usage Violations in {IoT} Firmware
Baptista et al. Using machine learning for vulnerability detection and classification
Rubio-Medrano et al. Verifying access control properties with design by contract: Framework and lessons learned
US20230409385A1 (en) Debugging by predict accessing information
Han et al. An static propositional function model to detect software vulnerability
Bokhari et al. An Improved beam-search for the test case generation for formal verification systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140521