首页 > 最新文献

2011 18th Working Conference on Reverse Engineering最新文献

英文 中文
Recovering Test-to-Code Traceability Via Slicing and Conceptual Coupling 通过切片和概念耦合恢复测试到代码的可追溯性
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.59
A. Qusef
Maintaining trace ability links between application code and unit test cases plays an important role for effectively managing the development and evolution of software systems. Unfortunately, the support in the contemporary development environment to identify such links is still inadequate. This research presents an automated solution to recover trace ability links between test cases and classes under test. The approach is based on dynamic slicing and conceptual coupling. A preliminary evaluation indicates that the proposed approach identifies trace ability links between unit test cases and tested classes with a high accuracy and greater stability than existing techniques.
维护应用程序代码和单元测试用例之间的跟踪能力链接对于有效地管理软件系统的开发和演变起着重要的作用。不幸的是,在当代发展环境中,对确定这些联系的支持仍然不足。这项研究提出了一个自动化的解决方案来恢复测试用例和被测类之间的跟踪能力链接。该方法基于动态切片和概念耦合。初步的评估表明,所建议的方法识别单元测试用例和被测试类之间的跟踪能力链接,具有比现有技术更高的准确性和更大的稳定性。
{"title":"Recovering Test-to-Code Traceability Via Slicing and Conceptual Coupling","authors":"A. Qusef","doi":"10.1109/WCRE.2011.59","DOIUrl":"https://doi.org/10.1109/WCRE.2011.59","url":null,"abstract":"Maintaining trace ability links between application code and unit test cases plays an important role for effectively managing the development and evolution of software systems. Unfortunately, the support in the contemporary development environment to identify such links is still inadequate. This research presents an automated solution to recover trace ability links between test cases and classes under test. The approach is based on dynamic slicing and conceptual coupling. A preliminary evaluation indicates that the proposed approach identifies trace ability links between unit test cases and tested classes with a high accuracy and greater stability than existing techniques.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124767850","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Meta-Level Runtime Feature Awareness for Java Java的元级运行时特性感知
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.40
Andrzej Olszak, Martin Rytter, B. Jørgensen
The existing body of feature-location research focuses on discovering feature-code trace ability links for supporting programmers in understanding and modifying static artifacts of software. In this paper, we propose a different utilization of this type of reverse-engineering information. We introduce the concept of runtime feature awareness that enables a running program to establish and make use of its own feature-code trace ability links. We present an implementation of this idea, a dynamic-analysis Java library called JAwareness. JAwareness provides a meta-level architecture that can be non-invasively added to a legacy program to enable it to act upon the activations of its own features. We demonstrate the feasibility of runtime feature awareness by discussing its three applications: error reporting, usage statistics and behavior adaptation.
现有的特征定位研究主要集中在发现特征代码跟踪能力链接,以支持程序员理解和修改软件的静态工件。在本文中,我们提出了对这种类型的逆向工程信息的不同利用。我们引入了运行时特性感知的概念,它使运行中的程序能够建立并利用它自己的特性代码跟踪能力链接。我们给出了这个想法的一个实现,一个称为JAwareness的动态分析Java库。JAwareness提供了一个元级体系结构,可以非侵入性地将其添加到遗留程序中,使其能够对其自身特性的激活进行操作。我们通过讨论运行时特征感知的三个应用程序:错误报告、使用统计和行为适应来证明它的可行性。
{"title":"Meta-Level Runtime Feature Awareness for Java","authors":"Andrzej Olszak, Martin Rytter, B. Jørgensen","doi":"10.1109/WCRE.2011.40","DOIUrl":"https://doi.org/10.1109/WCRE.2011.40","url":null,"abstract":"The existing body of feature-location research focuses on discovering feature-code trace ability links for supporting programmers in understanding and modifying static artifacts of software. In this paper, we propose a different utilization of this type of reverse-engineering information. We introduce the concept of runtime feature awareness that enables a running program to establish and make use of its own feature-code trace ability links. We present an implementation of this idea, a dynamic-analysis Java library called JAwareness. JAwareness provides a meta-level architecture that can be non-invasively added to a legacy program to enable it to act upon the activations of its own features. We demonstrate the feasibility of runtime feature awareness by discussing its three applications: error reporting, usage statistics and behavior adaptation.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125368274","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
An Entropy Evaluation Approach for Triaging Field Crashes: A Case Study of Mozilla Firefox 一种用于分类现场崩溃的熵评估方法:以Mozilla Firefox为例
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.39
Foutse Khomh, Brian Chan, Ying Zou, A. Hassan
A crash is an unexpected termination of an application during normal execution. Crash reports record stack traces and run-time information once a crash occurs. A group of similar crash reports represents a crash-type. The triaging of crash-types is critical to shorten the development and maintenance process. Crash triaging process decides the priority of crash-types to be fixed. The decision typically depends on many factors, such as the impact of the crash-type, (i.e, its severity), the frequency of occurring, and the effort required to implement a fix for the crash-type. In this paper, we propose the use of entropy region graphs to triage crash-types. An entropy region graph captures the distribution of the occurrences of crash-types among the users of a system. We conduct an empirical study on crash reports and bugs, collected from 10 beta releases of Fire fox 4. We show that our proposed triaging technique enables a better classification of crash-types than the current triaging used by Fire fox teams. Developers and managers could use such a technique to prioritize crash-types during triage, to estimate developer workloads, and to decide which crash-types patches should be included in a next release.
崩溃是指应用程序在正常执行期间意外终止。崩溃报告在发生崩溃时记录堆栈跟踪和运行时信息。一组相似的崩溃报告代表一种崩溃类型。对崩溃类型进行分类对于缩短开发和维护过程至关重要。崩溃分类过程决定要修复的崩溃类型的优先级。决策通常取决于许多因素,例如崩溃类型的影响(即其严重性)、发生的频率以及实现对崩溃类型的修复所需的工作量。在本文中,我们提出使用熵区域图来分类崩溃类型。熵域图捕获系统用户中崩溃类型发生的分布。我们对firefox4的10个beta版本的崩溃报告和bug进行了实证研究。我们表明,我们提出的分类技术能够比Fire fox团队目前使用的分类更好地分类崩溃类型。开发人员和管理人员可以使用这种技术在分类过程中确定崩溃类型的优先级,评估开发人员的工作负载,并决定在下一个版本中应该包含哪些崩溃类型的补丁。
{"title":"An Entropy Evaluation Approach for Triaging Field Crashes: A Case Study of Mozilla Firefox","authors":"Foutse Khomh, Brian Chan, Ying Zou, A. Hassan","doi":"10.1109/WCRE.2011.39","DOIUrl":"https://doi.org/10.1109/WCRE.2011.39","url":null,"abstract":"A crash is an unexpected termination of an application during normal execution. Crash reports record stack traces and run-time information once a crash occurs. A group of similar crash reports represents a crash-type. The triaging of crash-types is critical to shorten the development and maintenance process. Crash triaging process decides the priority of crash-types to be fixed. The decision typically depends on many factors, such as the impact of the crash-type, (i.e, its severity), the frequency of occurring, and the effort required to implement a fix for the crash-type. In this paper, we propose the use of entropy region graphs to triage crash-types. An entropy region graph captures the distribution of the occurrences of crash-types among the users of a system. We conduct an empirical study on crash reports and bugs, collected from 10 beta releases of Fire fox 4. We show that our proposed triaging technique enables a better classification of crash-types than the current triaging used by Fire fox teams. Developers and managers could use such a technique to prioritize crash-types during triage, to estimate developer workloads, and to decide which crash-types patches should be included in a next release.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127185021","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 46
SCOTCH: Slicing and Coupling Based Test to Code Trace Hunter SCOTCH:基于切片和耦合的代码跟踪猎人测试
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.68
A. Qusef, G. Bavota, R. Oliveto, A. D. Lucia, D. Binkley
In this demonstration we present an Eclipse plug-in, called SCOTCH (Slicing and Coupling based Test to Code trace Hunter), that uses dynamic slicing and conceptual coupling to recover the trace ability links between unit tests and tested classes. Empirical evaluation shows that SCOTCH identifies trace ability links between unit tests and tested classes with a high accuracy.
在这个演示中,我们展示了一个Eclipse插件,称为SCOTCH(基于切片和耦合的测试到代码跟踪猎人),它使用动态切片和概念耦合来恢复单元测试和被测试类之间的跟踪能力链接。经验评估表明,SCOTCH以很高的准确性识别单元测试和被测试类之间的跟踪能力链接。
{"title":"SCOTCH: Slicing and Coupling Based Test to Code Trace Hunter","authors":"A. Qusef, G. Bavota, R. Oliveto, A. D. Lucia, D. Binkley","doi":"10.1109/WCRE.2011.68","DOIUrl":"https://doi.org/10.1109/WCRE.2011.68","url":null,"abstract":"In this demonstration we present an Eclipse plug-in, called SCOTCH (Slicing and Coupling based Test to Code trace Hunter), that uses dynamic slicing and conceptual coupling to recover the trace ability links between unit tests and tested classes. Empirical evaluation shows that SCOTCH identifies trace ability links between unit tests and tested classes with a high accuracy.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128376512","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Object-Based Dynamic Protocol Recovery for Multi-Threading Programs 多线程程序中基于对象的动态协议恢复
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.38
Bernhard Scholz, R. Koschke
A protocol defines the sequencing constraints for the operations that can be applied to an object. Quante introduced a protocol recovery technique that is able to extract protocols from existing software by means of dynamic analysis. This approach represents the behavior as object process graphs (OPG). OPGs are a projection of the control flow graph reduced to the operations relevant to an individual object. The protocol is inferred from a set of OPGs. The extraction was designed to handle sequential programs only. As multi-core architectures and, hence, multi-threading becomes more and more common in nowadays programming, it is necessary to extend reverse engineering techniques for multi-threaded programs. In this paper, we extend Quante's approach to protocol reconstruction for programs with multiple threads. We are formalizing this process using concepts from automata theory, namely, product and shuffle automata. We present a naive approach to combine these concepts and a combined approach. Our evaluation for realistic Java programs demonstrates the scalability of the combined approach and the combinatorial explosion of the naive approach.
协议定义了可应用于对象的操作的顺序约束。Quante介绍了一种协议恢复技术,该技术可以通过动态分析从现有软件中提取协议。这种方法将行为表示为对象过程图(OPG)。opg是控制流图的投影,简化为与单个对象相关的操作。该协议是从一组opg中推断出来的。提取被设计为只处理顺序程序。随着多核体系结构和多线程在当今编程中越来越普遍,有必要为多线程程序扩展逆向工程技术。在本文中,我们将Quante的方法扩展到多线程程序的协议重构。我们使用自动机理论中的概念来形式化这个过程,即产品自动机和洗牌自动机。我们提出了一种结合这些概念的朴素方法和一种综合方法。我们对实际Java程序的评估展示了组合方法的可伸缩性和朴素方法的组合爆炸性。
{"title":"Object-Based Dynamic Protocol Recovery for Multi-Threading Programs","authors":"Bernhard Scholz, R. Koschke","doi":"10.1109/WCRE.2011.38","DOIUrl":"https://doi.org/10.1109/WCRE.2011.38","url":null,"abstract":"A protocol defines the sequencing constraints for the operations that can be applied to an object. Quante introduced a protocol recovery technique that is able to extract protocols from existing software by means of dynamic analysis. This approach represents the behavior as object process graphs (OPG). OPGs are a projection of the control flow graph reduced to the operations relevant to an individual object. The protocol is inferred from a set of OPGs. The extraction was designed to handle sequential programs only. As multi-core architectures and, hence, multi-threading becomes more and more common in nowadays programming, it is necessary to extend reverse engineering techniques for multi-threaded programs. In this paper, we extend Quante's approach to protocol reconstruction for programs with multiple threads. We are formalizing this process using concepts from automata theory, namely, product and shuffle automata. We present a naive approach to combine these concepts and a combined approach. Our evaluation for realistic Java programs demonstrates the scalability of the combined approach and the combinatorial explosion of the naive approach.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128945526","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Modularization Metrics: Assessing Package Organization in Legacy Large Object-Oriented Software 模块化度量:评估遗留大型面向对象软件中的包组织
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.55
H. Abdeen, Stéphane Ducasse, H. Sahraoui
There exist many large object-oriented software systems consisting of several thousands of classes that are organized into several hundreds of packages. In such software systems, classes cannot be considered as units for software modularization. In such context, packages are not simply classes containers, but they also play the role of modules: a package should focus to provide well identified services to the rest of the software system. Therefore, understanding and assessing package organization is primordial for software maintenance tasks. Although there exist a lot of works proposing metrics for the quality of a single class and/or the quality of inter-class relationships, there exist few works dealing with some aspects for the quality of package organization and relationship. We believe that additional investigations are required for assessing package modularity aspects. The goal of this paper is to provide a complementary set of metrics that assess some modularity principles for packages in large legacy object-oriented software: Information-Hiding, Changeability and Reusability principles. Our metrics are defined with respect to object-oriented dependencies that are caused by inheritance and method call. We validate our metrics theoretically through a careful study of the mathematical properties of each metric.
有许多大型的面向对象的软件系统由几千个类组成,这些类被组织成几百个包。在这样的软件系统中,类不能被视为软件模块化的单元。在这种上下文中,包不仅仅是类容器,而且还扮演模块的角色:包应该专注于为软件系统的其余部分提供良好识别的服务。因此,理解和评估包的组织是软件维护任务的基础。虽然有很多作品提出了单个类的质量和/或类间关系质量的度量,但很少有作品处理包组织和关系质量的某些方面。我们认为需要进行额外的调查来评估包的模块化方面。本文的目标是提供一组补充性的度量,用于评估大型遗留的面向对象软件中的包的一些模块化原则:信息隐藏、可变性和可重用性原则。我们的指标是根据由继承和方法调用引起的面向对象依赖来定义的。我们通过仔细研究每个度量的数学性质,从理论上验证我们的度量。
{"title":"Modularization Metrics: Assessing Package Organization in Legacy Large Object-Oriented Software","authors":"H. Abdeen, Stéphane Ducasse, H. Sahraoui","doi":"10.1109/WCRE.2011.55","DOIUrl":"https://doi.org/10.1109/WCRE.2011.55","url":null,"abstract":"There exist many large object-oriented software systems consisting of several thousands of classes that are organized into several hundreds of packages. In such software systems, classes cannot be considered as units for software modularization. In such context, packages are not simply classes containers, but they also play the role of modules: a package should focus to provide well identified services to the rest of the software system. Therefore, understanding and assessing package organization is primordial for software maintenance tasks. Although there exist a lot of works proposing metrics for the quality of a single class and/or the quality of inter-class relationships, there exist few works dealing with some aspects for the quality of package organization and relationship. We believe that additional investigations are required for assessing package modularity aspects. The goal of this paper is to provide a complementary set of metrics that assess some modularity principles for packages in large legacy object-oriented software: Information-Hiding, Changeability and Reusability principles. Our metrics are defined with respect to object-oriented dependencies that are caused by inheritance and method call. We validate our metrics theoretically through a careful study of the mathematical properties of each metric.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132870191","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 50
Reverse Engineering of Protocols from Network Traces 网络跟踪协议的逆向工程
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.28
João Antunes, N. Neves, P. Veríssimo
Communication protocols determine how network components interact with each other. Therefore, the ability to derive a specification of a protocol can be useful in various contexts, such as to support deeper black-box testing or effective defense mechanisms. Unfortunately, it is often hard to obtain the specification because systems implement closed (i.e., undocumented) protocols, or because a time consuming translation has to be performed, from the textual description of the protocol to a format readable by the tools. To address these issues, we propose a new methodology to automatically infer a specification of a protocol from network traces, which generates automata for the protocol language and state machine. Since our solution only resorts to interaction samples of the protocol, it is well-suited to uncover the message formats and protocol states of closed protocols and also to automate most of the process of specifying open protocols. The approach was implemented in a tool and experimentally evaluated with publicly available FTP traces. Our results show that the inferred specification is a good approximation of the reference specification, exhibiting a high level of precision and recall.
通信协议决定了网络组件如何相互作用。因此,派生协议规范的能力在各种上下文中都很有用,例如支持更深入的黑盒测试或有效的防御机制。不幸的是,通常很难获得规范,因为系统实现封闭(例如,未记录的)协议,或者因为必须执行耗时的转换,从协议的文本描述到工具可读的格式。为了解决这些问题,我们提出了一种新的方法来自动从网络跟踪中推断协议的规范,该方法为协议语言和状态机生成自动机。由于我们的解决方案仅使用协议的交互示例,因此它非常适合揭示封闭协议的消息格式和协议状态,也适合自动化指定开放协议的大部分过程。该方法是在一个工具中实现的,并通过公开可用的FTP跟踪进行了实验评估。我们的结果表明,推断的规范是一个很好的近似参考规范,显示出高水平的精度和召回。
{"title":"Reverse Engineering of Protocols from Network Traces","authors":"João Antunes, N. Neves, P. Veríssimo","doi":"10.1109/WCRE.2011.28","DOIUrl":"https://doi.org/10.1109/WCRE.2011.28","url":null,"abstract":"Communication protocols determine how network components interact with each other. Therefore, the ability to derive a specification of a protocol can be useful in various contexts, such as to support deeper black-box testing or effective defense mechanisms. Unfortunately, it is often hard to obtain the specification because systems implement closed (i.e., undocumented) protocols, or because a time consuming translation has to be performed, from the textual description of the protocol to a format readable by the tools. To address these issues, we propose a new methodology to automatically infer a specification of a protocol from network traces, which generates automata for the protocol language and state machine. Since our solution only resorts to interaction samples of the protocol, it is well-suited to uncover the message formats and protocol states of closed protocols and also to automate most of the process of specifying open protocols. The approach was implemented in a tool and experimentally evaluated with publicly available FTP traces. Our results show that the inferred specification is a good approximation of the reference specification, exhibiting a high level of precision and recall.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123745253","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 85
Exploring the Intent behind API Evolution: A Case Study 探索API进化背后的意图:一个案例研究
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.24
Daqing Hou, Xiaojia Yao
Reuse has significantly improved software productivity and quality. An application interacts with a reused system through its Application Programming Interfaces (API). To make the life of the application developer easier, it is desirable for the API to be both sufficiently powerful and stable. Unfortunately, in reality APIs inevitably change, to be more powerful or to remove design flaws. This may create additional work for the application developer to adapt to the changed API. Thus, to counter the negative impacts of API evolution, we need to study how and why APIs are evolved. To that end, we performed a detailed analysis of the evolution of a production API. In particular, we categorized the changes to the API according to its domain semantics and design intent. We discussed the implications of our findings for both API designers and application developers.
重用显著地提高了软件的生产力和质量。应用程序通过其应用程序编程接口(API)与重用的系统进行交互。为了简化应用程序开发人员的工作,希望API既足够强大又足够稳定。不幸的是,在现实中,api不可避免地会发生变化,以变得更强大或消除设计缺陷。这可能会给应用程序开发人员带来额外的工作,以适应已更改的API。因此,为了应对API进化的负面影响,我们需要研究API是如何以及为什么进化的。为此,我们对生产API的演变进行了详细的分析。特别是,我们根据其领域语义和设计意图对API的更改进行了分类。我们讨论了我们的发现对API设计人员和应用程序开发人员的影响。
{"title":"Exploring the Intent behind API Evolution: A Case Study","authors":"Daqing Hou, Xiaojia Yao","doi":"10.1109/WCRE.2011.24","DOIUrl":"https://doi.org/10.1109/WCRE.2011.24","url":null,"abstract":"Reuse has significantly improved software productivity and quality. An application interacts with a reused system through its Application Programming Interfaces (API). To make the life of the application developer easier, it is desirable for the API to be both sufficiently powerful and stable. Unfortunately, in reality APIs inevitably change, to be more powerful or to remove design flaws. This may create additional work for the application developer to adapt to the changed API. Thus, to counter the negative impacts of API evolution, we need to study how and why APIs are evolved. To that end, we performed a detailed analysis of the evolution of a production API. In particular, we categorized the changes to the API according to its domain semantics and design intent. We discussed the implications of our findings for both API designers and application developers.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"194 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125109382","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 47
Automatic Extraction of Secrets from Malware 从恶意软件的秘密自动提取
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.27
Ziming Zhao, Gail-Joon Ahn, Hongxin Hu
As promising results have been obtained in defeating code obfuscation techniques, malware authors have adopted protection approaches to hide malware-related data from analysis. Consequently, the discovery of internal cipher text data in malware is now critical for malware forensics and cyber-crime analysis. In this paper, we present a novel approach to automatically extract secrets from malware. Our approach identifies and extracts binary code relevant to secret hiding behaviors. Then, we relocate and reuse the extracted binary code in a self-contained fashion to reveal hidden information. We demonstrate the feasibility of our approach through a proof-of-concept prototype called ASES (Automatic and Systematic Extraction of Secrets) along with experimental results.
由于在击败代码混淆技术方面取得了可喜的成果,恶意软件作者采用了保护方法来隐藏与恶意软件相关的数据,使其不被分析。因此,在恶意软件中发现内部密文数据对于恶意软件取证和网络犯罪分析至关重要。本文提出了一种从恶意软件中自动提取秘密的新方法。我们的方法识别和提取与秘密隐藏行为相关的二进制代码。然后,我们以自包含的方式重新定位和重用提取的二进制代码,以揭示隐藏的信息。我们通过一个名为ASES(自动和系统地提取秘密)的概念验证原型以及实验结果证明了我们方法的可行性。
{"title":"Automatic Extraction of Secrets from Malware","authors":"Ziming Zhao, Gail-Joon Ahn, Hongxin Hu","doi":"10.1109/WCRE.2011.27","DOIUrl":"https://doi.org/10.1109/WCRE.2011.27","url":null,"abstract":"As promising results have been obtained in defeating code obfuscation techniques, malware authors have adopted protection approaches to hide malware-related data from analysis. Consequently, the discovery of internal cipher text data in malware is now critical for malware forensics and cyber-crime analysis. In this paper, we present a novel approach to automatically extract secrets from malware. Our approach identifies and extracts binary code relevant to secret hiding behaviors. Then, we relocate and reuse the extracted binary code in a self-contained fashion to reveal hidden information. We demonstrate the feasibility of our approach through a proof-of-concept prototype called ASES (Automatic and Systematic Extraction of Secrets) along with experimental results.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121796758","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
A Framework Profile of .NET .NET框架概要
Pub Date : 2011-10-17 DOI: 10.1109/WCRE.2011.25
R. Lämmel, Rufus Linke, Ekaterina Pek, A. Varanovich
We develop a basic form of framework comprehension which is based on simple, reuse-related metrics for the as-implemented design and usage of frameworks. To this end, we provide a framework profile which incorporates potential reuse characteristics (e.g., specializability of types in a framework) as well as actual reuse characteristics (e.g., evidence of specialization of framework types in projects). We apply framework comprehension in an empirical study of the Microsoft. NET Framework. The approach is helpful in several contexts of software reverse and re-engineering.
我们开发了一种框架理解的基本形式,它基于框架的实现设计和使用的简单的、与重用相关的度量。为此,我们提供了一个框架概要文件,其中包含了潜在的重用特征(例如,框架中类型的专门化)以及实际的重用特征(例如,项目中框架类型专门化的证据)。本文将框架理解应用于微软公司的实证研究。净框架。该方法在软件逆向和再工程的几种情况下是有帮助的。
{"title":"A Framework Profile of .NET","authors":"R. Lämmel, Rufus Linke, Ekaterina Pek, A. Varanovich","doi":"10.1109/WCRE.2011.25","DOIUrl":"https://doi.org/10.1109/WCRE.2011.25","url":null,"abstract":"We develop a basic form of framework comprehension which is based on simple, reuse-related metrics for the as-implemented design and usage of frameworks. To this end, we provide a framework profile which incorporates potential reuse characteristics (e.g., specializability of types in a framework) as well as actual reuse characteristics (e.g., evidence of specialization of framework types in projects). We apply framework comprehension in an empirical study of the Microsoft. NET Framework. The approach is helpful in several contexts of software reverse and re-engineering.","PeriodicalId":350863,"journal":{"name":"2011 18th Working Conference on Reverse Engineering","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127544461","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
期刊
2011 18th Working Conference on Reverse Engineering
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1