Sign in to follow this  
JohnsonGPS

Looking for smarter tools to compare the similarity between software

Recommended Posts

I know those kind of software that compare the software based on "codes similarity", such as Windiff or comp. It is pretty easy to fool these kind of tools, since if we change the variable names, or repelace while with do, if with switch, or similar tricks to an existing software, the tools will tell us the existing software is different from its variants, since it compare the software based on characters and strings. I am looking for a smarter tools, which can do the job in a better ways. For example, compare the memory usage and allocation of two piece of software. So if you only do some superficial changes or facelift works to an existing software, the tools will report the new software is very similar to its precedent, and better to give a number to represent the similarity. Anybody heard of this kind of tools? Thanks in advance. Johnson

Share this post


Link to post
Share on other sites
Doesn't seem helpful. Sort of reminds me of the Halting Problem, which cannot be solved in the general case.

If you consider a cosmetic change to be one that does not alter the output of the program, or the output of the compiler compiling the program, than you could simply take either the output of said program or its generated assembly (the latter is a better option, since it may be difficult to impossible to reproduce accurately the entire range of the program's output) and run a diff tool on that directly. Cosmetic changes shouldn't alter the generated assembly whereas functional changes will. Take the number of changes and massage that into some kind of heuristic value. But the value would be compiler specific, and even if it wasn't, what exactly would this tell you?

Incidentally, the "dumb" nature of diff programs like WinDiff is a desirable feature, most of the time.

Share this post


Link to post
Share on other sites
Nypyren. you got me. I will compare neither the source level or executable level.

jpetrie, you are right. Cosmetic changes cannot cheat assembles, but, some ticks can. For example, changes on the order of variables and functions declaration and definitions. I will find a better way to solve this kind of problems.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this