I guess I should be flattered that someone decided to set up a project or assignment around reverse engineering my software
Seriously however, if you are starting from the point of not knowing a programming language, and not knowing which IDE to use, there is really no hope of just jumping in the deep end and getting it done. What you really need to be looking at is going to get a solid education first. Everyone who had a hand in writing our code has a degree computer science and 10+ years of experience coding.
Ignoring the question of legality, there is also zero chance of you just nicking our code and calling it your own, given your level of expertise. It would be a long detailed exercise to hack out the machine code for this particular function and turn in back into a standalone tool. Our code is more complex than it might initially appear. It looks inside Zip files, Email archives, does direct access into disk images via the MFT, can compare branches in the Windows registry, deals with re-parse points, use multiple hash algorithms, etc... It also does careful memory management to allow millions of files to be compared at a time with limited RAM. I am guessing you don't need a lot of this, in which case it would be quicker writing something from scratch, even though technically it isn't impossible to rip off our code.
For the record the source code is C++ in Visual Studio 2010. Assuming this is a class assignment here is a hint. The key to getting this to work well for large data sets is recursion, good memory management and fast sorting algorithms.
↧