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.