Fuzzing Harness Generation Using Bitcode Slicing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The process of creating a fuzzing harness is tedious and time-consuming, requiring significant manual effort and specialized skills, especially in the context of automotive software development, where high-quality and efficient fuzz testing is crucial for safety and security.

Innovation Solution

A method for generating a fuzzing harness that automates the process by selecting a target function from software source code, compiling a sample program, slicing the target function from bit code, and optionally using stub implementations to reduce computing resources, ensuring quality and reducing the need for skilled developers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual creation of fuzzing harness is performed, then quality and control of the harness can be ensured, but significant time and skilled developer effort are required

Engineering Contradiction:
Improvequality of fuzzing harnessVSAvoidtime for harness creation
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs automatic fuzzing harness generation by analyzing source code and bitcode independently, without requiring manual intervention from developers. The automated analysis extracts function signatures, parameters, and control flow information to generate harness code, eliminating the time-consuming manual creation process while maintaining quality through systematic analysis methods

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The manual mechanical process of creating fuzzing harnesses by skilled developers is replaced with an automated computational system. The system uses static analysis, dynamic analysis, and bitcode manipulation to automatically generate harness code, substituting human expertise with algorithmic processes that can operate without specialized knowledge

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

2Loss of information

If complete sample program is compiled and analyzed, then comprehensive trace information is obtained, but computing resources are consumed

Engineering Contradiction:
Improvecompleteness of trace informationVSAvoidcomputing resources
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The system extracts only the necessary portions of the sample program by identifying and isolating the target function and its immediate context. Through bitcode slicing and selective analysis, the system extracts trace information relevant to the fuzzing harness generation without analyzing the entire program, thereby reducing computing resource consumption while maintaining the completeness of essential trace information

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The analysis process is segmented into distinct phases: initial source code analysis, selective compilation of relevant components, bitcode generation and slicing, and harness code generation. This segmentation allows the system to process only the necessary portions of the program at each stage, reducing overall computing resource requirements while ensuring comprehensive trace information is captured for the target function

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20260003772A1Method for generating a fuzzing harness
Publication Date: 2026.01.01 CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH
  • US20260003772A1 patent drawing
  • US20260003772A1 patent drawing
  • US20260003772A1 patent drawing

AI summary

The invention relates to a method (1) for generating a fuzzing harness (10). According to the method (1), a piece of software source code (2) is provided. A target function (3) to be fuzzed and a sample program (5) that calls the target function (3) are selected from the software source code (2). The sample program (5) is then compiled to generate bit code (8) and the target function (3) is sliced from the bit code (8), based on the target function (3), to obtain the fuzzing harness (10). The invention further relates to a computer program product 10 comprising instructions which, when executed by a computer, cause the computer to perform the method (1) described above.