Intermediate Code Hardening Against Stack Corruption and ROP

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Low-end embedded devices with limited resources are vulnerable to stack corruption and return-oriented programming (ROP) attacks, posing a significant security risk due to their inability to implement sophisticated mitigation measures.

Innovation Solution

Adjust intermediate code files to include return address protection (RAP) and ROP exploitation prevention logic by replacing push and pop stack instructions with prologue and epilogue code segments, and verifying indirect branch instructions, respectively, to detect and prevent malicious control flow manipulation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sophisticated mitigation measures are applied to counter cyber threats, then security protection is improved, but resource consumption increases beyond the capacity of low-end embedded devices

Engineering Contradiction:
Improvesecurity protectionVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The security mitigation is segmented into two parts: (1) prologue code that pushes a canary value and alters return address during stack setup, and (2) epilogue code that validates the canary and restores stack during teardown. This segmentation allows lightweight protection at critical points without burdening the entire system with heavy security mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The prologue code performs preliminary protective actions by pushing canary values and altering return addresses before the main routine executes. This preliminary setup establishes security checks in advance, preventing stack corruption attacks before they can compromise the system, while using minimal resources.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If return address protection is implemented in low-end embedded devices, then vulnerability to stack corruption attacks is reduced, but code complexity increases

Engineering Contradiction:
Improvevulnerability resistanceVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The complex security validation logic is extracted into separate epilogue code segments that are automatically invoked at routine exit points. The main routine remains simple and unchanged, while the extracted epilogue handles all canary validation and stack restoration logic, isolating complexity from the primary business logic.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

A canary value acts as an intermediary between the stack and the validation logic. The canary is pushed by the prologue, serves as a sentinel marker for stack integrity, and is validated by the epilogue. This intermediary simplifies the protection mechanism by providing a clear, detectable signal of stack corruption without requiring complex monitoring throughout the routine.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If prologue and epilogue code segments are added to routines, then stack validation capability is improved, but execution time increases

Engineering Contradiction:
Improvestack validation capabilityVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The security validation is applied locally only at the entry (prologue) and exit (epilogue) points of routines where stack operations occur, rather than continuously throughout execution. This localized approach provides necessary validation while minimizing the time overhead to just these critical transition points, avoiding unnecessary validation during the main routine execution.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12517744B2Applying security mitigation measures for stack corruption exploitation in intermediate code files
Publication Date: 2026.01.06 STERNUM LTD
  • US12517744B2 patent drawing
  • US12517744B2 patent drawing
  • US12517744B2 patent drawing

AI summary

Presented herein are methods and systems for generating intermediate code files adjusted to prevent return oriented programming exploitation, comprising receiving compiled intermediate code file(s) comprise a plurality of routines and adjusting them prior to generation of a respective executable file for execution by one or more processor. The adjusting comprising analyzing a symbol table of the intermediate code file(s) to identify a beginning address of each of the routines, analyzing each of the routines to identify indirect branch instructions in the routines, and replacing each detected indirect branch instruction with invocation of a verification code segment configured to verify that the respective indirect branch instruction points to the beginning address of one of the routines. In runtime, the verification code segment causes the processor(s) to initiate one or more predefined actions in case the indirect branch instruction isn't pointing to the beginning address of one of the plurality of routines.