首页 > 最新文献

11th Working Conference on Reverse Engineering最新文献

英文 中文
A reverse engineering approach to support software maintenance: version control knowledge extraction 支持软件维护的逆向工程方法:版本控制知识提取
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.8
Xiaomin Wu, Adam Murray, M. Storey, R. Lintern
Most traditional reverse engineering tools focus on abstraction and analysis of source code, presenting a visual representation of the software architecture. This approach can be both helpful and cost effective in software maintenance tasks. However, where large software teams are concerned, with moderate levels of employee turnover, traditional reverse engineering tools can be inadequate. To address this issue, we examine the use of software process data, such as software artifact change history and developer activities. We propose the application of this data confers additional information developers need to better understand, maintain and develop software in large team settings. To explore this hypothesis, we evaluate the use of a tool, Xia, in the navigation of both software artifacts and their version history. This work introduces Xia, reveals the results of our evaluation and proposes directions for future research in this area.
大多数传统的逆向工程工具关注于源代码的抽象和分析,呈现软件体系结构的可视化表示。这种方法在软件维护任务中既有用又具有成本效益。然而,对于大型软件团队来说,在员工流动率适中的情况下,传统的逆向工程工具可能是不够的。为了解决这个问题,我们检查软件过程数据的使用,例如软件工件变更历史和开发人员活动。我们建议应用这些数据,为开发人员在大型团队环境中更好地理解、维护和开发软件提供额外的信息。为了探索这个假设,我们在软件工件及其版本历史的导航中评估了工具Xia的使用。本文介绍了夏,揭示了我们的评价结果,并提出了该领域未来的研究方向。
{"title":"A reverse engineering approach to support software maintenance: version control knowledge extraction","authors":"Xiaomin Wu, Adam Murray, M. Storey, R. Lintern","doi":"10.1109/WCRE.2004.8","DOIUrl":"https://doi.org/10.1109/WCRE.2004.8","url":null,"abstract":"Most traditional reverse engineering tools focus on abstraction and analysis of source code, presenting a visual representation of the software architecture. This approach can be both helpful and cost effective in software maintenance tasks. However, where large software teams are concerned, with moderate levels of employee turnover, traditional reverse engineering tools can be inadequate. To address this issue, we examine the use of software process data, such as software artifact change history and developer activities. We propose the application of this data confers additional information developers need to better understand, maintain and develop software in large team settings. To explore this hypothesis, we evaluate the use of a tool, Xia, in the navigation of both software artifacts and their version history. This work introduces Xia, reveals the results of our evaluation and proposes directions for future research in this area.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125392712","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}
引用次数: 56
Combined software and hardware comprehension in reverse engineering 逆向工程中软硬件的综合理解
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.16
P. Roche, Anthony Cox
In the presence of undocumented and unfamiliar hardware, the process of program comprehension becomes more complex. To perform maintenance activities, programmers must understand the functioning of each element independently, as well as their interactions. We examine the process taken by the first author during the analysis, porting and re-implementation of a software system that has a heavy reliance on undocumented customized hardware interfaces. This process also demonstrates the use of a two-phase approach when migrating a mission-critical software system. The software was first ported to a new platform running a semi-compatible BASIC interpreter (phase I) before a complete re-implementation was performed (phase 2). The experiences, strategies used, and lessons learned during the process are reported here.
在没有文档记录和不熟悉的硬件存在的情况下,程序理解的过程变得更加复杂。为了执行维护活动,程序员必须独立地理解每个元素的功能,以及它们之间的相互作用。我们考察了第一作者在分析、移植和重新实现一个严重依赖于未记录的定制硬件接口的软件系统时所采取的过程。此过程还演示了在迁移关键任务软件系统时如何使用两阶段方法。在执行完整的重新实现(阶段2)之前,软件首先被移植到运行半兼容BASIC解释器的新平台(阶段1)。在此过程中报告了使用的经验、策略和吸取的教训。
{"title":"Combined software and hardware comprehension in reverse engineering","authors":"P. Roche, Anthony Cox","doi":"10.1109/WCRE.2004.16","DOIUrl":"https://doi.org/10.1109/WCRE.2004.16","url":null,"abstract":"In the presence of undocumented and unfamiliar hardware, the process of program comprehension becomes more complex. To perform maintenance activities, programmers must understand the functioning of each element independently, as well as their interactions. We examine the process taken by the first author during the analysis, porting and re-implementation of a software system that has a heavy reliance on undocumented customized hardware interfaces. This process also demonstrates the use of a two-phase approach when migrating a mission-critical software system. The software was first ported to a new platform running a semi-compatible BASIC interpreter (phase I) before a complete re-implementation was performed (phase 2). The experiences, strategies used, and lessons learned during the process are reported here.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126618438","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}
引用次数: 1
Identifying aspects using fan-in analysis 使用扇入分析识别方面
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.23
M. Marin, A. Deursen, L. Moonen
The issues of code scattering and tangling, thus of achieving a better modularity for a system's concerns, are addressed by the paradigm of aspect orientation. Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existing systems. This work describes a technique based on determining methods that are called from many different places (and hence have a high fan-in) to identify candidate aspects in a number of open-source Java systems. The most interesting aspects identified are discussed in detail, which includes several concerns not previously discussed in the aspect-oriented literature. The results show that a significant number of aspects can be recognized using fan-in analysis, and that the technique is suitable for a high degree of automation.
代码分散和纠缠的问题,以及为系统关注点实现更好的模块化的问题,由面向方面的范例解决。方面挖掘是一种逆向工程过程,旨在发现现有系统中的横切关注点。这项工作描述了一种基于确定从许多不同地方调用的方法的技术(因此具有很高的进风口),以确定许多开源Java系统中的候选方面。详细讨论了确定的最有趣的方面,其中包括之前在面向方面的文献中没有讨论的几个关注点。结果表明,使用扇入分析可以识别许多方面,并且该技术适用于高度自动化。
{"title":"Identifying aspects using fan-in analysis","authors":"M. Marin, A. Deursen, L. Moonen","doi":"10.1109/WCRE.2004.23","DOIUrl":"https://doi.org/10.1109/WCRE.2004.23","url":null,"abstract":"The issues of code scattering and tangling, thus of achieving a better modularity for a system's concerns, are addressed by the paradigm of aspect orientation. Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existing systems. This work describes a technique based on determining methods that are called from many different places (and hence have a high fan-in) to identify candidate aspects in a number of open-source Java systems. The most interesting aspects identified are discussed in detail, which includes several concerns not previously discussed in the aspect-oriented literature. The results show that a significant number of aspects can be recognized using fan-in analysis, and that the technique is suitable for a high degree of automation.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"304 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116100977","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}
引用次数: 184
Updating legacy databases through wrappers: data consistency management 通过包装器更新遗留数据库:数据一致性管理
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.41
Philippe Thiran, G. Houben, Jean-Luc Hainaut, D. Benslimane
Wrapping databases allows them to be reused in earlier unforeseen contexts, such as Web-based applications or federated systems. Data wrappers, and more specifically updating wrappers (that not only access legacy data but also update them), can provide external clients of an existing (legacy) database with a neutral interface and augmented capabilities. For instance, a collection of COBOL files can be wrapped in order to allow external application programs to access them through a relational, object-oriented or XML interface, while providing referential integrity control. We explore the principles of a wrapper architecture that addresses the problems of legacy data consistency management. The transformational paradigm is used as a rigorous formalism to define schema mappings as well as to generate as much as possible of the code of the wrappers. The generation is supported by an operational CASE tool.
包装数据库允许在早期未预见的上下文中重用它们,例如基于web的应用程序或联邦系统。数据包装器,更具体地说是更新包装器(不仅访问遗留数据,还更新它们),可以为现有(遗留)数据库的外部客户端提供中立的接口和增强的功能。例如,可以包装一组COBOL文件,以便允许外部应用程序通过关系、面向对象或XML接口访问它们,同时提供引用完整性控制。我们将探讨解决遗留数据一致性管理问题的包装器体系结构的原理。转换范例被用作定义模式映射以及生成尽可能多的包装器代码的严格形式化方法。生成由可操作的CASE工具支持。
{"title":"Updating legacy databases through wrappers: data consistency management","authors":"Philippe Thiran, G. Houben, Jean-Luc Hainaut, D. Benslimane","doi":"10.1109/WCRE.2004.41","DOIUrl":"https://doi.org/10.1109/WCRE.2004.41","url":null,"abstract":"Wrapping databases allows them to be reused in earlier unforeseen contexts, such as Web-based applications or federated systems. Data wrappers, and more specifically updating wrappers (that not only access legacy data but also update them), can provide external clients of an existing (legacy) database with a neutral interface and augmented capabilities. For instance, a collection of COBOL files can be wrapped in order to allow external application programs to access them through a relational, object-oriented or XML interface, while providing referential integrity control. We explore the principles of a wrapper architecture that addresses the problems of legacy data consistency management. The transformational paradigm is used as a rigorous formalism to define schema mappings as well as to generate as much as possible of the code of the wrappers. The generation is supported by an operational CASE tool.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129284738","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
An information retrieval approach to concept location in source code 概念定位的一种信息检索方法
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.10
Andrian Marcus, A. Sergeyev, V. Rajlich, Jonathan I. Maletic
Concept location identifies parts of a software system that implement a specific concept that originates from the problem or the solution domain. Concept location is a very common software engineering activity that directly supports software maintenance and evolution tasks such as incremental change and reverse engineering. This work addresses the problem of concept location using an advanced information retrieval method, Latent Semantic Indexing (LSI). LSI is used to map concepts expressed in natural language by the programmer to the relevant parts of the source code. Results of a case study on NCSA Mosaic are presented and compared with previously published results of other static methods for concept location.
概念位置标识软件系统中实现源自问题或解决方案域的特定概念的部分。概念定位是一种非常常见的软件工程活动,它直接支持软件维护和演进任务,例如增量变更和逆向工程。这项工作解决了使用先进的信息检索方法,潜在语义索引(LSI)的概念定位问题。大规模集成电路用于将程序员用自然语言表达的概念映射到源代码的相关部分。介绍了NCSA马赛克的实例研究结果,并与其他静态方法的概念定位结果进行了比较。
{"title":"An information retrieval approach to concept location in source code","authors":"Andrian Marcus, A. Sergeyev, V. Rajlich, Jonathan I. Maletic","doi":"10.1109/WCRE.2004.10","DOIUrl":"https://doi.org/10.1109/WCRE.2004.10","url":null,"abstract":"Concept location identifies parts of a software system that implement a specific concept that originates from the problem or the solution domain. Concept location is a very common software engineering activity that directly supports software maintenance and evolution tasks such as incremental change and reverse engineering. This work addresses the problem of concept location using an advanced information retrieval method, Latent Semantic Indexing (LSI). LSI is used to map concepts expressed in natural language by the programmer to the relevant parts of the source code. Results of a case study on NCSA Mosaic are presented and compared with previously published results of other static methods for concept location.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128505458","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}
引用次数: 520
Detecting implicit collaboration patterns 检测隐性协作模式
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.18
G. Arévalo, F. Buchli, Oscar Nierstrasz
A key problem during software development and maintenance is to detect and recognize recurring collaborations among software artifacts that are implicit in the code. These collaboration patterns are typically signs of applied idioms, conventions and design patterns during the development of the system, and may entail implicit contracts that should be respected during maintenance, but are not documented explicitly. We apply formal concept analysis to detect implicit collaboration patterns. Our approach generalizes Antoniol and Tonella one for detecting classical design patterns. We introduce a variation to their algorithm to reduce the computation time of the concepts, a language-independent approach for object-oriented languages, and a post-processing phase in which pattern candidates are filtered out. We identify collaboration patterns in the analyzed applications, match them against libraries of known design patterns, and establish relationships between detected patterns and their nearest neighbours.
软件开发和维护期间的一个关键问题是检测和识别代码中隐含的软件构件之间的重复协作。这些协作模式通常是在系统开发期间应用的习惯用法、惯例和设计模式的标志,并且可能需要在维护期间应遵守的隐式契约,但没有明确记录。我们应用形式概念分析来检测隐式协作模式。我们的方法推广了Antoniol和Tonella方法来检测经典设计模式。我们在他们的算法中引入了一种变体,以减少概念的计算时间,为面向对象语言引入了一种与语言无关的方法,并在后处理阶段过滤掉模式候选者。我们在分析的应用程序中识别协作模式,将它们与已知设计模式库进行匹配,并在检测到的模式和它们最近的邻居之间建立关系。
{"title":"Detecting implicit collaboration patterns","authors":"G. Arévalo, F. Buchli, Oscar Nierstrasz","doi":"10.1109/WCRE.2004.18","DOIUrl":"https://doi.org/10.1109/WCRE.2004.18","url":null,"abstract":"A key problem during software development and maintenance is to detect and recognize recurring collaborations among software artifacts that are implicit in the code. These collaboration patterns are typically signs of applied idioms, conventions and design patterns during the development of the system, and may entail implicit contracts that should be respected during maintenance, but are not documented explicitly. We apply formal concept analysis to detect implicit collaboration patterns. Our approach generalizes Antoniol and Tonella one for detecting classical design patterns. We introduce a variation to their algorithm to reduce the computation time of the concepts, a language-independent approach for object-oriented languages, and a post-processing phase in which pattern candidates are filtered out. We identify collaboration patterns in the analyzed applications, match them against libraries of known design patterns, and establish relationships between detected patterns and their nearest neighbours.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114237880","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}
引用次数: 29
An initial approach to assessing program comprehensibility using spatial complexity, number of concepts and typographical style 使用空间复杂性、概念数量和排版风格评估程序可理解性的初步方法
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.11
A. Mohan, N. Gold, P. Layzell
Software evolution can result in making a program harder to maintain, as it becomes more difficult to comprehend. This difficulty is related to the way the source code is formatted, the complexity of the code, and the amount of information contained within it. This work presents an initial approach that uses measures of typographical style, spatial complexity and concept assignment to measure these factors, and to model the comprehensibility of an evolving program. The ultimate aim of which is to identify when a program becomes more difficult to comprehend, triggering a corrective action to be taken to prevent this. We present initial findings from applying this approach. These findings show that this approach, through measuring these three factors, can model the change in comprehensibility of an evolving program. Our findings support the well-known claim that programs become more complex as they evolve, explaining this increase in complexity in terms of layout changes, conceptual coherence, spatial relationships between source code elements, and the relationship between these factors. This in turn can then be used to understand how maintenance affects program comprehensibility and to ultimately reduce its burden on software maintenance.
软件进化可能导致程序更难维护,因为它变得更难以理解。这种困难与源代码的格式化方式、代码的复杂性以及其中包含的信息量有关。这项工作提出了一种初步的方法,使用排版风格,空间复杂性和概念分配的措施来衡量这些因素,并模拟一个不断发展的项目的可理解性。它的最终目的是确定程序何时变得更难以理解,从而触发采取纠正措施来防止这种情况。我们提出了应用这种方法的初步发现。这些发现表明,通过测量这三个因素,这种方法可以模拟一个不断发展的程序的可理解性的变化。我们的研究结果支持了一个众所周知的说法,即程序随着进化而变得更加复杂,并从布局变化、概念一致性、源代码元素之间的空间关系以及这些因素之间的关系等方面解释了复杂性的增加。这反过来又可以用来理解维护如何影响程序的可理解性,并最终减少其对软件维护的负担。
{"title":"An initial approach to assessing program comprehensibility using spatial complexity, number of concepts and typographical style","authors":"A. Mohan, N. Gold, P. Layzell","doi":"10.1109/WCRE.2004.11","DOIUrl":"https://doi.org/10.1109/WCRE.2004.11","url":null,"abstract":"Software evolution can result in making a program harder to maintain, as it becomes more difficult to comprehend. This difficulty is related to the way the source code is formatted, the complexity of the code, and the amount of information contained within it. This work presents an initial approach that uses measures of typographical style, spatial complexity and concept assignment to measure these factors, and to model the comprehensibility of an evolving program. The ultimate aim of which is to identify when a program becomes more difficult to comprehend, triggering a corrective action to be taken to prevent this. We present initial findings from applying this approach. These findings show that this approach, through measuring these three factors, can model the change in comprehensibility of an evolving program. Our findings support the well-known claim that programs become more complex as they evolve, explaining this increase in complexity in terms of layout changes, conceptual coherence, spatial relationships between source code elements, and the relationship between these factors. This in turn can then be used to understand how maintenance affects program comprehensibility and to ultimately reduce its burden on software maintenance.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123444776","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}
引用次数: 5
An initial experiment in reverse engineering aspects 逆向工程方面的初步实验
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.12
M. Bruntink, A. Deursen, T. Tourwé
We evaluate the benefits of applying aspect-oriented software development techniques in the context of a large-scale industrial embedded software system implementing a number of crosscutting concerns. Additionally, we assess the feasibility of automatically extracting these crosscutting concerns from the source code. In order to achieve this, we present an approach for reverse engineering aspects from an ordinary application automatically. This approach incorporates both a concern verification and an aspect construction phase. Our results show that such automated support is feasible, and can lead to significant improvements in source code quality.
我们评估了在大规模工业嵌入式软件系统实现许多横切关注点的背景下应用面向方面的软件开发技术的好处。此外,我们评估了从源代码中自动提取这些横切关注点的可行性。为了实现这一点,我们提出了一种从普通应用程序自动进行逆向工程的方法。这种方法结合了一个关注验证和一个方面构建阶段。我们的结果表明,这种自动化支持是可行的,并且可以显著提高源代码质量。
{"title":"An initial experiment in reverse engineering aspects","authors":"M. Bruntink, A. Deursen, T. Tourwé","doi":"10.1109/WCRE.2004.12","DOIUrl":"https://doi.org/10.1109/WCRE.2004.12","url":null,"abstract":"We evaluate the benefits of applying aspect-oriented software development techniques in the context of a large-scale industrial embedded software system implementing a number of crosscutting concerns. Additionally, we assess the feasibility of automatically extracting these crosscutting concerns from the source code. In order to achieve this, we present an approach for reverse engineering aspects from an ordinary application automatically. This approach incorporates both a concern verification and an aspect construction phase. Our results show that such automated support is feasible, and can lead to significant improvements in source code quality.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130925930","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}
引用次数: 15
Using DDL to understand and modify SimpleScalar 使用DDL来理解和修改SimpleScalar
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.43
Naoman Abbas, Sumant Tambe, J. Cook
Many legacy systems are built on the technology of dynamic link libraries. Software engineering tools have not exploited this framework very well. Because the linking is delayed until runtime, it seems natural to provide tools access to the linking process, in order to track it, and even to modify it. There is no reason the dynamic linker must resolve a symbol to the intended function. To this end we have created DDL (the Dynamic Dynamic Linker) by modifying the Gnu dynamic linker to provide an API for developers to use to customize the linking process. We believe that DDL will be useful for a wide variety of software engineering tasks, not the least of which is the reverse engineering of legacy systems, and their maintenance and modification. We present a case study of one such task. This task is the understanding and modification of the SimpleScalar CPU/architectural simulator. We were able to use DDL to understand the behavior of SimpleScalar at a function-call level, and then used DDL to modify the run-time behavior (without modifying the functional source code) to implement the switching between detailed and functional simulation modes (an important extension to the community).
许多遗留系统都是基于动态链接库技术构建的。软件工程工具还没有很好地利用这个框架。因为链接延迟到运行时,所以很自然地提供了访问链接过程的工具,以便跟踪它,甚至修改它。动态链接器没有理由必须将符号解析为预期的函数。为此,我们通过修改Gnu动态链接器创建了DDL(动态动态链接器),为开发人员提供了一个API来定制链接过程。我们相信DDL将对各种各样的软件工程任务非常有用,其中最重要的是遗留系统的逆向工程,以及它们的维护和修改。我们提出了一个这样的任务的案例研究。本任务是对SimpleScalar CPU/架构模拟器的理解和修改。我们能够使用DDL在函数调用级别理解SimpleScalar的行为,然后使用DDL修改运行时行为(不修改功能源代码)来实现详细模拟模式和功能模拟模式之间的切换(对社区的一个重要扩展)。
{"title":"Using DDL to understand and modify SimpleScalar","authors":"Naoman Abbas, Sumant Tambe, J. Cook","doi":"10.1109/WCRE.2004.43","DOIUrl":"https://doi.org/10.1109/WCRE.2004.43","url":null,"abstract":"Many legacy systems are built on the technology of dynamic link libraries. Software engineering tools have not exploited this framework very well. Because the linking is delayed until runtime, it seems natural to provide tools access to the linking process, in order to track it, and even to modify it. There is no reason the dynamic linker must resolve a symbol to the intended function. To this end we have created DDL (the Dynamic Dynamic Linker) by modifying the Gnu dynamic linker to provide an API for developers to use to customize the linking process. We believe that DDL will be useful for a wide variety of software engineering tasks, not the least of which is the reverse engineering of legacy systems, and their maintenance and modification. We present a case study of one such task. This task is the understanding and modification of the SimpleScalar CPU/architectural simulator. We were able to use DDL to understand the behavior of SimpleScalar at a function-call level, and then used DDL to modify the run-time behavior (without modifying the functional source code) to implement the switching between detailed and functional simulation modes (an important extension to the community).","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125437739","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
Using a decompiler for real-world source recovery 使用反编译器进行真实源恢复
Pub Date : 2004-11-08 DOI: 10.1109/WCRE.2004.42
M. Emmerik, T. Waddington
Despite their 40 year history, native executable decompilers have found very limited practical application in commercial projects. The success of Java decompilers is well known, and a few decompilers perform well by recognising patterns from specific compilers. This work describes the experience gained from applying a native executable decompiler, assisted by a commercial disassembler and hand editing, to a real-world Windows-based application. The clients had source code for a prototype version of the program, and an executable that performed better, for which the source code was not available. The project was to recover the algorithm at the core of the program, and if time permitted, the recovery of other pieces of source code. Despite the difficulties, the core algorithm was successfully decompiled, and a portion of the rest of the program as well. There were surprises, including the ability to recover almost all original class names, and the complete class hierarchy.
尽管有40年的历史,本地可执行反编译器在商业项目中的实际应用非常有限。Java反编译器的成功是众所周知的,一些反编译器通过识别来自特定编译器的模式而表现良好。本工作描述了将本地可执行反编译器(由商业反汇编器和手工编辑器辅助)应用于真实的基于windows的应用程序所获得的经验。客户拥有程序原型版本的源代码,以及一个执行得更好的可执行文件,而源代码是不可用的。这个项目的目的是恢复程序核心的算法,如果时间允许,还可以恢复其他部分的源代码。尽管困难重重,核心算法还是成功反编译了,程序的其余部分也成功反编译了。有一些惊喜,包括恢复几乎所有原始类名的能力,以及完整的类层次结构。
{"title":"Using a decompiler for real-world source recovery","authors":"M. Emmerik, T. Waddington","doi":"10.1109/WCRE.2004.42","DOIUrl":"https://doi.org/10.1109/WCRE.2004.42","url":null,"abstract":"Despite their 40 year history, native executable decompilers have found very limited practical application in commercial projects. The success of Java decompilers is well known, and a few decompilers perform well by recognising patterns from specific compilers. This work describes the experience gained from applying a native executable decompiler, assisted by a commercial disassembler and hand editing, to a real-world Windows-based application. The clients had source code for a prototype version of the program, and an executable that performed better, for which the source code was not available. The project was to recover the algorithm at the core of the program, and if time permitted, the recovery of other pieces of source code. Despite the difficulties, the core algorithm was successfully decompiled, and a portion of the rest of the program as well. There were surprises, including the ability to recover almost all original class names, and the complete class hierarchy.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127896164","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}
引用次数: 70
期刊
11th 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