System And Method Of Dynamically Updating Stack Canaries

    公开(公告)号:US20180060568A1

    公开(公告)日:2018-03-01

    申请号:US15244080

    申请日:2016-08-23

    CPC classification number: G06F21/54 G06F21/52 G06F21/554 G06F2221/034

    Abstract: Various embodiments enhance protections against stack buffer overflow attacks in a computing device by dynamically updating stack canaries. Canary values on the stack of a child process may be replaced with new canary values in response to determining that a condition for generating new canary values is satisfied. Canary values on the stack of a child process may be replaced with new canary values when a child process is forked following a crash of a previous child process of the parent process. Canary values on the stack of a child process may be replaced with new canary values in response to expiration of a canary timeout time. The locations of the canaries to replace may be determined by walking the stack to locate entries in each stack frame that match a previous value of the canary or by walking the stack according to a predefined stack frame format.

    Efficient directed acyclic graph pattern matching to enable code partitioning and execution on heterogeneous processor cores
    2.
    发明授权
    Efficient directed acyclic graph pattern matching to enable code partitioning and execution on heterogeneous processor cores 有权
    高效的有向无环图模式匹配,以实现异构处理器内核上的代码分割和执行

    公开(公告)号:US09201659B2

    公开(公告)日:2015-12-01

    申请号:US13969735

    申请日:2013-08-19

    CPC classification number: G06F9/3877 G06F8/35 G06F8/44 G06F8/451 G06F9/3885

    Abstract: Methods, devices, and systems for automatically determining how an application program may be partitioned and offloaded for execution by a general purpose applications processor and an auxiliary processor (e.g., a DSP, GPU, etc.) within a mobile device. The mobile device may determine the portions of the application code that are best suited for execution on the auxiliary processor based on pattern-matching of directed acyclic graphs (DAGS). In particular, the mobile device may identify one or more patterns in the code, particularly in a data flow graph of the code, comparing each identified code pattern to predefined graph patterns known to have a certain benefit when executed on the auxiliary processor (e.g., a DSP). The mobile device may determine the costs and/or benefits of executing the portions of code on the auxiliary processor, and may offload portions that have low costs and/or high benefits related to the auxiliary processor.

    Abstract translation: 用于自动确定应用程序如何被分割和卸载以由移动设备内的通用应用处理器和辅助处理器(例如,DSP,GPU等)执行的方法,设备和系统。 移动设备可以基于有向非循环图(DAGS)的模式匹配来确定最适合在辅助处理器上执行的应用代码的部分。 特别地,移动设备可以识别代码中的一个或多个模式,特别是在代码的数据流图中,将每个识别的代码模式与在辅助处理器上执行时已知具有一定益处的预定义图形模式进行比较(例如, 一个DSP)。 移动设备可以确定在辅助处理器上执行代码部分的成本和/或益处,并且可以卸载与辅助处理器相关的低成本和/或高优点的部分。

    Profile guided indirect function call check for control flow integrity

    公开(公告)号:US09965374B2

    公开(公告)日:2018-05-08

    申请号:US15248803

    申请日:2016-08-26

    CPC classification number: G06F11/3604 G06F9/322 G06F21/54

    Abstract: Embodiments include computing devices, apparatus, and methods implemented by the apparatus for implementing profile guided indirect jump checking on a computing device, including encountering an indirect jump location of implementing an indirect jump during execution of a program, identifying an indirect jump target of the indirect jump, determining whether the indirect jump location and the indirect jump target are associated in a profile guided indirect jump table, and determining whether the indirect jump location and the indirect jump target are associated in a compiler guided indirect jump table in response to determining that the indirect jump location and the indirect jump target are not associated in the profile guided indirect jump table.

    Detection and Prevention of Malicious Shell Exploits

    公开(公告)号:US20180060569A1

    公开(公告)日:2018-03-01

    申请号:US15249110

    申请日:2016-08-26

    Abstract: Methods, systems, and devices detect and block execution of malicious shell commands requested by a software application. Various embodiments may include receiving a request from a software application to execute a shell command and simulating execution of the shell command to produce execution behavior information. The computing device may analyze system activities to produce execution context information and generate an execution behavior vector based, at least in part, on the execution behavior information and the execution context information. The computing device may use a behavior classifier model to determine whether the shell command is malicious. In response to determining that the shell command is malicious, the computing device may block execution of the shell command.

    Profile Guided Indirect Function Call Check for Control Flow Integrity

    公开(公告)号:US20180060209A1

    公开(公告)日:2018-03-01

    申请号:US15248803

    申请日:2016-08-26

    CPC classification number: G06F11/3604 G06F9/322 G06F21/54

    Abstract: Embodiments include computing devices, apparatus, and methods implemented by the apparatus for implementing profile guided indirect jump checking on a computing device, including encountering an indirect jump location of implementing an indirect jump during execution of a program, identifying an indirect jump target of the indirect jump, determining whether the indirect jump location and the indirect jump target are associated in a profile guided indirect jump table, and determining whether the indirect jump location and the indirect jump target are associated in a compiler guided indirect jump table in response to determining that the indirect jump location and the indirect jump target are not associated in the profile guided indirect jump table.

    Efficient Directed Acyclic Graph Pattern Matching To Enable Code Partitioning and Execution On Heterogeneous Processor Cores
    6.
    发明申请
    Efficient Directed Acyclic Graph Pattern Matching To Enable Code Partitioning and Execution On Heterogeneous Processor Cores 有权
    有效的定向非循环图模式匹配以在异构处理器内核上启用代码分区和执行

    公开(公告)号:US20150052331A1

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

    申请号:US13969735

    申请日:2013-08-19

    CPC classification number: G06F9/3877 G06F8/35 G06F8/44 G06F8/451 G06F9/3885

    Abstract: Methods, devices, and systems for automatically determining how an application program may be partitioned and offloaded for execution by a general purpose applications processor and an auxiliary processor (e.g., a DSP, GPU, etc.) within a mobile device. The mobile device may determine the portions of the application code that are best suited for execution on the auxiliary processor based on pattern-matching of directed acyclic graphs (DAGS). In particular, the mobile device may identify one or more patterns in the code, particularly in a data flow graph of the code, comparing each identified code pattern to predefined graph patterns known to have a certain benefit when executed on the auxiliary processor (e.g., a DSP). The mobile device may determine the costs and/or benefits of executing the potions of code on the auxiliary processor, and may offload portions that have low costs and/or high benefits related to the auxiliary processor.

    Abstract translation: 用于自动确定应用程序如何被分割和卸载以由移动设备内的通用应用处理器和辅助处理器(例如,DSP,GPU等)执行的方法,设备和系统。 移动设备可以基于有向非循环图(DAGS)的模式匹配来确定最适合在辅助处理器上执行的应用代码的部分。 特别地,移动设备可以识别代码中的一个或多个模式,特别是在代码的数据流图中,将每个识别的代码模式与在辅助处理器上执行时已知具有一定益处的预定义图形模式进行比较(例如, 一个DSP)。 移动设备可以确定在辅助处理器上执行代码段的成本和/或益处,并且可以卸载与辅助处理器相关的低成本和/或高优点的部分。

Patent Agency Ranking