Beyond C/C++: Probabilistic and LLM Methods for Next-Generation Software Reverse Engineering
本文提出将概率二进制分析与微调大语言模型相结合,以解决 Rust、Go、Mojo 等新语言二进制逆向工程中传统启发式方法失效和数据驱动方法易产生幻觉的问题,从而提升逆向分析的鲁棒性、准确性与可扩展性。
2025-06-04 cs.SE
Empirical Research Plan: Effects of Sketching on Program Comprehension
草图是软件工程实践中交流的重要手段。然而,很少有研究调查草图的使用。我们希望有助于更好地理解草图,特别是它在程序理解过程中的使用。我们提出了一个控制实验,以调查的有效性和效率的程序理解的支持下,草图以及什么草图是以什么方式使用。
2016-12-05 cs.SE
Leveraging Artificial Intelligence on Binary Code Comprehension
Vanderbilt University(范德堡大学)
对于逆向工程、恶意软件分析和编译器优化来说,理解二进制代码是一项必不可少但复杂的软件工程任务。与源代码不同,二进制代码具有有限的语义信息,这使得它对人类的理解具有挑战性。同时,将源代码编译为二进制代码,或者在不同的程序设计语言(PL)之间进行编译,可以提供一种将外部知识引入二进制理解的方法。我们建议开发人工智能(AI)模型,帮助人类理解二进制代码。具体来说,我们建议将来自大型源代码语料库的领域知识(例如,变量名,注释)来构建AI模型,以捕获二进制代码的可泛化表示。最后,我们将通过使用人类对理解的研究来研究评估适用于二进制代码的模型性能的指标。
2022-10-11 cs.AI cs.SE
A Feature Based Methodology for Variable Requirements Reverse Engineering
在过去的几年里,软件逆向工程处理源代码理解。目前,它已经深入到软件需求的抽象层次,有特征模型表示法支持,与语言无关,并且比源代码阅读简单。目前的相关方法面临以下困难:缺乏完整的集成方法,适应的特征模型,特征模式识别,基于图的切片。这项工作的目的是通过一个综合的方法提供一些解决上述挑战。以下结果是独一无二的。通过引入语义特定属性,以统一的方式指定基本和配置功能。逆向工程支持特征模式识别并要求特征模型基于图的切片。切片标准足够丰富,可以回答软件需求维护人员的问题。基于有效的准则,与类似的作品,这种方法的比较,似乎是有价值的和有竞争力的:丰富的特征模型和特征模式识别从来没有接近和建议的切片技术是更普遍,有效和实用。
2019-04-28 cs.SE
reAnalyst: Scalable Annotation of Reverse Engineering Activities
本文提出 reAnalyst 框架,通过跨工具采集截图、按键和进程等数据并进行半自动标注,解决逆向工程研究中人工收集与主观分析的问题,实验和调查验证了其识别能力、可接受性与实用性。
2025-03-15 cs.SE
Resolving code smells in software product line using refactoring and reverse engineering
软件产品线SPL被认为是软件开发中一种成功的复用方法,其目的是降低生产成本。这种方法允许产品在特定的特性和限制方面有所不同,以覆盖不同的市场。软件产品线工程是产品线中的生产过程。它利用软件产品之间的共性,但也保留了这些产品之间的功能变化的能力。有时,在此过程中不适当的SPL实现可能导致代码气味或代码异常。代码气味被认为是源代码中的问题,可能会影响SPL派生产品的质量。由于重用,SPL的许多派生产品中也会出现同样的问题。重构技术可以在不改变源代码外部行为的前提下改善源代码的内部结构,是解决这一问题的一种可能的方法.本文提出了一种从源代码构建SPL的方法,其目的是通过重构源代码来减少SPL中的代码气味.该方法的另一部分是基于逆向工程来设计SPL.
2020-11-29 cs.SE
Predicting Program Comprehension with Foundation Models of Human Cognition
Saarland University(萨尔兰州立大学)
研究探讨用人类认知基础模型预测程序理解能力,通过评估基于160个心理实验训练的Centaur在9个程序理解研究中的表现,发现其比基础模型更契合人类响应模式,为软件工程中开发者行为建模提供了新思路。
2026-07-15 cs.SE
Reverse Engineering Variability in an Industrial Product Line: Observations and Lessons Learned
理想情况下,可变性模型是产品线特征及其约束的正确和完整的表示。再加上特性和代码之间的映射,这确保了只能配置和派生有效的产品。然而,在实践中,建模的约束可能既不完整也不正确,这会导致在配置和产品派生阶段的问题。本文提出了一种从实现中逆向工程可变性约束的方法,从而提高可变性模型的正确性和完整性。我们扩展了功能效果分析的概念,以提取可变性约束的代码工件的博世PS-EC大规模的产品线。我们提出了一个工业应用的方法,并讨论其所需的修改,以处理非布尔变量和异构工件类型。
2021-10-12 cs.SE
Rethinking complexity for software code structures: A pioneering study on Linux kernel code repository
人工智能(AI)的最新进展显示出在各种复杂任务中减轻人类负担的巨大潜力。从软件工程的角度来看,人工智能技术可以在开发的许多基本方面看到,例如源代码理解,其中实现了最先进的模型来自动提取和表达代码片段的含义。然而,这些技术仍在努力解决和理解工业代码中的复杂结构,因此远离现实世界的应用。在目前的工作中,我们建立了一个创新的和系统的框架,强调在代码理解和进一步的软件工程的复杂性问题。在从最新的Linux内核源代码中自动收集数据汇集的基础上,我们通过令牌提取和关系解析将代码结构建模为复杂网络。对复杂性的全面分析进一步揭示了基于网络的代码表示的密度和规模。我们的工作从工业强度的软件代码构建了第一个大规模数据集,用于下游软件工程任务,包括代码理解,并首次将复杂网络理论纳入软件开发的代码级调查。从长远来看,所提出的方法可以在整个软件工程过程中发挥重要作用,通过重新定义和拥抱复杂性来支持软件设计,编码,调试,测试和维护。
2021-03-01 cs.SE
SeeAction: Towards Reverse Engineering How-What-Where of HCI Actions from Screencasts for UI Automation
本文提出 SeeAction 深度学习视觉模型,从非侵入式屏幕录像中识别命令、控件与位置,构建 7260 对视频-动作数据集,并验证其可用于缺陷复现脚本生成。
2025-03-17 cs.SE
Impact of Comments on LLM Comprehension of Legacy Code
The MITRE Corporation(MITRE公司)
针对遗留系统文档缺失或不准确可能影响大语言模型理解遗留代码的研究空白,本研究采用选择题问答(MCQA)方法评估注释对大语言模型理解遗留代码的影响,给出了初步发现并规划了未来研究方向。
2025-04-23 cs.AI cs.SE
Exploring the Efficacy of Large Language Models (GPT-4) in Binary Reverse Engineering
University of Calgary(卡尔加里大学)
本文通过两阶段实验评估GPT-4在二进制逆向工程中的表现,发现其在一般代码理解上较强,但在深度技术与安全分析上仍有局限,为未来改进提供了依据。
2024-06-09 cs.AI cs.SE
On the Impact of 3D Visualization of Repository Metrics in Software Engineering Education
本研究探讨基于VR的仓库指标可视化在软件工程教育中对过程理解教学的影响,通过对照实验比较VR与非VR方法,验证VR能否提升学生的学习体验和分析技能。
2024-12-20 cs.CY cs.SE
Reverse Engineering from Assembler to Formal Specifications via Program Transformations
FermaT转换系统基于达勒姆大学、德蒙福特大学和Software Migrations Ltd.过去十六年进行的研究,是一个工业强度的形式转换引擎,在程序理解和语言迁移方面有许多应用。本文是一个案例研究,它使用自动化加上手动指导的转换和抽象转换为一个非常高层次的抽象规范的IBM 370汇编代码程序。
2001-05-04 cs.PL cs.SE
Investigating Detection and Obfuscation of Prompt Injection Attacks Against Software Reverse Engineering AI Agents
Dept. of Computer Science(计算机科学系);Naval Postgraduate School(海军学院)
本研究针对软件逆向工程AI代理面临的提示注入攻击,提出了检测反编译器输出中提示注入字符串的防御策略,并探索了攻击混淆及相应防御方法。
2026-05-29 cs.AI cs.CR cs.SE
ReverseORC: Reverse Engineering of Resizable User Interface Layouts with OR-Constraints
Max Planck Institute for Informatics(马克斯·普朗克信息学研究所);Simon Fraser University(西蒙弗雷泽大学);University of Bath(巴斯大学)
用户界面(UI)的逆向工程(RE)在软件演化中起着重要的作用。然而,UI技术的多样性和UI需要调整大小使其具有挑战性。我们提出了ReverseORC,一种新的RE方法,能够发现不同的布局类型和它们的动态布局行为独立于它们的实现,并指定它们通过使用OR约束。与以前的RE方法不同,ReverseORC通过对不同大小的UI进行采样并分析它们之间的差异来推断灵活的布局约束规范。它可以创建规范,甚至复制一些具有复杂动态布局行为的非标准布局管理器。我们证明了ReverseORC可以在不同的平台上使用非常不同的布局方法,例如,对于GUI和Web都是如此。此外,它还可用于检测和修复遗留UI中的问题,使用增强的布局行为扩展UI,并支持创建灵活的UI布局。
2022-02-23 cs.AI cs.HC cs.PL
Open Data: Reverse Engineering and Maintenance Perspective
开放数据是一种共享大型和多样化数据集的新兴模式-主要来自政府机构,但也来自其他组织-其目标是使数据能够用于社会,学术和商业收益。现在已经有许多数据集在大小、编码和结构方面具有不同的特征。这些数据集通常以特定的方式创建和维护。因此,开放数据提出了许多挑战,有必要为有效的工具和技术来管理和维护it. In本文中,我们认为,软件维护和逆向工程有机会有助于开放数据,并塑造其未来的发展。从逆向工程研究的角度来看,开放数据是一种新的工件,作为逆向工程技术和过程的输入。开放数据的具体挑战是文档抓取、图像处理和结构/模式识别。从维护研究的角度来看,维护必须适应第三方提供商对开放数据源的更改、数据转换管道的可追溯性以及数据和转换的质量保证。我们相信,开放数据的重要性日益增加,它带来的研究挑战可能会导致新的研究流的出现,为逆向工程以及维护。
2012-02-08 cs.DL cs.IR cs.SE
Multi-modal Learning for WebAssembly Reverse Engineering
University of California at San Diego(加利福尼亚大学圣迭戈分校)
提出首个多模态预训练模型 WasmRev,利用源代码、文档与编译后 Wasm 的自监督学习,少样本微调即可提升类型恢复等逆向任务性能。
2024-04-04 cs.LG cs.PL cs.SE
LLM Agent-Assisted Reverse Engineering with Quantitative Readability Metrics
University of Cambridge(剑桥大学)
提出定量可读性分数(QRS)框架,结合结构相似性门控与三个可读性子指标,指导 LLM 代理提升反编译代码可读性,同时保持功能正确性。
2026-06-05 cs.AI cs.SE
Pop Quiz! Can a Large Language Model Help With Reverse Engineering?
New York University(纽约大学);University of Calgary(卡尔加里大学)
大语言模型(如OpenAI的Codex)在软件领域已经展示了令人印象深刻的zero-shot多任务能力,包括代码解释。在这项工作中,我们研究,如果这种能力可以用来帮助逆向工程。具体来说,我们调查促使Codex从代码中识别目的,功能和重要的变量名称或值,即使代码是通过反编译产生的。除了在回答开放式问题的模型的反应检查,我们设计了一个真/假测验框架来表征性能的语言模型。我们对语言模型在一组程序目的识别和信息抽取任务上的测量性能进行了广泛的定量分析:在我们提出的136,260个问题中,它正确回答了72,754个。一个关键的外卖是,虽然有前途,LLMs还没有准备好zero-shot逆向工程。
2022-02-02 cs.CR cs.LG cs.SE
Large Language Models as Visualization Agents for Immersive Binary Reverse Engineering
本文提出将大型语言模型集成到沉浸式VR逆向工程平台中,作为可视化智能体动态生成3D调用图,并通过初步研究验证其可行性及输出质量的不稳定性。
2025-08-19 cs.HC cs.SE
From Code to Requirements: Agentic Reverse Engineering of Business Rules at Enterprise Scale
Cognizant(高知特)
本文提出一个七智能体协作框架,通过逆向工程企业软件自动生成业务需求文档,在九分钟内完成每项服务,成本降低超过98%。
2026-09-22 cs.AI cs.SE
Decompiling Rust: An Empirical Study of Compiler Optimizations and Reverse Engineering Challenges
本文通过基准驱动评估与自动化评分框架,量化分析 Rust 核心特性及构建模式对反编译质量的影响,并结合案例揭示泛型、trait 和错误处理带来的逆向挑战。
2025-07-24 cs.PL cs.SE
Reverse Engineering User Stories from Code using Large Language Models
Queen's University(皇后大学)
本研究探讨了利用大型语言模型从代码中自动逆向生成用户故事,发现提示设计显著影响效果,且小模型在少量示例下可媲美大模型。
2025-09-23 cs.AI cs.SE
On the Reverse Engineering of the Citadel Botnet
Citadel是一种针对金融信息的高级信息窃取恶意软件。这种恶意软件对个人和商业数据的机密性和完整性构成了真正的威胁。联邦调查局和微软数字犯罪部门最近进行了一次联合行动,以摧毁Citadel的指挥和控制服务器。这次行动对僵尸网络造成了一些破坏,但并没有完全阻止它。由于Citadel恶意软件的复杂结构和先进的反逆向工程技术,Citadel恶意软件分析过程既具有挑战性又耗时。这使得网络犯罪分子可以在分析仍在进行的同时继续攻击。在本文中,我们将介绍Citadel逆向工程的结果,并提供对恶意软件的功能、内部工作原理和开源组件的进一步了解。为了加快逆向工程的进程,我们提出了一个基于克隆的分析方法。Citadel是以前分析过的名为Zeus的恶意软件的后代;因此,使用前者作为参考,我们可以测量和量化新变体的相似性和差异性。该方法提供了两种类型的代码分析技术,即汇编源代码匹配和二进制克隆检测。该方法可以帮助减少需要手动分析的功能的数量。分析结果表明,该方法在Citadel恶意软件分析中具有良好的应用前景。此外,相同的方法适用于类似的恶意软件分析场景。
2014-06-21 cs.CR cs.NI cs.OS
IReEn: Reverse-Engineering of Black-Box Functions via Iterative Neural Program Synthesis
CISPA Helmholtz Center for Information Security(CISPA亥姆霍兹信息安全研究中心);DeepMind(深度思维)
在这项工作中,我们调查的问题,揭示了一个黑盒代理的功能。值得注意的是,我们感兴趣的是这种代理的行为的可解释性和形式化描述。理想情况下,这种描述将采用用高级语言编写的程序的形式。这项任务也被称为逆向工程,在软件工程、计算机安全以及最近的可解释性中起着关键作用。与以前的工作相比,我们不依赖于黑盒子上的特权信息,而是在一个较弱的假设下调查问题,即只访问程序的输入和输出。我们通过迭代地改进候选集使用生成神经程序合成方法,直到我们到达一个功能等效的程序来解决这个问题。我们评估我们的方法在卡雷尔数据集上的性能。我们的研究结果表明,所提出的方法在78%的情况下找到了近似功能等效的程序,从而在这一挑战上优于最先进的方法-甚至超过了先前在黑盒上具有特权信息的工作。
2021-09-23 cs.AI cs.LG cs.PL