TraceRAG: A LLM-Based Framework for Explainable Android Malware Detection and Behavior Analysis
TraceRAG利用检索增强生成连接自然语言与Java代码,实现可解释的安卓恶意软件检测,达到96%检测准确率和83.81%行为识别准确率。
2025-09-10 cs.SE
Anchor: Locating Android Framework-specific Crashing Faults
Android框架特定的应用程序崩溃很难调试。事实上,Android基于回调的事件驱动机制挑战了为传统Java程序开发的崩溃本地化技术。关键的挑战源于这样一个事实,即错误代码的位置甚至可能没有在堆栈跟踪中列出。例如,我们对来自一个开放基准测试的500个特定于框架的崩溃进行了实证研究,发现37%的崩溃类型与堆栈跟踪之外的错误有关。此外,Android程序是代码和额外代码工件(如Manifest文件)的混合体。任何工件都可能导致应用程序执行失败,这一事实导致需要将本地化目标定位在代码领域之外。在本文中,我们提出了锚,一个两阶段的可疑错误定位建议工具。Anchor专门用于在堆栈跟踪之外查找导致崩溃的错误。Anchor是轻量级的,并且与源代码无关,因为它只需要崩溃消息和apk文件来定位故障。通过交叉验证和野外数据集评估收集的实验结果表明,Anchor在定位Android框架特定的崩溃故障方面是有效的。
2020-08-04 cs.SE
ASTANA: Practical String Deobfuscation for Android Applications Using Program Slicing
Android开发人员广泛使用软件混淆来保护其应用程序的源代码免受对抗性逆向工程的影响。一种特定类型的混淆,字符串混淆,将源代码中所有字符串文字的内容转换为不可解释的文本,并插入逻辑以在运行时对这些字符串文字进行去混淆。在这项工作中,我们证明了字符串混淆是很容易可逆的。我们提出ASTANA,Android应用程序的实用工具,以恢复人类可读的内容从混淆字符串字面量。ASTANA对混淆逻辑或应用程序结构做了最少的假设。关键思想是为特定(模糊)字符串字面量执行去模糊逻辑,这会产生原始字符串值。为了获得相关的去混淆逻辑,我们提出了一个轻量级的乐观算法,基于程序切片技术。通过对100个流行的真实金融应用的实验评估,我们证明了ASTANA的实用性。我们验证了我们的去混淆工具的正确性,并提供了由开发人员评估的Android应用程序的字符串混淆器的行为的见解。
2021-04-06 cs.CR cs.SE
Leveraging Unsupervised Learning to Summarize APIs Discussed in Stack Overflow
Carleton University(卡尔顿大学)
自动源代码摘要是一项任务,它生成有关方法和类的目的、用法和/或实现的摘要信息,以支持对这些代码实体的理解。针对代码摘要中的监督学习和无监督学习,已经提出了多种方法和技术,然而,它们大多集中于为一段代码生成摘要。此外,很少有作品利用非官方文档。本文提出了一种自动和新颖的方法来总结堆栈溢出中讨论的Android API方法,我们认为这是本研究中的非官方文档。我们的方法将API方法的名称作为输入,并基于该API方法的Stack Overflow讨论生成一个自然语言摘要。我们对16位Android开发人员进行了一项调查,以评估我们自动生成的摘要的质量,并将其与官方Android文档进行比较。我们的研究结果表明,虽然开发人员发现官方文档更有用的一般,生成的摘要也有竞争力,特别是提供实施细节,并可以用作指导开发人员在软件开发和维护任务的补充来源。
2021-11-27 cs.LG cs.SE
ReuNify: A Step Towards Whole Program Analysis for React Native Android Apps
针对 React Native 应用分析不完整的问题,提出原型工具 REUNIFY,将 JavaScript 与原生端代码集成至 Soot 框架的中间语言,显著提升了静态分析覆盖率、调用图节点数及隐私泄露检测能力。
2023-09-07 cs.SE
Generating Code Summaries Using the Power of the Crowd
执行大多数软件维护活动(如更新功能或修复错误)的第一步是对程序的源代码有相对较好的理解,这些代码通常由其他开发人员编写。代码摘要是关于程序实体的描述(例如,它的方法),这有助于开发人员在更短的时间内更好地理解代码。然而,生成代码摘要可能是一项具有挑战性的任务。为了缓解这个问题,在本文中,我们介绍了CrowdSummarizer,这是一个代码摘要平台,它受益于众包、游戏化和自然语言处理的概念,可以自动为Java程序的方法生成高级摘要。我们已经实现了CrowdSummarizer作为Eclipse插件,以及一个基于Web的代码摘要游戏,可以由人群玩。两个实证研究,评估方法的适用性和生成的摘要的质量的结果表明,CrowdSummarizer是有效的生成质量的结果。
2016-12-12 cs.SE
Concolic Unbounded-Thread Reachability via Loop Summaries (Extended Technical Report)
我们提出了一种方法,用于加速显式状态向后搜索算法的任意多个有限状态线程的系统。我们的方法静态地分析程序执行的线程的存在简单的循环。我们展示了如何这样的循环可以被折叠而不近似Presburger算术约束,象征性地总结了沿循环中的多线程程序执行向后搜索算法的效果。因此,随后的显式状态搜索不需要探索状态空间的汇总部分。具体的和象征性的探索相结合,使我们的算法concolic风味。我们证明了这种方法的力量,证明和反驳的安全性无限线程程序。
2016-07-27 cs.SE
An Empirical Study on Quality of Android Applications written in Kotlin language
内容:在过去的几年中,移动应用程序的开发人员有可能使用新的范例和工具来开发移动应用程序。例如,自2017年以来,Android开发人员可以使用Kotlin语言编写Android应用程序。Kotlin是一种与Java完全互操作的程序设计语言,它结合了面向对象和函数特性。目的:本文的目的是双重的。首先,它旨在研究Kotlin语言在开源Android应用程序开发中的采用程度,并衡量Android应用程序中的Kotlin代码量。其次,它旨在衡量使用Kotlin编写的Android应用程序的质量,并将其与使用Java编写的Android应用程序的质量进行比较。方法:我们首先定义了一种从开源Android应用程序数据集中检测Kotlin应用程序的方法。然后,我们分析这些应用程序来检测代码气味的实例,并计算应用程序的质量估计。最后,我们研究了Kotlin代码的引入如何影响Android应用程序的质量。结果如下:我们的实验发现,在一个包含2,167个开源应用程序的数据集中,有11.26%的应用程序是(部分或全部)使用Kotlin语言编写的。我们发现,Kotlin代码的引入提高了大多数最初用Java编写的Android应用程序的质量(就代码气味的存在而言)。
2019-07-18 cs.SE
Automatically Extracting Subroutine Summary Descriptions from Unstructured Comments
子程序的概要描述是用自然语言对程序中子程序的行为和目的的简短(通常是一句话)解释。这些摘要在文档中无处不在,许多工具(如JavaScriptTM和Doxygen)都围绕它们生成文档。然而,从非结构化的源代码存储库中提取摘要仍然是一个困难的研究问题--除非程序员对摘要进行注释,否则很难生成干净的结构化文档。这在遗留代码的大型存储库中成为一个问题,因为在几十个或几百个旧程序中追溯注释摘要的成本太高。同样,这对于自动文档生成算法的创建者来说也是一个问题,因为这些算法通常必须从大型带注释的数据集学习,而这些数据集对于许多程序设计语言来说并不存在。在本文中,我们提出了一种通过众包的半自动化方法和一种全自动化方法,用于从非结构化代码注释中注释摘要。我们目前的实验验证的方法,并提供建议和自动标注大型存储库的成本估计。
2019-12-21 cs.SE
Target Directed Event Sequence Generation for Android Applications
测试是保证软件质量的常用方法,其中基于模型的测试是测试Android应用程序等GUI程序的热门话题。现有的方法主要是动态地构建一个只包含GUI信息的模型,或者从代码的角度构建一个模型,而这个模型可能无法描述GUI控件在运行时的变化。此外,这些模型中的大多数不支持回栈,这是Android的一种特殊机制。因此,本文提出了一个模型LATTE,动态构造考虑的视图信息的窗口部件以及回栈,来描述GUI窗口部件之间的过渡。我们还提出了一个标签集链接的LATTE模型的元素程序片段。用户可以定义标签集的一个子集作为测试需求的目标,这些测试需求需要覆盖代码的某些特定部分。为了避免模型构建过程中的状态爆炸问题,我们引入了状态相似度的定义来平衡模型的精度和分析成本。基于该模型,提出了一种目标导向测试生成方法,生成事件序列以有效覆盖目标。在几个真实应用上的实验表明,基于LATTE生成的测试用例可以达到较高的覆盖率,并且利用该模型可以生成覆盖给定目标的短事件序列的事件序列。
2017-08-23 cs.SE
Columbus: Android App Testing Through Systematic Callback Exploration
随着Android移动设备的不断普及,应用程序的自动化测试变得比以往任何时候都更加重要。Android应用程序是事件驱动的程序。不幸的是,通过与应用程序的界面交互来生成所有可能类型的事件对于自动化测试方法来说是一个挑战。回调驱动的测试通过直接调用应用回调消除了事件生成的需要。然而,现有的回调驱动测试技术假设Android回调的先验知识,并且它们依赖于熟悉Android API的人类专家来编写在调用之前准备回调参数的存根代码。由于Android API庞大且不断发展,现有技术只能支持Android框架中存在的一小部分回调。在这项工作中,我们介绍了Columbus,一种回调驱动的测试技术,它采用两种策略来消除对人类参与的需求:(i)它通过同时分析Android框架和测试中的应用程序来自动识别回调,以及(ii)它使用了一种组合,(原始参数)和类型引导的动态堆内省(对象参数)来生成有效的输入。最后,Columbus在测试过程中集成了两种新的反馈机制--数据依赖和崩溃指导,以增加触发崩溃的可能性,并最大限度地提高覆盖率。在我们的评估中,Columbus在崩溃和覆盖率方面都优于最先进的模型驱动、基于检查点和回调驱动的测试工具。
2023-02-17 cs.SE
Which Code Statements Implement Privacy Behaviors in Android Applications?
本研究通过实证分析确定了Android代码中与隐私行为最相关的语句类型,并提出了一种基于微调三个大型语言模型的自动检测方法,其与人工判断的一致性达到或超过人工间一致性水平。
2025-03-03 cs.SE
Programmer Visual Attention During Context-Aware Code Summarization
本研究通过眼动追踪实验,发现程序员在上下文感知代码摘要中注意力随经验减少,且存在最优阅读量,为改进自动摘要提供依据。
2025-03-26 cs.SE
When Program Analysis Meets Bytecode Search: Targeted and Efficient Inter-procedural Analysis of Modern Android Apps in BackDroid
广泛使用的Android静态程序分析工具,例如,Amandroid和FlowDroid执行整个应用程序的过程间分析,这是全面的,但从根本上难以处理现代(大型)应用程序。应用程序的平均大小在五年内增加了三到四倍。在本文中,我们探索了一种新的范式,有针对性的过程间分析,可以跳过不相关的代码,只关注安全敏感的汇API的流。为此,我们提出了一种称为动态字节码搜索的技术,该技术在需要定位调用者时及时搜索反汇编的应用程序字节码文本。通过这种方式,它逐步引导有针对性的(和向后的)过程间分析,直到到达入口点,而不依赖于整个应用程序图。然而,由于Java多态性、回调、异步流、静态初始化器和Android应用程序中的组件间通信,这种基于搜索的过程间分析具有挑战性。我们克服了这些独特的障碍,在我们的上下文中,提出了一套字节码搜索机制,利用灵活的搜索和前向对象污点分析。在这种新的过程间分析之上,我们进一步调整了传统的向后切片和向前常数传播,以提供对sink API调用的完整的跟踪。我们已经实现了一个名为BackDroid的原型,并将其与Amandroid进行了比较,分析了3,178个现代流行应用程序的加密和SSL错误配置。评估显示,对于此类基于sink的问题,BackDroid的速度快了37倍(2.13 vs. 78.15分钟),并且没有超时故障(v.s. Amandroid中为35%),同时保持接近甚至…
2020-05-23 cs.CR cs.SE
Many a Little Makes a Mickle: A Code-Centric Empirical Study of Data Minimization Principle in Android App Development
Australian National University(澳大利亚国立大学);CSIRO(联邦科学与工业研究组织);CSIRO’s Data61(联邦科学与工业研究组织数据61)
通过对1114个开源Android应用的实证研究,识别出五个数据处理阶段中的十种数据最小化场景,并基于9875个真实APK的大规模分析提炼出31条可操作的编码指南,同时发现LLM生成的代码会重现数据最小化风险实践,而纳入指南可消除这些问题。
2026-06-01 cs.SE
Concurrency-related Flaky Test Detection in Android apps
通过测试验证Android应用程序是困难的,因为存在测试。由于不确定的执行环境,一系列事件(测试)可能以不可预测的方式导致成功或失败。在这项工作中,我们提出了一种方法和工具FlakeShovel通过系统的探索事件顺序检测的测试。我们的主要观察是,对于移动应用程序中的测试,有一个测试框架线程创建测试事件,一个主用户界面(UI)线程处理这些事件,可能还有几个其他后台线程异步运行。对于任何事件e,其执行涉及潜在的非确定性,我们定位e必须发生的最早(最晚)事件之后(之前)。然后,我们有效地探索上/下限事件之间的时间表,同时将事件分组在单个语句中,以确定测试结果是否是错误的。我们还创建了一套名为DroidFlaker的主题程序来研究Android应用程序中的重复测试。我们在主题套件DroidFlaker上的实验证明了我们的测试检测的有效性。我们的工作是对现有的测试检测工具的补充,比如Deflaker,它只检查失败的测试。FlakeShovel可以在通过的测试中检测到重复测试,正如我们的方法和实验所示。
2021-05-21 cs.SE
Healing Data Loss Problems in Android Apps
Android应用程序应该设计为应对停止-启动事件,这些事件需要停止和恢复应用程序的执行,同时保持其状态不变。这些事件可能是由运行时配置更改(如屏幕旋转)和上下文切换(如从一个应用切换到另一个应用)引起的。当发生stop-start事件时,Android会保存应用的状态,处理事件,并最终恢复保存的状态。为了让Android正确保存和恢复状态,应用必须提供相应的支持。不幸的是,Android开发人员经常错误地实现这种支持,或者根本没有实现它。这种糟糕的做法使应用程序对停止-启动事件做出错误的反应,从而产生我们定义的数据丢失问题,即丢失用户数据的Android应用程序,由于程序变量丢失其值而导致意外行为和崩溃。数据丢失问题很难检测,因为只有当应用程序处于特定状态并具有特定输入时才可能观察到数据丢失问题。覆盖所有可能的测试用例可能需要大量的测试用例,这些测试用例的执行必须手动检查,以发现在每个停止-启动事件之后,测试中的应用程序是否已正确恢复。因此,重要的是要补充传统的内部测试活动与机制,可以保护应用程序,一旦在现场发生数据丢失问题。在本文中,我们提出了DataLossHealer,一种自动识别和修复数据丢失问题的技术,一旦发生在现场。DataLossHealer是一种在运行时检查状态是否正确恢复的技术,并在需要时修复应用程序。DataLossHealer可以从经验中学习,逐步减少引入的…
2017-01-19 cs.SE
Call Graph Soundness in Android Static Analysis
本研究针对Android静态分析中调用图不可靠的问题,对1000个应用测试13款静态工具与动态分析,首次量化遗漏情况,发现框架依赖、高精度追求等多因素导致可靠性不足,现有方法均难有效改善。
2024-07-10 cs.SE
Security Code Smells in Android ICC
Android组件间通信(ICC)非常复杂,在很大程度上不受约束,开发人员很难理解。因此,ICC是Android应用程序中安全漏洞的常见来源。为了促进安全编程实践,我们回顾了相关研究,并确定了Android设备中可避免的ICC漏洞以及指示其存在的安全代码气味。我们解释了漏洞及其相应的气味,并讨论了如何在开发过程中消除或减轻它们。我们在Android Lint之上提供了一个轻量级的静态分析工具,它可以分析开发中的代码,并在IDE中提供有关代码中是否存在此类气味的即时反馈。此外,在这个工具的帮助下,我们研究了700多个开源应用程序中安全代码气味的流行程度,并手动检查了大约15%的应用程序,以评估识别这些气味发现ICC安全漏洞的程度。
2018-12-10 cs.CR cs.SE
Static Analysis for Android GDPR Compliance Assurance
许多Android应用程序收集用户的数据。当他们这样做时,他们必须根据当前的法律框架保护这些收集的数据。自欧盟推出《通用数据保护条例》(GDPR)以来,这种数据保护变得更加重要。应用程序开发人员在整个应用程序开发过程中对数据保护的推理工具支持有限。虽然许多Android应用程序都声明了隐私策略,但隐私策略合规性检查目前是手动的,成本高昂,并且容易出错。隐私审计的主要挑战之一是法律隐私声明(英文文本)与Android应用程序用于保护用户隐私的技术措施之间存在巨大差距。在这篇论文中,我们将探讨在多大程度上我们可以使用静态分析来回答有关数据保护的重要问题。我们的主要目标是设计一种基于工具的方法,帮助应用程序开发人员和审计人员确保基于自动静态程序分析的Android应用程序中的数据保护。
2023-03-16 cs.CR cs.SE
Symmaries: Automatic Inference of Formal Security Summaries for Java Programs
Newcastle University(纽卡斯尔大学);OcamlPro;University of Liverpool(利物浦大学)
Symmaries通过自动化生成Java程序的安全摘要,提升静态分析工具的精度和可扩展性。
2025-12-23 cs.CR cs.FL cs.PL
Improving the Reliability of Mobility Applications
Android平台是Google在2008年推出的,作为移动设备的操作系统。Android的SDK为编程提供了广泛的支持,并提供了大量的示例和文档。可靠性是智能电话应用程序越来越关注的问题,因为它们通常具有个人信息和数据。因此,需要用于检查应用程序的正确行为的技术和工具。本文展示了如何使用Event-B方法来推理和验证Android应用程序的设计,以及如何使用该方法来记录实现决策。我们的方法包括在事件B中建模的应用程序的核心功能,并使用所产生的证据证明义务的原因的设计和实现的app. Although我们没有提出一种新颖的方法,我们证明,重量级的形式化方法(FM)技术与事件B可以有效地用于支持正确的Android应用程序的开发。我们提出了一个案例研究,其中我们在Event-B中设计了WhatsApp的核心功能,我们将其编码为三个机器改进模型的基本功能(聊天,删除内容,转发内容,删除聊天会话等),聊天会话的已读和未读状态,以及实现细节。我们报告和讨论的核心功能的设计和实施的基本挑战。
2018-06-09 cs.SE
Improved Automatic Summarization of Subroutines via Attention to File Context
软件文档主要由软件中子程序的简短的、自然语言摘要组成。这些摘要可以帮助程序员快速理解子例程的功能,而无需亲自阅读源代码。编写这些描述的任务被称为“源代码摘要”,并且已经成为多年的研究目标。最近,基于人工智能的方法已经取代了旧的基于人工智能的方法。然而,到目前为止,这些基于人工智能的方法假设预测摘要所需的所有内容都在子例程本身内部。这个假设限制了性能,因为许多子程序没有上下文就无法理解。在本文中,我们提出了一种方法,模型的文件上下文的子程序(即在同一个文件中的其他子程序),并使用一个注意力机制,以找到单词和概念使用的摘要。我们在一个实验中表明,我们的方法扩展和改进了几个最近的基线。
2020-04-10 cs.SE
Leveraging Program Analysis to Reduce User-Perceived Latency in Mobile Applications
降低移动应用中的网络延迟是改善移动用户体验的有效途径,具有切实的经济效益。本文介绍了PALOMA,一种新的以客户端为中心的技术,通过在Android应用程序中预取HTTP请求来减少网络延迟。我们的工作利用字符串分析和回调控制流分析,使用PALOMA严格的方案制定来自动检测应用程序,这些方案解决了预取“什么”和“什么时候”的问题。PALOMA已经被证明可以节省大量的运行时间(每个可预取的HTTP请求节省几百毫秒),无论是在我们开发的可重用评估基准上还是在实际应用中
2018-10-20 cs.SE
A Large Scale Analysis of Android-Web Hybridization
许多Android应用程序通过WebView组件嵌入网页,并在Android中执行JavaScript代码。混合应用程序利用专用API加载资源并在WebView中呈现。此外,Android对象可以与JavaScript世界共享。然而,桥接Android和JavaScript世界的接口也可能招致严重的安全威胁:潜在不受信任的网页及其JavaScript可能会干扰Android环境及其对本地功能的访问。目前还没有一般性的分析来评估这种连接两个世界的混合应用程序的影响。为了理解混合应用程序的语义和效果,我们对混合API的使用进行了大规模的研究。我们分析并分类了7,500个随机选择的混合API的参数和196个来自Google Play商店的最流行的应用程序以及1000个恶意软件样本。我们的研究结果促进了对混合应用程序的普遍理解,以及对潜在程序分析和当前安全状况的影响:我们发现了数千个从Android到JavaScript的敏感数据流,其中绝大多数可能流向潜在的不可信代码。我们的分析确定了许多网页嵌入漏洞,我们示范性地利用了这些漏洞。此外,我们发现了大量的应用程序,其中潜在的不受信任的JavaScript代码可能会干扰(受信任的)Android对象,无论是在良性还是恶性应用程序中。
2020-08-05 cs.CR cs.PL cs.SE
Towards Leveraging Large Language Model Summaries for Topic Modeling in Source Code
Dept. of Informatics, Systems and Communication, University of Milano-Bicocca(信息与通信系统系,米兰-比科卡大学);Dept. of Human and Social Sciences, University of Bergamo(人文与社会科学系,贝拉戈莫大学)
本文提出一种结合大语言模型摘要与主题建模的新方法,用于自动识别Python代码中的主题,实验表明该方法能提供可解释且语义丰富的代码结构表示,可应用于多种软件工程任务。
2025-04-24 cs.AI cs.SE
A Topic Guided Pointer-Generator Model for Generating Natural Language Code Summaries
代码摘要是生成源代码的自然语言描述的任务,对程序理解和维护具有重要意义。现有方法将该任务视为机器翻译问题(例如,从Java到英语),并应用神经机器翻译模型来解决这个问题。这些方法仅考虑给定的代码单元(例如,一种方法)而没有其更广泛的上下文。上下文的缺乏可能会阻碍NMT模型收集足够的信息用于代码摘要。此外,现有的方法使用固定的词汇表,并且没有充分考虑代码中的单词,而代码摘要中的许多单词可能来自代码。在这项工作中,我们提出了一个名为ToPNN的神经网络模型用于代码摘要,它在更广泛的背景下使用主题(例如,类)来指导神经网络,该神经网络将新词的生成与代码中现有单词的复制相结合。基于该模型,我们提出了一种在方法级生成自然语言代码摘要的方法(即,方法注释)。我们使用一个包含4,203,565个注释Java方法的数据集来评估我们的方法。结果表明,国家的最先进的方法显着改善,并确认类主题和复制机制的积极影响。
2021-07-04 cs.SE
A3Ident: A Two-phased Approach to Identify the Leading Authors of Android Apps
作者身份识别是通过给定的代码对作者进行识别和分类的过程。作者身份识别可用于广泛的软件领域,例如,代码作者争议、剽窃检测、攻击者身份曝光。除了传统软件开发带来的固有挑战外,Android中的框架编程和众包模式也大大增加了作者身份识别的难度。更具体地说,广泛的第三方库和继承的组件(例如,类、方法和变量)稀释了整个Android应用程序中的主要代码,模糊了不同作者编写的代码的界限。然而,以前的研究并没有很好地解决这些挑战。为此,我们设计了一个两阶段的方法来将Android应用程序的主要代码归因于特定的开发人员。在第一阶段,我们提出了三种策略来识别应用程序中Java包之间的关系,包括上下文关系、语义关系和结构关系。一个软件包聚合算法的开发,集群的所有软件包是由相同的作者写的概率高。在第二阶段,我们开发了三种类型的功能来捕捉作者的编码习惯和代码风格。在此基础上,我们从开发的Android应用程序中为作者生成指纹,并采用几种机器学习算法进行作者身份分类。我们在三个数据集中评估了我们的方法,这些数据集包含来自257个不同开发人员的15,666个应用程序,平均准确率达到92.5%。此外,我们在2,900个混淆的应用程序上进行了测试,我们的方法可以以80.4%的准确率对应用程序进行分类。
2020-08-31 cs.CR cs.SE
Recovering Fine-Grained Code Change Rationale from Multiple Software Artifacts
William & Mary(威廉与玛丽学院)
本文研究如何从多个文档中提取代码变更理由,提出ARGUS方法,通过LLM生成简洁的变更理由摘要,提升代码理解和维护效率。
2026-07-31 cs.SE
Using Mutation-Analysis to Examine an LLM's Ability to Summarize Code
University of Waterloo(滑铁卢大学);Carnegie Mellon University(卡内基梅隆大学)
提出基于变异分析的评估方法,通过注入代码突变并检查摘要是否更新,测试LLM摘要是否反映实际行为;实验表明摘要准确率随复杂度下降,模型常描述意图而非行为。
2026-06-29 cs.SE
Context-aware Code Summary Generation
针对现有LLM代码摘要仅关注局部代码、缺少函数存在原因及全局上下文作用的问题,提出含上下文的代码摘要方法,通过两步训练3.5亿参数本地模型,性能优于GPT-4。
2024-08-16 cs.SE
ETF: An Entity Tracing Framework for Hallucination Detection in Code Summaries
Indian Institute of Technology Bombay(印度理工学院班加罗尔分校);IBM Research India(IBM印度研究院);University of Texas at Austin(德克萨斯大学奥斯汀分校)
针对代码摘要中的幻觉问题,本文提出实体追踪框架ETF,结合静态分析与LLM验证,在约1万样本的CodeSumEval数据集上取得73%的F1分数,实现幻觉检测与错误定位。
2025-09-06 cs.AI cs.CL cs.SE
Action Word Prediction for Neural Source Code Summarization
源代码摘要是创建源代码的简短、自然语言描述的任务。代码摘要是许多软件文档(如JavaBean)的主干,其中非常简短的注释(如“添加客户对象”)可以帮助程序员快速理解代码片段。近年来,基于神经网络的代码自动摘要方法得到了迅速的发展,成为一个很有价值的研究目标。然而,正如我们将在本文中展示的那样,好的摘要的产生依赖于这些摘要中的动作词的产生:如果“删除”被替换为“添加”,则上述示例的含义将完全改变。“在本文中,我们主张特别强调动作词预测,将其作为实现更好代码摘要的重要垫脚石问题-当前技术试图预测动作词以及整个摘要,但动作词预测本身相当困难。我们展示了代码摘要问题的价值,探索了当前基线的性能,并为未来的研究提供了建议。
2021-01-07 cs.SE
Semantic Similarity Metrics for Evaluating Source Code Summarization
源代码摘要涉及用自然语言创建源代码的简要描述。这些描述是软件文档的关键组成部分,例如JavaBean。自动代码摘要是软件工程研究的一个重要目标,这是由于摘要对程序员具有很高的价值,同时手工编写和维护文档的成本很高。目前的工作几乎都是基于通过大数据输入训练的机器模型。代码的示例和该代码的概要的大数据集被用于训练例如编码器-解码器神经模型。然后,根据一组参考摘要评估模型的输出预测。输入是模型看不到的代码,预测与参考进行比较。将预测与参考进行比较的方法基本上是通过BLEU或ROUGE等度量计算的单词重叠。使用单词重叠的问题是,不是一个句子中的所有单词都具有相同的重要性,并且许多单词都有同义词。结果是计算的相似性可能与人类读者感知的相似性不匹配。在本文中,我们进行了一项实验,以衡量各种词重叠指标与预测和参考摘要的人类评级相似性的程度。我们评估替代品的语义相似性度量的基础上,目前的工作,并提出建议,评估源代码摘要。
2022-04-04 cs.SE
FlowArk: Boosting Agentic Data-flow Analysis for Android Apps via Context-Aware Knowledge Reuse
Sun Yat-sen University(中山大学)
研究安卓应用数据流分析中批量任务重复分析成本高的问题,提出FlowArk系统,通过提炼、打包和注入知识条目降低成本,实验表明其在保持分析质量的同时,能降低API成本并增加任务完成量。
2026-07-14 cs.CR cs.SE
Summarization Programs: Interpretable Abstractive Summarization with Neural Modular Trees
University of North Carolina at Chapel Hill(北卡罗来纳大学教堂山分校)
当前的抽象摘要模型要么缺乏清晰的可解释性,要么只突出显示源文档的一部分,从而提供不完整的基本原理。为此,我们提出了总结程序(SP),一个可解释的模块化框架,包括一个(有序)的二叉树列表,每个编码的一步一步的生成过程中的一个抽象的摘要句子从源文件。摘要程序包含每个摘要句子的一个根结点,并且不同的树将每个摘要句子(根结点)连接到从其导出的文档句子(叶节点),其中连接节点包含中间生成的句子。边表示在摘要中涉及的不同模块化操作,例如句子融合、压缩和释义。我们首先提出了一个有效的最佳优先搜索方法,在神经模块,SP-Search,识别SP的人类摘要直接优化ROUGE分数。接下来,使用这些程序作为自动监督,我们提出了seq 2seq模型,生成摘要程序,然后执行这些程序以获得最终摘要。我们证明,SP-Search有效地代表了人类总结背后的生成过程,使用通常忠实于其预期行为的模块。我们还进行了模拟研究,以表明摘要程序提高了摘要模型的可解释性,允许人类更好地模拟模型推理。摘要程序是迈向可解释和模块化抽象摘要的有希望的一步,这是一项复杂的任务,以前主要通过黑盒端到端神经系统来解决。支持代码可在https://github.com/swarnaHub/SummarizationPrograms上获得
2023-02-02 cs.AI cs.CL cs.LG
Exploiting ML algorithms for Efficient Detection and Prevention of JavaScript-XSS Attacks in Android Based Hybrid Applications
多年来,移动应用程序的安全性开发和分析已成为一个活跃的研究领域,因为许多应用程序容易受到不同的攻击。特别是在过去三年中出现了混合应用程序的概念,其中应用程序以本地语言和Web语言开发,因为Web语言的使用在混合移动应用程序中增加了某些安全风险,因为它创建了可能的渠道,恶意代码可以被注入应用程序中。WebView是混合移动应用程序中的重要组件,用于实现沙箱机制,以保护智能手机设备的本地资源免受未经授权的JavaScript访问。然而,WebView应用程序编程接口(API)也存在安全问题。例如,攻击者可以通过访问应用程序的公共方法绕过沙箱安全性来经由JavaScript代码攻击混合应用程序。跨站脚本(XSS)是一种最流行的恶意代码注入技术,用于通过JavaScript访问应用程序的公共方法。这项研究提出了一个框架,在混合应用程序中使用最先进的机器学习(ML)算法检测和预防XSS攻击。攻击的检测已经通过利用注册的Java对象功能来执行。数据集和示例混合应用程序是使用android studio开发的。然后使用了目前广泛使用的工具RapidMiner进行实证分析。实验结果表明,基于集成的随机森林算法的性能优于其他算法,准确率和F-测度均高达99%。
2020-07-30 cs.CR cs.SE
Trimming Mobile Applications for Bandwidth-Challenged Networks in Developing Regions
尽管不断努力建设和更新网络基础设施,但发展中区域的移动设备继续受到有限带宽的限制。不幸的是,这与移动应用程序规模空前增长的时期相吻合。因此,对于发展中地区的用户来说,下载和更新对其经济和教育发展至关重要的移动应用程序的费用变得过于昂贵。如果不加遏制,这些趋势可能会进一步加剧巨大且不断扩大的全球数字鸿沟。我们的目标是更好地了解移动应用程序代码大小快速增长的原因,无论它是否反映了新功能,并确定可以采取的步骤,使现有的移动应用程序更友好的带宽受限的移动网络。我们假设,移动应用程序的这种增长在很大程度上是由于资源/代码管理不善,并没有反映出功能的成比例增长。我们的假设得到了小程序的部分验证,这些小程序是在中国移动网络中越来越受欢迎的极小足迹的应用程序。在这里,我们使用功能等效的迷你程序和Android应用程序对来识别潜在的“膨胀”来源,即导致大型包大小的代码或资源的低效使用。我们分析了大量流行的Android应用程序样本,并量化了代码和资源膨胀的实例。我们开发了自动化代码和资源修剪技术,并在大量Android应用程序上成功验证了这些技术。我们希望我们的研究结果将导致继续努力简化移动应用程序,使发展中地区的用户更容易访问和维护它们。
2019-12-08 cs.SE cs.SY eess.SY
Leveraging Deep Learning for Abstractive Code Summarization of Unofficial Documentation
Ecole de Technologie Superieure(高等技术学院);Carleton University(卡尔顿大学)
本文提出利用 BART 深度学习模型为 StackOverflow 非官方文档中的 API 生成高质量代码摘要,并通过 ROUGE 和 BLEU 评估证明其在精确率、召回率和 F-measure 上分别平均超越此前工作 57%、66% 和 61%,且速度快 4.4 倍。
2023-12-03 cs.LG cs.SE