Executable Binary Watermarking Through Function Reordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software watermarking methods face challenges in balancing the characteristics of credibility, resiliency, spread, watermark embedding capacity, imperceptibility, and efficiency, often requiring source code changes and recompilation, which are cumbersome and impractical.

Innovation Solution

A method and device that embeds watermarks in executable binary files by reordering functions without changing the source code, using metadata generated during compilation to reorder and rewrite functions, and manage this information in a ledger for verification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If watermark is embedded by modifying source code and recompiling, then watermark embedding capacity and credibility are improved, but manufacturing complexity and time consumption increase

Engineering Contradiction:
Improvewatermark credibilityVSAvoidsource code modification complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a binary rewriting tool as an intermediary that operates between the compiled binary and the watermark embedding process. This tool automatically analyzes the binary structure, identifies suitable embedding locations, and performs watermark insertion without requiring source code modifications. The intermediary handles the complexity of binary analysis and rewriting, making the watermark embedding process simpler while maintaining high credibility through deep binary integration.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical process of source code modification and recompilation with an automated binary rewriting system. Instead of manually or semi-automatically editing source code and triggering compilation processes, the system directly manipulates the compiled binary using automated analysis and rewriting tools, substituting a complex multi-step mechanical process with a streamlined automated approach.

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

2Quantity of substance

If watermark is embedded by modifying source code and recompiling, then watermark embedding capacity is improved, but productivity and ease of manufacture deteriorate

Engineering Contradiction:
Improvewatermark embedding capacityVSAvoidsoftware creation efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent performs preliminary analysis of the binary structure before watermark embedding. The binary rewriting tool scans and analyzes the compiled binary to identify optimal embedding locations, data sections, and code regions that can accommodate watermark data. This preliminary action ensures maximum watermark capacity is achieved while avoiding critical code sections, and it eliminates the need for iterative compilation and testing, thereby improving productivity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the traditional source code modification and recompilation mechanism with direct binary manipulation. This substitution allows watermark embedding to occur after compilation, eliminating the need to interrupt the software creation workflow. Developers can compile software normally and then apply watermarking as a separate post-processing step, significantly improving productivity while maintaining large watermark embedding capacity through direct binary modification.

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

3Ease of operation

If watermark is embedded in executable binary by reordering functions, then imperceptibility and ease of operation are improved, but watermark embedding capacity may decrease

Engineering Contradiction:
Improvewatermark embedding easeVSAvoidwatermark embedding capacity
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent segments the binary into multiple independent function blocks and reorders these segments to embed watermark information. Instead of attempting to embed large amounts of continuous watermark data in a single location, the system divides the watermark into segments and distributes them across multiple function reordering operations. This segmentation approach maintains ease of operation by working with manageable binary segments while achieving substantial overall embedding capacity through cumulative effect.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from embedding watermark data in a single-dimensional space (one location in the binary) to a multi-dimensional approach by reordering multiple functions across different sections of the binary. The watermark information is encoded in the relative positions and ordering of numerous functions throughout the entire binary structure, effectively utilizing the spatial dimension of the binary layout to achieve high embedding capacity while maintaining operational simplicity through systematic reordering rules.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS12517988B2Method and device of embedding watermark in software
Publication Date: 2026.01.06 RES & BUSINESS FOUND SUNGKYUNKWAN UNIV
  • US12517988B2 patent drawing
  • US12517988B2 patent drawing
  • US12517988B2 patent drawing

AI summary

In a software watermarking method according to an embodiment, a watermark is embedded into an executable binary file by compiling a source code to generate the executable binary file and rewriting the executable binary file while reordering two or more functions included in the executable binary file. At the time of compiling the source code, metadata including information related to positions of functions in the executable binary file is generated and included in the binary. The executable binary file is rewritten by reflecting change in positions of the two or more functions using the metadata without recompiling the source code. Information related to the changed function location is stored in a separate ledger.