2026 · Journal article

Fool Me If You Can: On the Robustness of Binary Code Similarity Detection Models against Semantics-Preserving Transformations

The paper builds asmFooler to test whether learned binary code similarity detection (BCSD) models keep matching functions after semantics-preserving changes. From 620 baseline x86-64 ELF binaries (coreutils, binutils, PuTTY, nginx, SPEC2006 and others, built with Clang at O0–O3), it generates 9,565 variants using in-place instruction rewriting, basic-block reordering, Obfuscator-LLVM, semantic NOPs and junk code, and it adds a greedy search for dead-code sequences that make dissimilar functions look similar. Across Genius, Gemini, Asm2Vec, SAFE, Trex and BinShot, robustness depends on each model's preprocessing, architecture and features: block reordering drops BinShot's recall from 0.972 to 0.036 but lowers it by under 0.05 for the CFG-based Genius and Gemini. The false-positive attack reaches up to 100% success with 14.75 inserted instructions on average.

Scope and limitations

All samples are x86-64 ELF binaries compiled by the authors from open-source packages and SPEC2006; some packages failed to compile or transform, and the in-place transformation is non-deterministic and not formally verified. The six models evaluated (Genius, Gemini, Asm2Vec, SAFE, Trex and BinShot) exclude jTrans and LLM-based similarity models, so the findings are not shown to transfer to newer or LLM-based systems. Results depend on the transformation budgets the authors set to fit each model's input limits, and semantic NOPs and junk code are inserted only at function entry. Packing, encryption, string obfuscation and commercial protectors such as VMProtect and Themida are out of scope, and adversarial training is left to future work.

Why it fits this collection

Adds a measured study of how code diversification and obfuscation mislead learned binary similarity models, which matters when reverse engineers rely on such models to match functions in transformed binaries.

Publication and review details

Venue
Proceedings of the ACM on Software Engineering (FSE 2026)
Status
Journal article
Publication / posting date
June 30, 2026
Date source
ACM's Crossref deposit records print and online publication on 2026-06-30. The PDF footer's July 2026 publication date and the FSE 2026 conference dates are not substituted for it.
First arXiv submission
February 13, 2026
arXiv
2602.12681
Reviewed arXiv version
v1
DOI
10.1145/3797116

Crossref records Proceedings of the ACM on Software Engineering volume 3, issue FSE, pages 1957–1980, with a CC BY 4.0 license; the PDF footer gives article FSE088. The ACM title capitalizes 'Semantics-Preserving', while arXiv writes 'Semantics-preserving'; the four-author order matches. The ACM landing page refused automated access, so publication facts follow Crossref and the reviewed text is arXiv v1 (2026-02-13), the only version, whose comment states FSE 2026 acceptance. The Data Availability section links Zenodo record 10.5281/zenodo.17116512, a software record named asmFooler (2025-09-11, CC BY 4.0) whose creator is listed as 'anonymous', with a 159 KB artifact archive and a 5 GB dataset archive. Because no author-identified code repository was found, code_url stays null and the Zenodo DOI is recorded here as an artifact identifier, not a paper identifier. The archives were not downloaded and nothing was run.

Sources reviewed

Source review only; experiments were not rerun for this collection. Cite the original authors using the linked paper or BibTeX.

Report an outdated entry Suggest a translation fix

Primary sources

  1. https://dl.acm.org/doi/10.1145/3797116
  2. https://api.crossref.org/works/10.1145/3797116
  3. https://arxiv.org/abs/2602.12681
  4. https://arxiv.org/pdf/2602.12681v1
  5. https://zenodo.org/records/17116512