Binary Variable Type Identification via Disassembly Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for analyzing and patching vulnerabilities in program binaries lack the ability to automatically identify variable types and sizes, which are crucial for detecting and fixing issues like buffer overflow and integer overflow, especially when source code is not available.

Innovation Solution

A method and device that analyze disassembly code to identify variables, determine their types and sizes by using instruction patterns and standard library functions, and provide this information for vulnerability analysis and patching in binary files.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If vulnerability analysis is performed on program binaries without source code, then analysis can be conducted on compiled programs, but variable type and size information cannot be automatically obtained

Engineering Contradiction:
Improveability to analyze binariesVSAvoidvariable type and size information
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent creates a virtual copy of the source code environment by reconstructing variable type and size information from binary disassembly code. The system analyzes control flow graphs and data flow graphs to infer variable characteristics, effectively creating a symbolic representation that mirrors what would be available from source code, enabling vulnerability analysis without accessing the original source.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent replaces the mechanical process of reading source code directly with an automated analysis system that processes binary disassembly code. By substituting source code inspection with binary analysis mechanisms including control flow graph construction and data flow analysis, the system automatically derives variable information that would traditionally require source code access.

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

2Measurement precision

If source code is used for vulnerability analysis, then variable type and size information can be easily identified, but analysis cannot be performed when source code is unavailable

Engineering Contradiction:
Improvevariable type identification accuracyVSAvoidapplicability to compiled programs
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

Instead of extracting variable information from source code to analyze binaries, the patent inverts the approach by analyzing binary disassembly code to reconstruct variable information. The system builds control flow graphs and data flow graphs from binary instructions, then infers variable types and sizes by tracing data flows and analyzing instruction patterns, effectively working backwards from binary to source-level information.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent introduces control flow graphs and data flow graphs as intermediary structures between binary disassembly code and variable information. These graphs serve as mediators that capture the program's execution flow and data transformations, enabling the system to derive variable characteristics indirectly through graph analysis rather than direct source code inspection.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If manual source code analysis is performed, then vulnerability detection is straightforward, but the process is time-consuming and labor-intensive

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidanalysis time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements self-service by automating the entire variable information extraction process. The system automatically constructs control flow graphs and data flow graphs from binary disassembly, performs data flow analysis to infer variable types and sizes, and generates vulnerability analysis results without human intervention. This automated self-service approach maintains high reliability while eliminating manual analysis time.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent transforms the analysis process by changing parameters from manual inspection to automated graph-based analysis. By representing program behavior as control flow graphs and data flow graphs with specific parameters (nodes, edges, data dependencies), the system enables automated computation of variable information that would require manual tracing, significantly reducing analysis time while maintaining accuracy.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11262994B2Method and device for identifying type of variable in binary
Publication Date: 2022.03.01 KOREA INTERNET & SECURITY AGENCY
  • US11262994B2 patent drawing
  • US11262994B2 patent drawing
  • US11262994B2 patent drawing

AI summary

A method for identifying a type of a variable within a binary performed on a computing device is provided. The method comprises, identifying a variable from disassembly code of a binary, and determining a type of the variable based on an instruction of the disassembly code, associated with the variable.