Hybrid Symbolic Execution for Binary Bug Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for detecting exploitable bugs in binary code are inefficient and resource-intensive, as they rely on manual review or automated techniques that struggle with the vast number of possible execution paths, leading to scalability challenges and high resource utilization.

Innovation Solution

A hybrid symbolic execution system that switches between online and offline execution modes based on resource thresholds, using a hybrid execution engine to manage resources and generate checkpoints, optimizing the detection of exploitable bugs by alternating between concrete and symbolic execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If symbolic execution is used to detect all possible execution paths, then detection completeness is improved, but resource consumption increases

Engineering Contradiction:
Improvedetection completenessVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system dynamically switches between online and offline symbolic execution modes based on real-time resource monitoring. When resources are abundant, offline execution is used for comprehensive path exploration. When resources become constrained, the system transitions to online execution mode, which processes paths more efficiently with lower resource consumption, thus adapting to varying resource conditions while maintaining detection effectiveness.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The execution process is divided into two distinct modes: online symbolic execution and offline symbolic execution. Each mode handles specific portions of the execution path analysis workload. Online execution processes paths interactively with immediate feedback, while offline execution performs more intensive analysis batch-wise. This segmentation allows the system to distribute the overall detection task across different resource consumption profiles.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If manual review of code is performed, then detection precision is improved, but productivity decreases

Engineering Contradiction:
Improvedetection precisionVSAvoidreview speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system implements feedback mechanisms where execution results, including detected vulnerabilities and execution paths, are fed back to guide subsequent analysis. The hybrid execution engine uses feedback from online execution to inform offline execution priorities, and feedback from resource monitoring to adjust execution mode switching. This feedback loop enables the system to maintain high detection precision while automatically scaling productivity based on resource availability and analysis progress.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If resource thresholds are dynamically adjusted, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improveresource adaptabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The resource monitoring and execution mode switching mechanism operates autonomously without requiring manual configuration of threshold values. The system self-adjusts by monitoring resource consumption in real-time and automatically transitioning between online and offline execution modes when thresholds are crossed. This self-service approach improves adaptability to varying resource conditions while minimizing the complexity of manual system configuration and management.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9542559B2Detecting exploitable bugs in binary code
Publication Date: 2017.01.10 CARNEGIE MELLON UNIV
  • US9542559B2 patent drawing
  • US9542559B2 patent drawing
  • US9542559B2 patent drawing

AI summary

Systems and methods for performing hybrid symbolic execution to detect exploitable bugs in binary code are described. In some example embodiments, the systems and methods determine that resources associated with an execution client performing symbolic execution of a target program are below, at, or above a threshold performance level, generate checkpoints for active executing paths of the online symbolic execution, and cause the execution client to perform symbolic execution in response to the determination that the resources are at or above the threshold performance level.