OCFI: Make Function Entry Identification Hard Again
Chengbin Pang, Tiantai Zhang, Xuelan Xu, Linzhang Wang, Bing Mao
Abstract
Function entry identi cation is a crucial yet challenging task for binary disassemblers that has been the focus of research in the past decades. However, recent researches show that call frame information (CFI) provides accurate and almost complete function entries. With the aid of CFI, disassemblers have signi cant improvements in function entry detection. CFI is speci cally designed for e cient stack unwinding, and every function has corresponding CFI in x64 and aarch64 architectures. Nevertheless, not every function and instruction unwinds the stack at runtime, and this observation has led to the development of techniques such as obfuscation to complicate function detection by disassemblers. We propose a prototype of ocfi to obfuscate CFI based on this observation. The goal of ocfi is to obstruct function detection of popular disassemblers that use CFI as a way to detect function entries. We evaluated ocfi on a large-scale dataset that includes real-world applications and automated generation programs, and found that the obfuscated CFI was able to correctly unwind the stack and make the detection of function entries of popular disassemblers more di cult. Furthermore, on average, ocfi incurs a size overhead of only 4% and nearly zero runtime overhead. CCS CONCEPTS • Security and privacy → Software reverse engineering; Software security engineering.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Cited by top-tier papers1
Ask how each one uses itBuilds on6
- Directed Greybox FuzzingMarcel Böhme, Van-Thuan Pham, Manh-Dung Nguyen, Abhik RoychoudhuryCCS 2017 · 836 citations
- Data-Oriented Programming: On the Expressiveness of Non-control Data AttacksHong Hu, Shweta Shinde, Sendroiu Adrian, Zheng Leong Chua et al.S&P 2016 · 420 citations
- SoK: All You Ever Wanted to Know About x86/x64 Binary Disassembly But Were Afraid to AskChengbin Pang, Ruotong Yu, Yaohui Chen, Eric Koskinen et al.S&P 2021 · 102 citations
- Ground Truth for Binary Disassembly is Not EasyChengbin Pang, Tiantai Zhang, Ruotong Yu, Bing Mao et al.USENIX Security 2022
- Let Me Unwind That For You: Exceptions to Backward-Edge ProtectionVictor Duta, Fabian Freyer, Fabio Pagani, Marius Muench et al.NDSS 2023
Related papers
- Disa: Accurate Learning-based Static Disassembly with AttentionsPeicheng Wang, Monika Santra, Mingyu Liu, Cong Sun et al.CCS 2025
- An In-Depth Analysis of Disassembly on Full-Scale x86/x64 BinariesDennis Andriesse, Xi Chen, Victor van der Veen, Asia Slowinska et al.USENIX Security 2016 · 162 citations
- A lightweight framework for function name reassignment based on large-scale stripped binariesHan Gao, Shaoyin Cheng, Yinxing Xue, Weiming ZhangISSTA 2021 · 46 citations
- Boosting Practical Control-Flow Integrity with Complete Field Sensitivity and Origin AwarenessHao Xiang, Zehui Cheng, Jinku Li, Jianfeng Ma et al.CCS 2024 · 2 citations
- When Function Signature Recovery Meets Compiler OptimizationYan Lin, Debin GaoS&P 2021 · 22 citations
