ArXiv TLDR

Erlang Binary and Source Code Obfuscation

🐦 Tweet
2604.13675

Gregory Morse, Tamás Kozsik

cs.PLcs.CR

TLDR

This paper explores Erlang program obfuscation techniques across source, AST, and BEAM levels to hinder reverse engineering.

Key contributions

  • Studies obfuscation at source, AST, BEAM assembly, and bytecode levels.
  • Complicates reverse engineering, decompilation, and recompilation of Erlang programs.
  • Categorizes opcode dependency tricks, receive-based loop encodings, and irregular control-flow.
  • Exploits representational gaps between Erlang semantics and the BEAM execution model.

Why it matters

This work reveals how effective Erlang obfuscation exploits gaps between high-level semantics and low-level BEAM execution. It provides crucial insights for protecting Erlang intellectual property and understanding potential security vulnerabilities.

Original Abstract

This paper studies obfuscation techniques for Erlang programs at the source, abstract syntax tree, BEAM assembly, and BEAM bytecode levels. We focus on transformations that complicate reverse engineering, decompilation, and recompilation while remaining grounded in the actual behavior of the Erlang compiler, validator, loader, and virtual machine. The paper categorizes opcode-level dependency tricks, receive-based loop encodings, irregular control-flow constructions, mutability-oriented performance obfuscation, and self-modifying code enabled by dynamic module loading. A recurring theme is that effective obfuscation in BEAM often arises not from arbitrary corruption, but from exploiting representational gaps between high-level Erlang semantics and the lower-level execution model accepted by the toolchain and runtime.

📬 Weekly AI Paper Digest

Get the top 10 AI/ML arXiv papers from the week — summarized, scored, and delivered to your inbox every Monday.