Static Analysis of IoC Applications via Hook-Based Initialization Simulation

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 calls and connections made during runtime, which are not exposed to static analysis.

Innovation Solution

A method and system for detecting code initialization actions by identifying anchor points in the application code, inserting hooks, and receiving results to simulate external initialization, allowing for the generation of machine code that can be provided to a static analyzer for complete analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If applications are deployed using IoC frameworks with external initialization, then code reusability and flexibility are improved, but static analysis completeness deteriorates because external calls and connections are not exposed to static analysis

Engineering Contradiction:
Improvecode reusabilityVSAvoidstatic analysis completeness
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The system performs preliminary action by detecting anchor points in the application code before execution and inserting hooks that simulate external initialization actions. This preliminary preparation allows the static analyzer to understand external dependencies and complete code paths without requiring actual runtime execution, thereby resolving the contradiction between code flexibility and analysis completeness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The hook mechanism serves as an intermediary between the application code and the static analyzer. By inserting hooks at anchor points, the system mediates the interaction to capture initialization actions that would otherwise be hidden, enabling complete static analysis while preserving the IoC framework's external initialization capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If traditional static analysis is applied to IoC framework applications, then analysis speed is maintained, but analysis accuracy deteriorates due to incomplete code representation

Engineering Contradiction:
Improveanalysis speedVSAvoidanalysis accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system performs preliminary detection of anchor points and insertion of hooks before static analysis begins. This preliminary action enriches the code representation with simulated external initialization actions, enabling accurate analysis without requiring slow runtime execution, thus improving both accuracy while maintaining speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a copied or simulated version of the external initialization actions through hooks. Instead of executing the actual external calls during analysis, the hooks replicate their behavior in a controlled manner, providing accurate analysis results without the time overhead of real execution.

Inventive Principle:
Principle #26Copying

3Loss of information

If hooks are inserted into application code to simulate initialization, then static analysis completeness is improved, but code complexity increases

Engineering Contradiction:
Improveinitialization action visibilityVSAvoidcode structure
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system segments the code analysis process by identifying specific anchor points where hooks should be inserted. This segmentation allows targeted modification of only critical code sections rather than rewriting the entire application, thereby improving initialization visibility while minimizing the increase in overall code complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The hooks act as intermediary elements that bridge the existing code structure and the analysis requirements. By inserting these intermediate components at specific anchor points, the system enhances initialization action visibility without fundamentally altering the application's core logic or structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240354079A1Techniques for performing static analysis on deployed application code
Publication Date: 2024.10.24 CROWDSTRIKE
  • US20240354079A1 patent drawing
  • US20240354079A1 patent drawing
  • US20240354079A1 patent drawing

AI summary

The present disclosure provides an approach of executing application code on a simulator and receiving a result from a hook in response to executing the application code. The hook corresponds to a call to a code object which is inaccessible to the simulator. The result is from an emulation of a connection response corresponding to the code object. The approach generates instructions based on the result and, in turn, performs static analysis on the application code based on the instructions.