Static Analysis of IoC Applications via Emulated Initialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Static analysis techniques face challenges in analyzing applications deployed using Inversion of Control (IoC) frameworks, as these applications are not complete in the sense that all parameters are contained within the code, with external initialization calls made to resources like databases and libraries only available at runtime, making it difficult to trace dependencies and perform analysis.

Innovation Solution

A method and system for generating a set of instructions by emulating the application code, inserting a code hook at anchor points to record actions, and providing these instructions to a static analyzer, allowing for simulated external initialization and traceability of application code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If applications are deployed using IoC frameworks with external initialization, then the applications can utilize runtime resources and external services, but static analysis techniques cannot trace dependencies and analyze the complete code behavior

Engineering Contradiction:
Improveability to utilize external resourcesVSAvoidtraceability of dependencies
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent performs preliminary actions by emulating the external initialization framework during the static analysis phase. The system creates a simulated runtime environment that pre-executes initialization code, resolves dependencies, and generates a complete state machine representation before actual static analysis occurs. This allows dependencies to be traced and analyzed in advance, resolving the contradiction between runtime adaptability and static traceability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary component - a simulated runtime environment that acts as a mediator between the static analysis tool and the application code. This intermediary emulates the IoC framework's initialization process, captures dependency relationships, and presents them to the static analyzer in a traceable format. The intermediary translates runtime behavior into static analysis-friendly representations, enabling both runtime versatility and static traceability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If code hooks are inserted to record runtime actions, then complete execution traces can be captured, but the code structure becomes more complex and modification-prone

Engineering Contradiction:
Improvecompleteness of execution tracesVSAvoidcomplexity of code structure
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent creates a copy of the runtime execution environment rather than directly modifying the production code structure. The simulated runtime environment replicates the necessary initialization and dependency injection behavior, capturing execution traces without permanently altering the original application code. This copying approach preserves code simplicity while achieving complete trace capture.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent segments the analysis process into distinct components: the original application code remains unchanged, while a separate simulated runtime environment handles the emulation and trace recording. This segmentation isolates the complexity of code hooking and emulation into a dedicated module, preventing it from propagating through the entire codebase and maintaining overall structural simplicity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12032471B2System and method for generating machine code from a mock application
Publication Date: 2024.07.09 CROWDSTRIKE
  • US12032471B2 patent drawing
  • US12032471B2 patent drawing
  • US12032471B2 patent drawing

AI summary

A system and method for generating a set of instructions for static analysis, for application code utilizing an external initialization engine. The method includes receiving a result from a code hook, the code hook inserted into an application code at an anchor point, the application code deployed in a cloud computing environment, wherein the application code requires an external initialization framework; and generating a set of instructions based on the received result and the anchor point of the application code, in response to emulating execution of the application code.