Function Fingerprints for Partial Code Theft Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for combating software theft focus on the entire code and fail to detect when only portions of the underlying code are stolen, as they cannot identify unique portions that provide value, allowing thieves to modify or remove watermarks or hash values to evade detection.

Innovation Solution

Generating fingerprints for functions in compiled computer binaries using block rank scores and ordered lists of blocks to identify similarities, allowing for the detection of stolen code even when the overall operation of the software is different.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If watermarks are applied to the entire software code, then software theft can be detected, but the technique fails when only portions of code are stolen and allows thieves to remove watermarks to evade detection

Engineering Contradiction:
Improvesoftware theft detectionVSAvoidcode modification complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the software code into individual functions and further into basic blocks, creating a hierarchical structure where each segment can be independently analyzed. This allows the system to detect theft at multiple levels - entire software, specific functions, or individual basic blocks - without requiring modification of the entire codebase. The segmentation enables detection of partial theft while maintaining system simplicity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts unique identifying features (fingerprints) from specific segments of code (functions and basic blocks) without modifying the original code. By taking out only the essential fingerprint information and storing it separately, the system can detect theft through comparison without altering the software's operation or requiring complex code modifications.

Inventive Principle:
Principle #2Taking out (Extraction)

2Measurement precision

If hash values are used to compare entire codebases, then complete software theft can be detected, but the method cannot identify partial code theft or unique valuable portions

Engineering Contradiction:
Improvecode theft detection precisionVSAvoidcode analysis scope
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent divides the codebase into functions and basic blocks, creating a segmented measurement system. Instead of analyzing the entire codebase as a single unit, the system measures and compares individual segments (functions and basic blocks) to identify unique valuable portions. This segmentation enables precise detection of partial theft while reducing the quantity of code that needs to be analyzed at any given time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality analysis by generating unique fingerprints for specific segments (functions and basic blocks) that contain distinctive characteristics. Rather than treating the entire codebase uniformly, the system identifies and analyzes local regions with unique properties, enabling detection of partial theft and identification of valuable code portions without analyzing the entire codebase.

Inventive Principle:
Principle #3Local quality

3Reliability

If watermarks are embedded in the software, then theft detection is possible, but the watermarks can be removed from stolen software to evade detection

Engineering Contradiction:
Improvetheft detection reliabilityVSAvoidwatermark removal capability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent extracts fingerprint information from code segments and stores it separately as a reference database. By taking out only the essential fingerprint data and storing it externally, the system can detect theft through comparison without embedding watermarks within the code itself. This eliminates the ability of thieves to remove watermarks while maintaining detection reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a reference database of fingerprints as an intermediary between the original code and the detection process. Instead of embedding watermarks directly in the code, the system creates a mediator (fingerprint database) that stores characteristic features. Detection occurs by comparing fingerprints from suspected stolen code against this intermediary reference, making watermark removal ineffective since the fingerprints are extracted and stored separately.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9459861B1Systems and methods for detecting copied computer code using fingerprints
Publication Date: 2016.10.04 DELOITTE DEVELOPMENT LLC
  • US9459861B1 patent drawing
  • US9459861B1 patent drawing
  • US9459861B1 patent drawing

AI summary

Systems and methods of detecting copying of computer code or portions of computer code involve generating unique fingerprints from compiled computer binaries. The unique fingerprints are simplified representations of functions in the compiled computer binaries and are compared with each other to identify similarities between functions in the respective compiled computer binaries. Copying can be detected when there are sufficient similarities between fingerprints of two functions.