Papers

Using Maximal Slices as a Solution to the 'Output Variable' Problem for Calculating Slice-Based Cohesion Metrics

July 4, 2011 - 12:24

Software metrics are widely used to quantify software quality; cohesion is one such metric. It is a measure of the 'inter-relatedness' of code.

A Survey of Static Software Watermarking

September 17, 2010 - 18:15

Software theft, also known as software piracy, is the act of copying a legitimate application and illegally distributing that software, either free or for profit. The global revenue loss due to software piracy was estimated to be more than $50 billion in 2009. Watermarks can be classified as either static or dynamic. Static watermarks are embedded in the code and/or data of a computer program, whereas dynamic watermarking techniques store a watermark in a program's execution state. In this paper, we present a brief survey of the proposed static watermarking techniques, including a brief explanation of each technique concluding with directions for future work.

A Survey of Software Watermarking by Code Re-Ordering

August 14, 2010 - 22:08

We survey the proposed software watermarking algorithms based on code re-ordering. This family of static watermarks use semantics-preserving transformations to encode a watermark in a permutation of the existing code. We describe the existing techniques and highlight the short-comings of these algorithms, namely that they are highly susceptible to semantics preserving transformations attacks.

An Evaluation of Current Java Bytecode Decompilers

August 10, 2010 - 22:42

Decompilation of Java bytecode is the act of transforming Java bytecode to Java source code. Although easier than that of decompilation of machine code, problems still arise in Java bytecode decompilation. These include type inference of local variables and exception-handling.

Since the last such evaluation (2003) several new commercial, free and open-source Java decompilers have appeared and some of the older ones have been updated.

MPhil Transfer Report

August 7, 2010 - 10:43

Decompilation of Java bytecode is the act of transforming Java bytecode to Java source code. Although easier than that of decompilation of machine code, problems still arise in Java bytecode decompilation. These include type inference of local variables and exception-handling.

We evaluate the currently available Java bytecode decompilers using an extension of the criteria used in a previous original study.  Although there has been a slight improvement since this study, it was found that none passed all of the tests, each of which were designed to target different problem areas.

A Survey of Software Watermarking by Register Allocation (for Java Bytecode)

July 31, 2010 - 13:37

In this paper, we examine register allocation based software watermarking algorithms; these algorithms are constraint-based static software watermarking techniques. Figure 1 shows the evolution of this family of algorithms on which we report previous findings, describe some recent additions (including a correction to a published algorithm) and conclude by suggesting a direction for future work.

An Evaluation of Static Java Bytecode Watermarks

June 10, 2010 - 20:24

The rise in the use of the Internet and bytecode languages such as Java bytecode and Microsoft's Common Intermediate Language have made copying, decompiling and disassembling software easier. The global revenue loss due to software piracy was estimated to be more than $50 billion in 2008. Watermarking is a technique which attempts to protect software by inserting copyright notices or unique indentifiers into software to prove ownership.

Subscribe to Papers