Advanced techniques for securing applications against reverse engineering attacks


Abstract

Software obfuscation is a widely used technique to protect programs against reverse engineering attacks. Among these, control flow flattening (CFF) proven effective in complicating program structure by replacing conditions and loops with dispatcher-based execution. However, existing techniques to CFF often lack a formal foundation, making them difficult for reasoning or generalization.

In this paper, we introduce theory for CFF based on Kleene Algebra with Tests (KAT). Our theory enables the systematic transformation of conditionals, loops, nested structures, and multi-statements into flattened control flow structure. We formally prove the behavior equivalence between the original and the flattened code. To illustrate the applicability of the theory, we apply the theory to a C program and analyze the flattened version. The analysis highlights the trade-off between security and performance: while the CFF version introduces runtime overhead compared to the original structured program, it significantly increases program complexity and resilience against reverse engineering.

Ask to review this manuscript

Notes for potential reviewers

  • Volunteering is not a guarantee that you will be asked to review. There are many reasons: reviewers must be qualified, there should be no conflicts of interest, a minimum of two reviewers have already accepted an invitation, etc.
  • This is NOT OPEN peer review. The review is single-blind, and all recommendations are sent privately to the Academic Editor handling the manuscript. All reviews are published and reviewers can choose to sign their reviews.
  • What happens after volunteering? It may be a few days before you receive an invitation to review with further instructions. You will need to accept the invitation to then become an official referee for the manuscript. If you do not receive an invitation it is for one of many possible reasons as noted above.

  • PeerJ Computer Science does not judge submissions based on subjective measures such as novelty, impact or degree of advance. Effectively, reviewers are asked to comment on whether or not the submission is scientifically and technically sound and therefore deserves to join the scientific literature. Our Peer Review criteria can be found on the "Editorial Criteria" page - reviewers are specifically asked to comment on 3 broad areas: "Basic Reporting", "Experimental Design" and "Validity of the Findings".
  • Reviewers are expected to comment in a timely, professional, and constructive manner.
  • Until the article is published, reviewers must regard all information relating to the submission as strictly confidential.
  • When submitting a review, reviewers are given the option to "sign" their review (i.e. to associate their name with their comments). Otherwise, all review comments remain anonymous.
  • All reviews of published articles are published. This includes manuscript files, peer review comments, author rebuttals and revised materials.
  • Each time a decision is made by the Academic Editor, each reviewer will receive a copy of the Decision Letter (which will include the comments of all reviewers).

If you have any questions about submitting your review, please email us at [email protected].