English
Related papers

Related papers: Augmenting Decompiler Output with Learned Variable…

200 papers

Translating machine code into human-readable high-level languages is an open research problem in reverse engineering. Despite recent advancements in LLM-based decompilation to C, modern languages like Dart and Swift are unexplored. In this…

Software Engineering · Computer Science 2026-04-03 Raafat Abualazm , Ayman Abo Elhassan

Decompilation is foundational to binary analysis, yet conventional tools prioritize human readability over strict recompilability and verifiable runtime correctness. While recent LLM-based approaches attempt to refine decompiled pseudocode,…

Software Engineering · Computer Science 2026-03-17 Yuxin Cui , Zeyu Gao , Shuxian He , Siliang Qin , Chao Zhang

For statistical learning, categorical variables in a table are usually considered as discrete entities and encoded separately to feature vectors, e.g., with one-hot encoding. "Dirty" non-curated data gives rise to categorical variables with…

Machine Learning · Computer Science 2018-06-05 Patricio Cerda , Gaël Varoquaux , Balázs Kégl

During compilation from Java source code to bytecode, some information is irreversibly lost. In other words, compilation and decompilation of Java code is not symmetric. Consequently, decompilation, which aims at producing source code from…

Software Engineering · Computer Science 2020-05-27 Nicolas Harrand , César Soto-Valero , Martin Monperrus , Benoit Baudry

Cryptographic libraries are a main target of timing side-channel attacks. A practical means to protect against these attacks is to adhere to the constant-time (CT) policy. However, it is hard to write constant-time code, and even…

Programming Languages · Computer Science 2025-10-15 Santiago Arranz-Olmos , Gilles Barthe , Lionel Blatter , Youcef Bouzid , Sören van der Wall , Zhiyuan Zhang

Many debugging tools rely on compiler-produced metadata to present a source-language view of program states, such as variable values and source line numbers. While this tends to work for unoptimised programs, current compilers often…

Programming Languages · Computer Science 2024-02-08 J. Ryan Stinnett , Stephen Kell

Decompilation converts machine code into human-readable form, enabling analysis and debugging without source code. However, fidelity issues often degrade the readability and semantic accuracy of decompiled output. Existing methods, such as…

Software Engineering · Computer Science 2025-10-23 Zhiping Zhou , Xiaohong Li , Ruitao Feng , Yao Zhang , Yuekang Li , Wenbu Feng , Yunqian Wang , Yuqing Li

Understanding binary code is an essential but complex software engineering task for reverse engineering, malware analysis, and compiler optimization. Unlike source code, binary code has limited semantic information, which makes it…

Software Engineering · Computer Science 2022-10-12 Yifan Zhang

Unknowingly, identifiers in the source code of a software system play a vital role in determining the quality of the system. Ambiguous and confusing identifier names lead developers to not only misunderstand the behavior of the code but…

Software Engineering · Computer Science 2021-03-26 Anthony Peruma

Automatically generating compilable programs with (or without) natural language descriptions has always been a touchstone problem for computational linguistics and automated software engineering. Existing deep-learning approaches model code…

Computation and Language · Computer Science 2022-03-11 Xin Wang , Yasheng Wang , Yao Wan , Fei Mi , Yitong Li , Pingyi Zhou , Jin Liu , Hao Wu , Xin Jiang , Qun Liu

Binary rewriting is a rapidly-maturing technique for modifying software for instrumentation, customization, optimization, and hardening without access to source code. Unfortunately, the practical applications of binary rewriting tools are…

Software Engineering · Computer Science 2022-09-09 Eric Schulte , Michael D. Brown , Vlad Folts

Refactoring is an indispensable practice of improving the quality and maintainability of source code in software evolution. Rename refactoring is the most frequently performed refactoring that suggests a new name for an identifier to…

Software Engineering · Computer Science 2023-05-30 Hao Liu , Yanlin Wang , Zhao Wei , Yong Xu , Juhong Wang , Hui Li , Rongrong Ji

Backtracking (i.e., reverse execution) helps the user of a debugger to naturally think backwards along the execution path of a program, and thinking backwards makes it easy to locate the origin of a bug. So far backtracking has been…

Programming Languages · Computer Science 2013-09-23 Jooyong Yi

Disassembly is fundamental to binary analysis and rewriting. We present a novel disassembly technique that takes a stripped binary and produces reassembleable assembly code. The resulting assembly code has accurate symbolic information,…

Programming Languages · Computer Science 2020-02-27 Antonio Flores-Montoya , Eric Schulte

Binary decompilation plays a vital role in various cybersecurity and software engineering tasks. Recently, end-to-end decompilation methods powered by large language models (LLMs) have garnered significant attention due to their ability to…

Software Engineering · Computer Science 2025-05-27 Peipei Liu , Jian Sun , Rongkang Sun , Li Chen , Zhaoteng Yan , Peizheng Zhang , Dapeng Sun , Dawei Wang , Xiaoling Zhang , Dan Li

Binary decompilation is a critical reverse engineering task aimed at reconstructing high-level source code from stripped executables. Although Large Language Models (LLMs) have recently shown promise, they often suffer from "logical…

Software Engineering · Computer Science 2026-04-15 Qiang Zhang , Zhongnian Li

Binary analysis plays a pivotal role in security domains such as malware detection and vulnerability discovery, yet it remains labor-intensive and heavily reliant on expert knowledge. General-purpose large language models (LLMs) perform…

Cryptography and Security · Computer Science 2025-05-23 Guoqiang Chen , Huiqi Sun , Daguang Liu , Zhiqi Wang , Qiang Wang , Bin Yin , Lu Liu , Lingyun Ying

The software compilation process has a tendency to obscure the original design of the system and makes it difficult both to identify individual components and discern their purpose simply by examining the resulting binary code. Although…

Cryptography and Security · Computer Science 2025-03-07 Sima Arasteh , Pegah Jandaghi , Nicolaas Weideman , Dennis Perepech , Mukund Raghothaman , Christophe Hauser , Luis Garcia

Deep learning had been used in program analysis for the prediction of hidden software defects using software defect datasets, security vulnerabilities using generative adversarial networks as well as identifying syntax errors by learning a…

Software Engineering · Computer Science 2019-07-16 Venkatesh Theru Mohan , Ali Jannesari

Dynamic Programming Languages are quite popular because they increase the programmer's productivity. However, the absence of types in the source code makes the program written in these languages difficult to understand and virtual machines…

Programming Languages · Computer Science 2019-01-17 Abhinav Jangda , Gaurav Anand