CheckPointer is a memory access validator for checking spatial and temporal pointer usage errors in multi-threaded applications by tracking meta data and validating pointer dereferences at run-time. The tool uses sour...
详细信息
ISBN:
(纸本)9780769543475
CheckPointer is a memory access validator for checking spatial and temporal pointer usage errors in multi-threaded applications by tracking meta data and validating pointer dereferences at run-time. The tool uses source-to-source transformations implemented with DMS to instrument the sourcecode of the application to be validated with meta data checks. Libraries available only in binary form are handled by using function wrappers that check meta data immediately before calling a library function and update meta data as necessary immediately after the library function returns.
Models-abstract and simple descriptions of some artifact-are the backbone of all software engineering activities. While writing models is hard, existing code can serve as a source for abstract descriptions of how soft...
详细信息
ISBN:
(纸本)9780769541785
Models-abstract and simple descriptions of some artifact-are the backbone of all software engineering activities. While writing models is hard, existing code can serve as a source for abstract descriptions of how software behaves. To infer correct usage, codeanalysis needs usage examples, though;the more, the better. We have built a lightweight parser that efficiently extracts API usage models from sourcecode-models that can then be used to detect anomalies. Applied on the 200 million lines of code of the Gentoo Linux distribution, we would extract more than 15 million API constraints, encoding and abstracting the "wisdom of Linux code".
sourcecodeanalysis to detect code cloning, code plagiarism, and code reuse suffers from the problem of pervasive code modifications, i.e. transformations that may have a global effect. We compare 30 similarity detec...
详细信息
ISBN:
(纸本)9781509038497
sourcecodeanalysis to detect code cloning, code plagiarism, and code reuse suffers from the problem of pervasive code modifications, i.e. transformations that may have a global effect. We compare 30 similarity detection techniques and tools against pervasive code modifications. We evaluate the tools using two experimental scenarios for Java sourcecode. These are (1) pervasive modifications created with tools for sourcecode and bytecode obfuscation and (2) sourcecode normalisation through compilation and decompilation using different decompilers. Our experimental results show that highly specialised sourcecode similarity detection techniques and tools can perform better than more general, textual similarity measures. Our study strongly validates the use of compilation/decompilation as a normalisation technique. Its use reduced false classifications to zero for six of the tools. This broad, thorough study is the largest in existence and potentially an invaluable guide for future users of similarity detection in sourcecode.
JavaScript is a popular attack vector for releasing malicious payloads on unsuspecting Internet users. Authors of this malicious JavaScript often employ numerous obfuscation techniques in order to prevent the automati...
详细信息
ISBN:
(纸本)9781728192482
JavaScript is a popular attack vector for releasing malicious payloads on unsuspecting Internet users. Authors of this malicious JavaScript often employ numerous obfuscation techniques in order to prevent the automatic detection by antivirus and hinder manual analysis by professional malware analysts. Consequently, this paper presents SAFE- DEOBS, a JavaScript deobfuscation tool that we have built. The aim of SAFE- DEOBS is to automatically deobfuscate JavaScript malware such that an analyst can more rapidly determine the malicious script's intent. This is achieved through a number of static analyses, inspired by techniques from compiler theory. We demonstrate the utility of SAFE-DEOBS through a case study on real-world JavaScript malware, and show that it is a useful addition to a malware analyst's toolset.
The srcML toolkit for lightweight transformation and fact-extraction of sourcecode is described. srcML is an XML format for C/C++/Java sourcecode. The open source toolkit that includes the source-to-srcML and srcML-...
详细信息
ISBN:
(纸本)9780769543475
The srcML toolkit for lightweight transformation and fact-extraction of sourcecode is described. srcML is an XML format for C/C++/Java sourcecode. The open source toolkit that includes the source-to-srcML and srcML-to-source translators for round-trip reverse engineering is freely available. The direct use of XPath and XSLT is supported, an archive format for large projects is included, and a rich set of input and output formats through a command-line interface is available. Applying transformations and formulating queries using srcML is very convenient. Application use-cases of transformations and fact-extraction are shown and demonstrated to be practical and scalable.
Energy efficiency can have a significant influence on user experience of mobile devices such as smartphones and tablets. Although energy is consumed by hardware, software optimization plays an important role in saving...
详细信息
ISBN:
(纸本)9781509038497
Energy efficiency can have a significant influence on user experience of mobile devices such as smartphones and tablets. Although energy is consumed by hardware, software optimization plays an important role in saving energy, and thus software developers have to participate in the optimization process. The sourcecode is the interface between the developer and hardware resources. In this paper, we propose an energy-optimization framework guided by a sourcecode energy model that allows developers to be aware of energy usage induced by the code and to apply very targeted source-level refactoring strategies. The framework also lays a foundation for the code optimization by automatic tools. To the best of our knowledge, our work is the first that achieves this for a high-level language such as Java. In a case study, the experimental evaluation shows that our approach is able to save from 6.4% to 50.2% of the CPU energy consumption in various application scenarios.
The PHP language has undergone many changes in its syntax and grammar, with respect to both features the language has to offer as well as the distribution of language features used by programmers in their projects. We...
详细信息
ISBN:
(纸本)9781665496094
The PHP language has undergone many changes in its syntax and grammar, with respect to both features the language has to offer as well as the distribution of language features used by programmers in their projects. We present a novel method of using grammar usage statistics to calculate a modernity signature for a PHP system, so that we can determine its age. The system will aid developers in choosing whether or not to execute or use a PHP system, without having to perform an extensive inspection.
The sourceMeter SonarQube plug-in is an extension of SonarQube, an open-source platform for managing code quality made by Sonarsource S.A, Switzerland. The plug-in extends the built-in Java codeanalysis engine of Son...
详细信息
ISBN:
(纸本)9780769553047
The sourceMeter SonarQube plug-in is an extension of SonarQube, an open-source platform for managing code quality made by Sonarsource S.A, Switzerland. The plug-in extends the built-in Java codeanalysis engine of SonarQube with FrontEndART's high-end Java codeanalysis engine. Most of SonarQubes original analysis results are replaced (including the detected sourcecode duplications), while the range of available analyses is extended with a number of additional metrics and issue detectors. Additionally, the plug-in offers new GUI features on the SonarQube dashboard and drill-down views, making the SonarQube user experience more comfortable and the work with the tool more productive.
Java 5 has introduced a number 4 new syntactical language features that make development faster, easier, and safer. However, at the same time, it has also introduced downward incompatibilities: code written for Java 5...
详细信息
ISBN:
(纸本)9780769537931
Java 5 has introduced a number 4 new syntactical language features that make development faster, easier, and safer. However, at the same time, it has also introduced downward incompatibilities: code written for Java 5 cannot be used on pre-Java 5 platforms. This tool demonstration presents a number of source-to-source transformations that backport sourcecode written for the Java 5 platform to legacy platforms. Developers who are, for different reasons, still bound to legacy platforms can benefit with help of this tool front the new language,features, and they can use third-party components written for more recent platforms. Compared to twisting tools, ours is the first that can backport all new syntactical Java 5 language features while the user maintains full control of the sourcecode.
Meaningful, expressive identifiers in sourcecode can enhance the readability and reduce comprehension efforts. Over the past years, researchers have devoted considerable effort to understanding and improving the nami...
详细信息
ISBN:
(纸本)9781728149370
Meaningful, expressive identifiers in sourcecode can enhance the readability and reduce comprehension efforts. Over the past years, researchers have devoted considerable effort to understanding and improving the naming quality of identifiers in sourcecode. However, little attention has been given to test code, an important resource during program comprehension activities. To better grasp identifier quality in test code, we conducted a survey involving manually written and automatically generated test cases from ten open source software projects. The survey results indicate that test cases contain low quality identifiers, including the manually written ones, and that the quality of identifiers is lower in test code than in production code. We also investigated the use of three state-of-the-art rename refactoring recommenders for improving test code identifiers. The analysis highlights their limitations when applied to test code and supports mapping out a research agenda for future work in the area.
暂无评论