Architecture-Independent Binary Analysis via Canonical Intermediate Language

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing binary analysis techniques are limited in detecting unknown threats, are platform-specific, and can be thwarted by minor changes such as compiler settings or optimizations, and behavior-based analysis is architecture-specific, making them ineffective for sophisticated vulnerability analysis.

Innovation Solution

A system employing a canonical intermediate language (CIL) to provide a normalized, architecture-independent representation of binary code, encoding semantics and structure while limiting the vocabulary, enabling platform-independent and functionality-based analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If binary analysis techniques are used to detect vulnerabilities, then known threats can be identified, but unknown threats cannot be detected and the analysis is limited to platform-specific approaches

Engineering Contradiction:
Improvevulnerability detection capabilityVSAvoidplatform independence
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an intermediate representation layer between binary code and analysis algorithms. This intermediate format serves as a mediator that translates architecture-specific binary instructions into a unified representation, enabling platform-independent vulnerability detection while maintaining the ability to identify both known and unknown threats through semantic analysis.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a universal analysis framework that can handle multiple computing architectures (x86, ARM, MIPS, etc.) through a single intermediate representation system. This universal approach allows the same analysis tools to detect vulnerabilities across different platforms without requiring architecture-specific analysis engines for each platform.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If binary analysis is performed on platform-specific code, then architecture-specific vulnerabilities can be detected, but the analysis fails when faced with code modified by compiler settings or optimizations

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidrobustness to compiler modifications
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent extracts the essential semantic meaning from binary code by translating it into an intermediate representation that captures functionality independent of implementation details. This extraction process removes the influence of compiler-specific optimizations and transformations, allowing vulnerability detection to focus on semantic vulnerabilities rather than being thrown off by legitimate code variations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the representation parameters from raw binary instructions to semantic intermediate representations. This parameter transformation allows the analysis system to remain stable when input code undergoes compiler modifications, as the intermediate representation normalizes different implementations of the same functionality into a consistent form.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If behavior-based analysis is used to capture execution information, then runtime behavior can be observed, but the analysis becomes highly architecture-specific and suffers from similar limitations as binary analysis

Engineering Contradiction:
Improveexecution analysis capabilityVSAvoidarchitecture independence
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent uses intermediate representation as an intermediary that bridges execution behavior and vulnerability analysis. By translating runtime behavior into the same unified intermediate format used for static binary analysis, the system achieves architecture-independent behavior analysis that can be integrated with existing vulnerability detection frameworks.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11900086B2Systems and methods for architecture-independent binary code analysis
Publication Date: 2024.02.13 BATTELLE ENERGY ALLIANCE LLC
  • US11900086B2 patent drawing
  • US11900086B2 patent drawing
  • US11900086B2 patent drawing

AI summary

Binaries configured for execution within respective computing environments may be disassembled into architecture-specific intermediate (AIL) representations. The AIL representations may be converted into canonical intermediate language (CIL) representations. The CIL representations may comprise normalized, architecture-independent code configured to characterize functionality of respective components of a binary (e.g., respective functions or the like). Feature vectors may be extracted from the CIL representations. The feature vectors may be used to identify components of respective binaries, assign security classifications to the binaries, and/or the like.