首页 > 最新文献

2013 20th Working Conference on Reverse Engineering (WCRE)最新文献

英文 中文
An IDE-based context-aware meta search engine 基于ide的上下文感知元搜索引擎
Pub Date : 2018-07-05 DOI: 10.1109/WCRE.2013.6671324
M. M. Rahman, S. Yeasmin, C. Roy
Traditional web search forces the developers to leave their working environments and look for solutions in the web browsers. It often does not consider the context of their programming problems. The context-switching between the web browser and the working environment is time-consuming and distracting, and the keyword-based traditional search often does not help much in problem solving. In this paper, we propose an Eclipse IDE-based web search solution that collects the data from three web search APIs-Google, Yahoo, Bing and a programming Q & A site-StackOverflow. It then provides search results within IDE taking not only the content of the selected error into account but also the problem context, popularity and search engine recommendation of the result links. Experiments with 25 runtime errors and exceptions show that the proposed approach outperforms the keyword-based search approaches with a recommendation accuracy of 96%. We also validate the results with a user study involving five prospective participants where we get a result agreement of 64.28%. While the preliminary results are promising, the approach needs to be further validated with more errors and exceptions followed by a user study with more participants to establish itself as a complete IDE-based web search solution.
传统的web搜索迫使开发人员离开他们的工作环境,在web浏览器中寻找解决方案。它通常不考虑编程问题的上下文。网页浏览器和工作环境之间的上下文切换既耗时又分散注意力,基于关键字的传统搜索通常对解决问题没有多大帮助。在本文中,我们提出了一个基于Eclipse ide的web搜索解决方案,该解决方案从三个web搜索api - google, Yahoo, Bing和一个编程问答网站- stackoverflow收集数据。然后,它在IDE中提供搜索结果,不仅考虑了所选错误的内容,还考虑了问题上下文、受欢迎程度和结果链接的搜索引擎推荐。在25个运行时错误和异常情况下的实验表明,该方法的推荐准确率达到96%,优于基于关键字的搜索方法。我们还通过涉及五名潜在参与者的用户研究验证了结果,我们得到了64.28%的结果一致性。虽然初步的结果是有希望的,但该方法需要进一步验证更多的错误和例外,然后进行更多参与者的用户研究,以建立自己作为一个完整的基于ide的web搜索解决方案。
{"title":"An IDE-based context-aware meta search engine","authors":"M. M. Rahman, S. Yeasmin, C. Roy","doi":"10.1109/WCRE.2013.6671324","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671324","url":null,"abstract":"Traditional web search forces the developers to leave their working environments and look for solutions in the web browsers. It often does not consider the context of their programming problems. The context-switching between the web browser and the working environment is time-consuming and distracting, and the keyword-based traditional search often does not help much in problem solving. In this paper, we propose an Eclipse IDE-based web search solution that collects the data from three web search APIs-Google, Yahoo, Bing and a programming Q & A site-StackOverflow. It then provides search results within IDE taking not only the content of the selected error into account but also the problem context, popularity and search engine recommendation of the result links. Experiments with 25 runtime errors and exceptions show that the proposed approach outperforms the keyword-based search approaches with a recommendation accuracy of 96%. We also validate the results with a user study involving five prospective participants where we get a result agreement of 64.28%. While the preliminary results are promising, the approach needs to be further validated with more errors and exceptions followed by a user study with more participants to establish itself as a complete IDE-based web search solution.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134182951","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
Understanding project dissemination on a social coding site 了解项目在社会编码网站上的传播
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671288
Jing Jiang, Li Zhang, Lei Li
Popular social coding sites like GitHub and BitBucket are changing software development. Users follow some interesting developers, listen to their activities and find new projects. Social relationships between users are utilized to disseminate projects, attract contributors and increase the popularity. A deep understanding of project dissemination on social coding sites can provide important insights into questions of project diffusion characteristics and into the improvement of the popularity. In this paper, we seek a deeper understanding of project dissemination in GitHub. We collect 2,665 projects and 272,874 events. Moreover, we crawl 747,107 developers and 2,234,845 social links to construct social graphs. We analyze topological characteristics and reciprocity of social graphs. We then study the speed and the range of project dissemination, and the role of social links. Our main observations are: (1) Social relationships are not reciprocal. (2) The popularity increases gradually for a long time. (3) Projects spread to users far away from their creators. (4) Social links play a notable role of project dissemination. These results can be leveraged to increase the popularity. Specifically, we suggest that project owners should (1) encourage experienced developers to choose some promising new developers, follow them in return and provide guidance. (2) promote projects for a long time. (3) advertise projects to a wide range of developers. (4) fully utilize social relationships to advertise projects and attract contributors.
GitHub和BitBucket等流行的社交编码网站正在改变软件开发。用户关注一些有趣的开发者,倾听他们的活动并发现新的项目。利用用户之间的社会关系传播项目,吸引贡献者,提高知名度。深入了解项目在社交编码网站上的传播,可以为研究项目的传播特征问题和提高项目的知名度提供重要的见解。在本文中,我们寻求对GitHub中的项目传播有更深入的了解。我们收集了2665个项目和272874个事件。此外,我们还抓取了747,107名开发者和2,234,845个社交链接来构建社交图谱。我们分析了社交图的拓扑特征和互易性。然后我们研究了项目传播的速度和范围,以及社会联系的作用。我们的主要观察是:(1)社会关系不是互惠的。在很长一段时间内,人气逐渐上升。(3)项目向远离创建者的用户传播。(4)社会联系对项目传播的作用显著。可以利用这些结果来提高受欢迎程度。具体来说,我们建议项目业主应(1)鼓励有经验的开发商选择一些有前途的新开发商,并给予回报和指导。(2)长期推进项目。(3)向大范围的开发商宣传项目。(4)充分利用社会关系为项目做广告,吸引投稿人。
{"title":"Understanding project dissemination on a social coding site","authors":"Jing Jiang, Li Zhang, Lei Li","doi":"10.1109/WCRE.2013.6671288","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671288","url":null,"abstract":"Popular social coding sites like GitHub and BitBucket are changing software development. Users follow some interesting developers, listen to their activities and find new projects. Social relationships between users are utilized to disseminate projects, attract contributors and increase the popularity. A deep understanding of project dissemination on social coding sites can provide important insights into questions of project diffusion characteristics and into the improvement of the popularity. In this paper, we seek a deeper understanding of project dissemination in GitHub. We collect 2,665 projects and 272,874 events. Moreover, we crawl 747,107 developers and 2,234,845 social links to construct social graphs. We analyze topological characteristics and reciprocity of social graphs. We then study the speed and the range of project dissemination, and the role of social links. Our main observations are: (1) Social relationships are not reciprocal. (2) The popularity increases gradually for a long time. (3) Projects spread to users far away from their creators. (4) Social links play a notable role of project dissemination. These results can be leveraged to increase the popularity. Specifically, we suggest that project owners should (1) encourage experienced developers to choose some promising new developers, follow them in return and provide guidance. (2) promote projects for a long time. (3) advertise projects to a wide range of developers. (4) fully utilize social relationships to advertise projects and attract contributors.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124946157","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}
引用次数: 36
Reconstructing program memory state from multi-gigabyte instruction traces to support interactive analysis 从多千兆字节的指令轨迹重构程序内存状态,以支持交互式分析
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671279
B. Cleary, P. Gorman, Eric Verbeek, M. Storey, M. Salois, F. Painchaud
Exploitability analysis is the process of attempting to determine if a vulnerability in a program is exploitable. Fuzzing is a popular method of finding such vulnerabilities, in which a program is subjected to millions of generated program inputs until it crashes. Each program crash indicates a potential vulnerability that needs to be prioritized according to its potential for exploitation. The highest priority vulnerabilities need to be investigated by a security analyst by re-executing the program with the input that caused the crash while recording a trace of all executed assembly instructions and then performing analysis on the resulting trace. Recreating the entire memory state of the program at the time of the crash, or at any other point in the trace, is very important for helping the analyst build an understanding of the conditions that led to the crash. Unfortunately, tracing even a small program can create multimillion line trace files from which reconstructing memory state is a computationally intensive process and virtually impossible to do manually. In this paper we present an analysis of the problem of memory state reconstruction from very large execution traces. We report on a novel approach for reconstructing the entire memory state of a program from an execution trace that allows near realtime queries on the state of memory at any point in a program's execution trace. Finally we benchmark our approach showing storage and performance results in line with our theoretical calculations and demonstrate memory state query response times of less than 200ms for trace files up to 60 million lines.
可利用性分析是试图确定程序中的漏洞是否可利用的过程。模糊测试是发现此类漏洞的一种流行方法,在这种方法中,程序受到数百万生成的程序输入的影响,直到它崩溃。每个程序崩溃都表明一个潜在的漏洞,需要根据其被利用的可能性对其进行优先级排序。安全分析人员需要通过重新执行带有导致崩溃的输入的程序来调查优先级最高的漏洞,同时记录所有已执行的汇编指令的跟踪,然后对结果跟踪执行分析。在崩溃时或在跟踪中的任何其他点重新创建程序的整个内存状态,对于帮助分析人员理解导致崩溃的条件非常重要。不幸的是,即使是跟踪一个小程序也可能创建数百万行跟踪文件,从中重建内存状态是一个计算密集型的过程,实际上不可能手动完成。本文分析了从非常大的执行轨迹中重构存储器状态的问题。我们报告了一种从执行跟踪中重建程序的整个内存状态的新方法,该方法允许在程序执行跟踪中的任何点对内存状态进行近乎实时的查询。最后,我们对我们的方法进行了基准测试,显示存储和性能结果与我们的理论计算一致,并演示了对于多达6000万行的跟踪文件,内存状态查询响应时间小于200ms。
{"title":"Reconstructing program memory state from multi-gigabyte instruction traces to support interactive analysis","authors":"B. Cleary, P. Gorman, Eric Verbeek, M. Storey, M. Salois, F. Painchaud","doi":"10.1109/WCRE.2013.6671279","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671279","url":null,"abstract":"Exploitability analysis is the process of attempting to determine if a vulnerability in a program is exploitable. Fuzzing is a popular method of finding such vulnerabilities, in which a program is subjected to millions of generated program inputs until it crashes. Each program crash indicates a potential vulnerability that needs to be prioritized according to its potential for exploitation. The highest priority vulnerabilities need to be investigated by a security analyst by re-executing the program with the input that caused the crash while recording a trace of all executed assembly instructions and then performing analysis on the resulting trace. Recreating the entire memory state of the program at the time of the crash, or at any other point in the trace, is very important for helping the analyst build an understanding of the conditions that led to the crash. Unfortunately, tracing even a small program can create multimillion line trace files from which reconstructing memory state is a computationally intensive process and virtually impossible to do manually. In this paper we present an analysis of the problem of memory state reconstruction from very large execution traces. We report on a novel approach for reconstructing the entire memory state of a program from an execution trace that allows near realtime queries on the state of memory at any point in a program's execution trace. Finally we benchmark our approach showing storage and performance results in line with our theoretical calculations and demonstrate memory state query response times of less than 200ms for trace files up to 60 million lines.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"91 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122220483","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
MemPick: A tool for data structure detection MemPick:数据结构检测工具
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671327
I. Haller, Asia Slowinska, H. Bos
Most current techniques for data structure reverse engineering are limited to low-level programming constructs, such as individual variables or structs. In practice, pointer networks connect some of these constructs, to form higher level entities like lists and trees. The lack of information about the pointer network limits our ability to efficiently perform forensics and reverse engineering. To fill this gap, we propose MemPick, a tool that detects and classifies high-level data structures used in stripped C/C++ binaries. By analyzing the evolution of the heap during program execution, it identifies and classifies the most commonly used data structures, such as singly-or doubly-linked lists, many types of trees (e.g., AVL, red-black trees, B-trees), and graphs. We evaluated MemPick on a wide variety of popular libraries and real world applications with great success.
目前大多数数据结构逆向工程技术都局限于低级编程构造,比如单个变量或结构体。在实践中,指针网络将这些结构中的一些连接起来,形成更高层次的实体,如列表和树。缺乏有关指针网络的信息限制了我们有效执行取证和逆向工程的能力。为了填补这一空白,我们提出了MemPick,这是一个检测和分类剥离C/ c++二进制文件中使用的高级数据结构的工具。通过分析堆在程序执行期间的演变,它可以识别和分类最常用的数据结构,例如单链表或双链表、许多类型的树(例如,AVL、红黑树、b树)和图。我们在各种流行的库和实际应用程序上对MemPick进行了评估,并取得了巨大的成功。
{"title":"MemPick: A tool for data structure detection","authors":"I. Haller, Asia Slowinska, H. Bos","doi":"10.1109/WCRE.2013.6671327","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671327","url":null,"abstract":"Most current techniques for data structure reverse engineering are limited to low-level programming constructs, such as individual variables or structs. In practice, pointer networks connect some of these constructs, to form higher level entities like lists and trees. The lack of information about the pointer network limits our ability to efficiently perform forensics and reverse engineering. To fill this gap, we propose MemPick, a tool that detects and classifies high-level data structures used in stripped C/C++ binaries. By analyzing the evolution of the heap during program execution, it identifies and classifies the most commonly used data structures, such as singly-or doubly-linked lists, many types of trees (e.g., AVL, red-black trees, B-trees), and graphs. We evaluated MemPick on a wide variety of popular libraries and real world applications with great success.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116807011","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
Gelato: GEneric language tools for model-driven analysis of legacy software systems Gelato:用于遗留软件系统模型驱动分析的通用语言工具
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671328
Amir Saeidi, Jurriaan Hage, R. Khadka, S. Jansen
We present an integrated set of language-independent (generic) tools for analyzing legacy software systems: Gelato. Like any analysis tool, Gelato consists of a set of parsers, tree walkers, transformers, visualizers and pretty printers for different programming languages. Gelato is divided into a set of components, comprising of a set of language-specific bundles and a generic core. By providing a generic core, Gelato enables building tools for analyzing legacy systems independent of the languages they are implemented in. To achieve this, Gelato consists of a generic extensible imperative language called Kernel which provides a separation between syntactic and semantic analysis. We have adopted model-driven techniques to develop the Gelato tool set which is integrated into the Eclipse environment.
我们提供了一套集成的语言独立(通用)工具来分析遗留软件系统:Gelato。像任何分析工具一样,Gelato包含一组针对不同编程语言的解析器、树漫步器、变形器、可视化器和漂亮的打印机。Gelato被分成一组组件,包括一组特定于语言的包和一个通用核心。通过提供通用核心,Gelato支持构建工具来分析独立于实现遗留系统的语言的遗留系统。为了实现这一点,Gelato使用了一种通用的可扩展命令式语言Kernel,它将语法分析和语义分析分离开来。我们采用了模型驱动技术来开发集成到Eclipse环境中的Gelato工具集。
{"title":"Gelato: GEneric language tools for model-driven analysis of legacy software systems","authors":"Amir Saeidi, Jurriaan Hage, R. Khadka, S. Jansen","doi":"10.1109/WCRE.2013.6671328","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671328","url":null,"abstract":"We present an integrated set of language-independent (generic) tools for analyzing legacy software systems: Gelato. Like any analysis tool, Gelato consists of a set of parsers, tree walkers, transformers, visualizers and pretty printers for different programming languages. Gelato is divided into a set of components, comprising of a set of language-specific bundles and a generic core. By providing a generic core, Gelato enables building tools for analyzing legacy systems independent of the languages they are implemented in. To achieve this, Gelato consists of a generic extensible imperative language called Kernel which provides a separation between syntactic and semantic analysis. We have adopted model-driven techniques to develop the Gelato tool set which is integrated into the Eclipse environment.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129308667","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
Effects of cloned code on software maintainability: A replicated developer study 克隆代码对软件可维护性的影响:一个复制开发人员的研究
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671286
Deb Chatterji, Jeffrey C. Carver, Nicholas A. Kraft, Jan Harder
Code clones are a common occurrence in most software systems. Their presence is believed to have an effect on the maintenance process. Although these effects have been previously studied, there is not yet a conclusive result. This paper describes an extended replication of a controlled experiment (i.e. a strict replication with an additional task) that analyzes the effects of cloned bugs (i.e. bugs in cloned code) on the program comprehension of programmers. In the strict replication portion, the study participants attempted to isolate and fix two types of bugs, cloned and non-cloned, in one of two small systems. In the extension of the original study, we provided the participants with a clone report describing the location of all cloned code in the other system and asked them to again isolate and fix cloned and non-cloned bugs. The results of the original study showed that cloned bugs were not significantly more difficult to maintain than non-cloned bugs. Conversely, the results of the replication showed that it was significantly more difficult to correctly fix a cloned bug than a non-cloned bug. But, there was no significant difference in the amount of time required to fix a cloned bug vs. a non-cloned bug. Finally, the results of the study extension showed that programmers performed significantly better when given clone information than without clone information.
代码克隆是大多数软件系统中常见的现象。它们的存在被认为对维护过程有影响。虽然这些影响之前已经被研究过,但还没有一个结论性的结果。本文描述了一个控制实验的扩展复制(即一个附加任务的严格复制),分析了克隆错误(即克隆代码中的错误)对程序员程序理解的影响。在严格的复制部分,研究参与者试图在两个小系统中的一个中隔离和修复两种类型的错误,克隆和非克隆。在原始研究的扩展中,我们向参与者提供了一份克隆报告,描述了所有克隆代码在另一个系统中的位置,并要求他们再次隔离和修复克隆和非克隆的bug。最初的研究结果表明,克隆的虫子并不比非克隆的虫子更难维护。相反,复制的结果表明,正确修复克隆的错误比修复非克隆的错误要困难得多。但是,修复克隆的bug和修复非克隆的bug所需的时间没有显著差异。最后,研究扩展的结果表明,当提供克隆信息时,程序员的表现明显优于没有克隆信息的程序员。
{"title":"Effects of cloned code on software maintainability: A replicated developer study","authors":"Deb Chatterji, Jeffrey C. Carver, Nicholas A. Kraft, Jan Harder","doi":"10.1109/WCRE.2013.6671286","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671286","url":null,"abstract":"Code clones are a common occurrence in most software systems. Their presence is believed to have an effect on the maintenance process. Although these effects have been previously studied, there is not yet a conclusive result. This paper describes an extended replication of a controlled experiment (i.e. a strict replication with an additional task) that analyzes the effects of cloned bugs (i.e. bugs in cloned code) on the program comprehension of programmers. In the strict replication portion, the study participants attempted to isolate and fix two types of bugs, cloned and non-cloned, in one of two small systems. In the extension of the original study, we provided the participants with a clone report describing the location of all cloned code in the other system and asked them to again isolate and fix cloned and non-cloned bugs. The results of the original study showed that cloned bugs were not significantly more difficult to maintain than non-cloned bugs. Conversely, the results of the replication showed that it was significantly more difficult to correctly fix a cloned bug than a non-cloned bug. But, there was no significant difference in the amount of time required to fix a cloned bug vs. a non-cloned bug. Finally, the results of the study extension showed that programmers performed significantly better when given clone information than without clone information.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121770780","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}
引用次数: 33
Circe: A grammar-based oracle for testing Cross-site scripting in web applications Circe:一个基于语法的oracle,用于测试web应用程序中的跨站点脚本
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671301
Andrea Avancini, M. Ceccato
Security is a crucial concern, especially for those applications, like web-based programs, that are constantly exposed to potentially malicious environments. Security testing aims at verifying the presence of security related defects. Security tests consist of two major parts, input values to run the application and the decision if the actual output matches the expected output, the latter is known as the “oracle”. In this paper, we present a process to build a security oracle for testing Cross-site scripting vulnerabilities in web applications. In the learning phase, we analyze web pages generated in safe conditions to learn a model of their syntactic structure. Then, in the testing phase, the model is used to classify new test cases either as “safe tests” or as “successful attacks”. This approach has been implemented in a tool, called Circe, and empirically assessed in classifying security test cases for two real world open source web applications.
安全性是一个至关重要的问题,特别是对于那些经常暴露在潜在恶意环境中的应用程序,如基于web的程序。安全性测试的目的是验证是否存在与安全性相关的缺陷。安全测试由两个主要部分组成:运行应用程序的输入值,以及判断实际输出是否与预期输出匹配,后者被称为“oracle”。在本文中,我们提出了一个构建安全oracle的过程,用于测试web应用程序中的跨站点脚本漏洞。在学习阶段,我们分析在安全条件下生成的网页,以学习其语法结构的模型。然后,在测试阶段,该模型用于将新的测试用例分类为“安全测试”或“成功攻击”。这种方法已经在一个叫做Circe的工具中实现,并在两个真实世界的开源web应用程序的安全测试用例分类中进行了经验评估。
{"title":"Circe: A grammar-based oracle for testing Cross-site scripting in web applications","authors":"Andrea Avancini, M. Ceccato","doi":"10.1109/WCRE.2013.6671301","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671301","url":null,"abstract":"Security is a crucial concern, especially for those applications, like web-based programs, that are constantly exposed to potentially malicious environments. Security testing aims at verifying the presence of security related defects. Security tests consist of two major parts, input values to run the application and the decision if the actual output matches the expected output, the latter is known as the “oracle”. In this paper, we present a process to build a security oracle for testing Cross-site scripting vulnerabilities in web applications. In the learning phase, we analyze web pages generated in safe conditions to learn a model of their syntactic structure. Then, in the testing phase, the model is used to classify new test cases either as “safe tests” or as “successful attacks”. This approach has been implemented in a tool, called Circe, and empirically assessed in classifying security test cases for two real world open source web applications.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115774746","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}
引用次数: 10
CCCD: Concolic code clone detection Concolic代码克隆检测
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671332
Daniel E. Krutz, Emad Shihab
Code clones are multiple code fragments that produce similar results when provided the same input. Prior research has shown that clones can be harmful since they elevate maintenance costs, increase the number of bugs caused by inconsistent changes to cloned code and may decrease programmer compre-hensibility due to the increased size of the code base. To assist in the detection of code clones, we propose a new tool known as Concolic Code Clone Discovery (CCCD). CCCD is the first known clone detection tool that uses concolic analysis as its primary component and is one of only three known techniques which are able to reliably detect the most complicated kind of clones, type-4 clones.
代码克隆是在提供相同输入时产生相似结果的多个代码片段。先前的研究表明,克隆可能是有害的,因为它们增加了维护成本,增加了由克隆代码的不一致更改引起的错误数量,并且由于代码库的大小增加,可能会降低程序员的可理解性。为了帮助检测代码克隆,我们提出了一种称为Concolic code Clone Discovery (CCCD)的新工具。CCCD是第一个已知的克隆检测工具,使用结肠分析作为其主要成分,是仅有的三种已知技术之一,能够可靠地检测最复杂的克隆类型,4型克隆。
{"title":"CCCD: Concolic code clone detection","authors":"Daniel E. Krutz, Emad Shihab","doi":"10.1109/WCRE.2013.6671332","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671332","url":null,"abstract":"Code clones are multiple code fragments that produce similar results when provided the same input. Prior research has shown that clones can be harmful since they elevate maintenance costs, increase the number of bugs caused by inconsistent changes to cloned code and may decrease programmer compre-hensibility due to the increased size of the code base. To assist in the detection of code clones, we propose a new tool known as Concolic Code Clone Discovery (CCCD). CCCD is the first known clone detection tool that uses concolic analysis as its primary component and is one of only three known techniques which are able to reliably detect the most complicated kind of clones, type-4 clones.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129423952","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
On the effectiveness of accuracy of automated feature location technique 自动特征定位技术精度的有效性研究
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671313
T. Ishio, Shinpei Hayashi, H. Kazato, T. Oshima
Automated feature location techniques have been proposed to extract program elements that are likely to be relevant to a given feature. A more accurate result is expected to enable developers to perform more accurate feature location. However, several experiments assessing traceability recovery have shown that analysts cannot utilize an accurate traceability matrix for their tasks. Because feature location deals with a certain type of traceability links, it is an important question whether the same phenomena are visible in feature location or not. To answer that question, we have conducted a controlled experiment. We have asked 20 subjects to locate features using lists of methods of which the accuracy is controlled artificially. The result differs from the traceability recovery experiments. Subjects given an accurate list would be able to locate a feature more accurately. However, subjects could not locate the complete implementation of features in 83% of tasks. Results show that the accuracy of automated feature location techniques is effective, but it might be insufficient for perfect feature location.
已经提出了自动特征定位技术来提取可能与给定特征相关的程序元素。更准确的结果将使开发人员能够执行更准确的特性定位。然而,几个评估可追溯性恢复的实验表明,分析人员不能为他们的任务利用准确的可追溯性矩阵。由于特征定位处理特定类型的可追溯性链接,因此在特征定位中是否可见相同的现象是一个重要的问题。为了回答这个问题,我们进行了一项对照实验。我们要求20名受试者使用人工控制精度的方法列表来定位特征。结果与可追溯性恢复实验不同。给受试者一个准确的列表将能够更准确地定位一个特征。然而,在83%的任务中,受试者无法找到功能的完整实现。结果表明,自动特征定位技术的精度是有效的,但对于完美的特征定位可能存在不足。
{"title":"On the effectiveness of accuracy of automated feature location technique","authors":"T. Ishio, Shinpei Hayashi, H. Kazato, T. Oshima","doi":"10.1109/WCRE.2013.6671313","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671313","url":null,"abstract":"Automated feature location techniques have been proposed to extract program elements that are likely to be relevant to a given feature. A more accurate result is expected to enable developers to perform more accurate feature location. However, several experiments assessing traceability recovery have shown that analysts cannot utilize an accurate traceability matrix for their tasks. Because feature location deals with a certain type of traceability links, it is an important question whether the same phenomena are visible in feature location or not. To answer that question, we have conducted a controlled experiment. We have asked 20 subjects to locate features using lists of methods of which the accuracy is controlled artificially. The result differs from the traceability recovery experiments. Subjects given an accurate list would be able to locate a feature more accurately. However, subjects could not locate the complete implementation of features in 83% of tasks. Results show that the accuracy of automated feature location techniques is effective, but it might be insufficient for perfect feature location.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130596442","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
Analyzing PL/1 legacy ecosystems: An experience report 分析PL/1遗留生态系统:一份经验报告
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671320
Erika Aeschlimann, M. Lungu, Oscar Nierstrasz, Carl F. Worms
This paper presents a case study of analyzing a legacy PL/1 ecosystem that has grown for 40 years to support the business needs of a large banking company. In order to support the stakeholders in analyzing it we developed St1-PL/1 - a tool that parses the code for association data and computes structural metrics which it then visualizes using top-down interactive exploration. Before building the tool and after demonstrating it to stakeholders we conducted several interviews to learn about legacy ecosystem analysis requirements. We briefly introduce the tool and then present results of analysing the case study. We show that although the vision for the future is to have an ecosystem architecture in which systems are as decoupled as possible the current state of the ecosystem is still removed from this. We also present some of the lessons learned during our experience discussions with stakeholders which include their interests in automatically assessing the quality of the legacy code.
本文介绍了一个案例研究,分析了一个遗留的PL/1生态系统,该生态系统已经发展了40年,以支持一家大型银行公司的业务需求。为了支持利益相关者分析它,我们开发了St1-PL/1——一个解析关联数据代码并计算结构指标的工具,然后使用自顶向下的交互式探索将其可视化。在构建工具之前和向涉众演示之后,我们进行了几次访谈,以了解遗留生态系统分析需求。我们简要介绍了该工具,然后给出了案例分析的结果。我们表明,尽管未来的愿景是拥有一个系统尽可能解耦的生态系统架构,但生态系统的当前状态仍然与此相去甚远。我们还展示了在与涉众的经验讨论中获得的一些经验教训,包括他们对自动评估遗留代码质量的兴趣。
{"title":"Analyzing PL/1 legacy ecosystems: An experience report","authors":"Erika Aeschlimann, M. Lungu, Oscar Nierstrasz, Carl F. Worms","doi":"10.1109/WCRE.2013.6671320","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671320","url":null,"abstract":"This paper presents a case study of analyzing a legacy PL/1 ecosystem that has grown for 40 years to support the business needs of a large banking company. In order to support the stakeholders in analyzing it we developed St1-PL/1 - a tool that parses the code for association data and computes structural metrics which it then visualizes using top-down interactive exploration. Before building the tool and after demonstrating it to stakeholders we conducted several interviews to learn about legacy ecosystem analysis requirements. We briefly introduce the tool and then present results of analysing the case study. We show that although the vision for the future is to have an ecosystem architecture in which systems are as decoupled as possible the current state of the ecosystem is still removed from this. We also present some of the lessons learned during our experience discussions with stakeholders which include their interests in automatically assessing the quality of the legacy code.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130775250","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
期刊
2013 20th Working Conference on Reverse Engineering (WCRE)
全部 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