SAFE Corporation Logo
Software Analysis and Forensic Engineering
Newsletter Registration
Free Software DownloadPurchase CodeSuite License

Our Process

SAFE Corporation has developed processes for finding various kinds of IP theft and infringement. CodeSuite gives you the tools to perform this process, but human expertise is still needed to interpret the results.

Finding Copyright Infringement

Using CodeMatch to find a correlation between different programs does not necessarily imply that illicit behavior occurred. There can be correlation between programs for a number of reasons as enumerated below.

  • Third-Party Source Code. It is possible that widely available open source code is used in both programs. Also, libraries of source code can be purchased from third-party vendors. If two different programs use this same code, the programs will have correlation. SourceDetective is used to search the Internet to find third party code.

  • Code Generation Tools. Automatic code generation tools generate software source code using similar or identical identifiers for variables, classes, methods, and properties. Also, the structure of the code generated by these tools tends to fit into a certain template with an identifiable pattern. Two different programs that were developed using the same code generation tool will have correlation. SourceDetective is used to search the Internet to find correlation due to code generation tools.

  • Commonly Used Identifier Names. Certain identifier names are commonly taught in schools or commonly used by programmers in certain industries. For example, the identifier result is often used to hold the result of an operation. These identifiers will be found in many unrelated programs but will result in these programs having correlation. SourceDetective is used to search the Internet to determine whether identifier names are common.

  • Common Algorithms. An algorithm is a procedure or a set of instructions for accomplishing some task. In one programming language there may be an easy or well-understood way of writing a particular algorithm that most programmers use. For example there might be a way to calculate the square root of a number. Perhaps this algorithm is taught in most programming classes at universities or is found in a popular programming textbook. These commonly used algorithms will show up in many different programs, resulting in a high degree of correlation between the programs even though the programs are different and there was no direct contact between the programmers.

  • Common Author. It is possible that one programmer, or "author," will create two programs that have correlation simply because that programmer tends to write code in a certain way. This is the programmer's style of coding. Thus two programs written by the same programmer can have high correlation due to the style being similar even though there was no copying and the functionality of the programs is different.

  • Copying. Code was copied from one program to another causing the programs to have correlation. If authority was not given to copy the code, this constitutes plagiarism.

The process for eliminating each possibility is illustrated in the figure below. If none of the other reasons can be eliminated, the reason for correlation must be copying. If the copying was unauthorized, it constitutes copyright infringement.

Terms & Conditions | Contact Us | Careers | Privacy Policy | Search the Site


Free Newsletter Registration