AUTOMATIC AND TRANSPARENT MEMOIZATION
    14.
    发明申请
    AUTOMATIC AND TRANSPARENT MEMOIZATION 有权
    自动和透明的记录

    公开(公告)号:US20090049421A1

    公开(公告)日:2009-02-19

    申请号:US11839046

    申请日:2007-08-15

    IPC分类号: G06F9/44

    CPC分类号: G06F9/4484 G06F9/4486

    摘要: Functions are memoized automatically and transparently. Memoized code can be injected automatically within a program to facilitate efficient and/or expeditious execution thereof, among other things. The memoized code can intercept calls to an original function and return values in accordance with the code. Accordingly, callers of the function need not do anything special and can invoke the function without knowledge of it being memoized.

    摘要翻译: 功能自动和透明地记录。 备忘码可以在程序中自动注入,以促进其有效和/或快速的执行。 记忆代码可以拦截对原始函数的调用,并根据代码返回值。 因此,函数的调用者不需要做任何特殊的操作,并且可以调用该函数而不知道它被记忆。

    In source code suppression of binary analysis
    15.
    发明授权
    In source code suppression of binary analysis 有权
    在二进制分析的源代码抑制中

    公开(公告)号:US07873949B2

    公开(公告)日:2011-01-18

    申请号:US11349577

    申请日:2006-02-08

    IPC分类号: G06F9/45

    CPC分类号: G06F11/3604 G06F11/3624

    摘要: Upon accessing binary that was generated by a compiler using corresponding source code, a potential reportable problem in the binary is identified. The binary includes a compiler transformed indication that the potential reportable problem is to be suppressed at least under some circumstances. The transformed indication is generated by the compiler using a corresponding untransformed indication in the corresponding source code. The transformed indication is then used to decide that the potential reportable problem should not be reported. Thus, artifacts within the source code itself may ultimately direct what problems are not to be reported on when the corresponding binary is analyzed after the compile phase.

    摘要翻译: 在访问由编译器使用相应源代码生成的二进制文件时,会识别二进制文件中的潜在可报告问题。 二进制文件包括编译器转换的指示,至少在某些情况下可能会抑制潜在的可报告问题。 转换的指示由编译器使用相应源代码中的相应未转换指示生成。 然后,转换的指示用于确定不应报告潜在的可报告问题。 因此,在编译阶段之后分析相应的二进制文件时,源代码本身内的伪影最终可能指示什么问题不被报告。

    Fuzz testing of asynchronous program code
    16.
    发明授权
    Fuzz testing of asynchronous program code 有权
    异步程序代码的模糊测试

    公开(公告)号:US09015667B2

    公开(公告)日:2015-04-21

    申请号:US12898724

    申请日:2010-10-06

    IPC分类号: G06F9/44 G06F11/07 G06F11/36

    摘要: A fuzz testing system is described herein that represents event sources, channels, processors, and consumers as first-class entities in an application. Abstracting event-related entities allows fuzzing through injecting, dropping, reordering, and delaying events from within the application. This translates into the ability to localize the areas under test and perform fuzzing in a systematic manner. In some embodiments, the fuzz testing system tests concurrent asynchronous and event-based code, and can generate event streams based on a given statistical distribution. Representing events, event sources, processors, and sinks as first-class objects provides easy access to the event handlers and facilitates implementing fuzzing by introducing event processors between the source and the sink. Thus, the fuzz testing system improves the testability of applications and APIs with asynchronous behavior and provides a uniform framework for introducing fuzz testing into such applications.

    摘要翻译: 本文描述了一种模糊测试系统,其将事件源,通道,处理器和消费者表示为应用程序中的一流实体。 抽象事件相关实体允许通过从应用程序中注入,删除,重新排序和延迟事件进行模糊化。 这转化为能够使被测试区域本地化,并以系统的方式进行模糊化。 在一些实施例中,模糊测试系统测试并发异步和基于事件的代码,并且可以基于给定的统计分布生成事件流。 将事件,事件源,处理器和接收器作为一流对象,可以方便地访问事件处理程序,并通过在源和宿之间引入事件处理器来促进实现模糊化。 因此,模糊测试系统提高了具有异步行为的应用程序和API的可测试性,并为此类应用程序提供了一个统一的框架来引入模糊测试。

    Systems and methods for rule based meta-programming of actions for rule based build systems
    17.
    发明授权
    Systems and methods for rule based meta-programming of actions for rule based build systems 有权
    用于基于规则的构建系统的基于规则的元编程的操作的系统和方法

    公开(公告)号:US08782595B1

    公开(公告)日:2014-07-15

    申请号:US13267386

    申请日:2011-10-06

    IPC分类号: G06F9/44

    CPC分类号: G06F8/70

    摘要: A build system and method, including receiving attribute rules and new rules, wherein the attribute rules correspond to one or more predefined default actions of the build system, wherein the new rules specify new actions that are to be added to the build system. A graph is generated to include files specified as attributes in the attributes rules and the one or more predefined default actions that correspond to the attributes rules. A request to enable at least one of the new rules is received. Action listener rules are received, wherein the action listener rules indicate default actions and corresponding new rules of the one or more new rules. The graph is checked for default actions that are indicated in the action listener rules. Additional actions are added to the graph for new rules based on the default actions indicated in the action listener rules.

    摘要翻译: 一种构建系统和方法,包括接收属性规则和新规则,其中所述属性规则对应于所述构建系统的一个或多个预定义的默认动作,其中所述新规则指定要添加到构建系统的新动作。 生成图形以包括在属性规则中指定为属性的文件以及与属性规则对应的一个或多个预定义的默认动作。 接收到启用至少一个新规则的请求。 接收到动作侦听器规则,其中动作侦听器规则指示一个或多个新规则的默认动作和相应的新规则。 检查在动作侦听器规则中指示的默认动作的图形。 基于动作侦听器规则中指示的默认动作,附加操作将添加到新规则的图形中。

    Analyzing binary code
    18.
    发明授权
    Analyzing binary code 有权
    分析二进制代码

    公开(公告)号:US07836433B2

    公开(公告)日:2010-11-16

    申请号:US11340190

    申请日:2006-01-26

    IPC分类号: G06F9/44

    摘要: The present invention extends to methods, systems, and computer program products for analyzing binary code. Binary code is received. Code analysis rules indicative of a query related to the functionality of the binary code are received. The query is implemented in analysis code configured to determine results of the query. It is determined if valid cached results for the query are cached in a results store. If not, the analysis code is invoked to determine the results for the query and the results are cached. Accordingly, when the query is received in the future, the results can be accessed from the results store without having to invoke the analysis code to determine the results. If so, the cached results are retrieved so as to avoid further invocation of the analysis code. The results are returned.

    摘要翻译: 本发明扩展到用于分析二进制代码的方法,系统和计算机程序产品。 收到二进制代码。 接收指示与二进制代码的功能相关的查询的代码分析规则。 查询在分析代码中实现,配置为确定查询的结果。 确定查询的有效高速缓存结果是否缓存在结果存储中。 如果没有,则调用分析代码来确定查询的结果,并且缓存结果。 因此,当将来接收到查询时,可以从结果存储器访问结果,而不必调用分析代码来确定结果。 如果是这样,则检索缓存的结果,以避免进一步调用分析代码。 返回结果。

    REPRESENTING POINTERS AND BOXING IN ENVIRONMENTS USING ONLY REFERENCE TYPES
    19.
    发明申请
    REPRESENTING POINTERS AND BOXING IN ENVIRONMENTS USING ONLY REFERENCE TYPES 有权
    仅使用参考类型表示环境中的指针和包装

    公开(公告)号:US20090150422A1

    公开(公告)日:2009-06-11

    申请号:US11950945

    申请日:2007-12-05

    IPC分类号: G06F17/30

    CPC分类号: G06F8/52 G06F8/53

    摘要: An arrangement by which pointers may be represented in a restricted software execution environment that provides access to only reference types but not pointers is realized by modeling both pointers and value type boxing using a set of boxes (i.e., containers) which describe how to retrieve the value associated with the pointer, and emitting code for accessing the set of boxes. A decompiling and recompiling process is utilized in which code arranged to run in an execution environment that supports pointers is scanned to reveal pointer and boxing usage. In one illustrative example, code is responsively emitted to create one or more specific boxes. At runtime in the restricted execution environment, an instance of a box class is created to thus emulate a pointer to the value.

    摘要翻译: 指针可以在仅限于引用类型而不是指针的受限软件执行环境中表示的布置通过使用一组框(即容器)对指针和值类型进行建模来实现,这些框描述如何检索 与指针相关联的值,以及发送用于访问该组框的代码。 使用反编译和重新编译过程,其中被安排为在支持指针的执行环境中运行的代码被扫描以显示指针和拳击使用。 在一个说明性示例中,响应地发射代码以创建一个或多个特定框。 在受限执行环境中的运行时,创建一个框类的实例,从而模拟一个指向该值的指针。

    Context based code analysis
    20.
    发明授权

    公开(公告)号:US08595703B2

    公开(公告)日:2013-11-26

    申请号:US11343691

    申请日:2006-01-30

    IPC分类号: G06F9/44 G06F11/00

    摘要: Embodiments provided a formalized set of intermediate analysis contexts that are relevant for analysis checks of target code. Such intermediate analysis context may include, but are not limited to, the development phase of targeted code, the type or state of the targeted code, a source manipulating the targeted code, a purpose for the targeted code, or other development or runtime requirements. Accordingly, embodiments dynamically identify a current analysis context under which targeted code is being developed and can then execute rules based on knowledge of what contexts the rule(s) may apply. More specifically, analysis rules can describe (e.g., via metadata) those context conditions under which a rule can run. Based on such description and the current context, those rules that have been configured to apply to such context conditions can be executed.