Learned Control Flow Directed Graphs for Program Disassembly

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing control flow integrity (CFI) validation techniques require source code modification and/or binary re-instrumentation, incur performance penalties, and provide limited accuracy, making them inefficient against code reuse malware like ROP, JOP, and COP exploits.

Innovation Solution

A hardware-assisted control flow directed graph (CFDG) monitoring system that observes and enforces legitimate control flow transitions using CPU telemetry, generating a learned CFDG during an observation phase and enforcing it during a monitoring phase to detect and prevent invalid transfers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing CFI validation techniques are used to detect control flow hijacking attacks, then detection capability is provided, but source code modification and binary re-instrumentation are required, increasing device complexity and ease of operation difficulty

Engineering Contradiction:
Improvedetection capabilityVSAvoidsource code modification requirement
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a hardware intermediary component (performance monitoring unit or similar hardware module) that mediates between the CPU execution and the CFI validation logic. This hardware intermediary automatically captures control flow information and performs validation without requiring software modification, thus resolving the contradiction between detection capability and device complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the software-based CFI validation mechanism (which requires source code modification and binary instrumentation) with a hardware-based validation mechanism. This substitution eliminates the need for mechanical/software intervention in the code, reducing device complexity while maintaining detection capability

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If existing CFI validation techniques are used to ensure control flow integrity, then security validation is provided, but performance penalty is incurred, reducing productivity

Engineering Contradiction:
Improvecontrol flow integrity validationVSAvoidperformance penalty
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs control flow validation in advance by establishing expected control flow paths during a learning phase before actual execution. During runtime, the hardware simply checks whether actual control flow transfers match the pre-established paths, eliminating the need for complex runtime validation logic and thus avoiding performance penalties

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The hardware-based system performs self-validation by automatically comparing actual control flow transfers against the learned control flow graph without requiring external software intervention or complex validation routines, thereby maintaining high productivity while ensuring control flow integrity

Inventive Principle:
Principle #25Self-service

3Reliability

If existing CFI validation techniques are used to protect against control flow attacks, then security validation is provided, but history limitation reduces measurement precision and detection accuracy

Engineering Contradiction:
Improvesecurity validationVSAvoidhistory limitation
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent implements a sliding window mechanism that maintains a partial history of control flow transfers within a fixed window size. This partial history is sufficient to detect control flow hijacking attacks while avoiding the performance overhead of maintaining complete execution history, thus resolving the contradiction between security validation and measurement precision

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20250272402A1Control flow directed graph for use with program disassembler
Publication Date: 2025.08.28 CISCO TECHNOLOGY INC
  • US20250272402A1 patent drawing
  • US20250272402A1 patent drawing
  • US20250272402A1 patent drawing

AI summary

Techniques and systems described herein relate to monitoring executions of computer instructions on computing devices based on learning and generating a control flow directed graph. The techniques and systems include determining a learned control flow directed graph for executable code of an application by observing executions of transitions during an observation period and determining destinations of indirect transfers based on the learned control flow directed graph. Next a disassembly of the executable code is determined based on the learned control flow directed graph, the destinations of the transfers, and the executable code.