I would have to say as a Software Engineer currently that a good developer would comment their code unfortunately there are a lot of good developers who don’t comment their code very well or not at all, because they have never been required too therefore the comments get left out.
But there are ways to see who did what or what has changed. Visual Studio is used a lot these days for C#, Vb.net and such so if its something that uses classes, or web or something you should be able to download that solution from Microsoft and open it up and debug it and search for differences and likes within the code. I believe they have a free trial on that too so you wouldnt have to purchase it.
May be another way is to see whether from comparison the original code and stolen code have an identical flaw. Such that the flaw becomes a fingerprint to its original….
While there are automated semantic analyzers which have been used, for example, to compare literature in an attempt to determine authorship, these types of tools are far less successful in programming, in part because syntax and semantics varies between programming languages.
I have worked on a couple of cases involving alleged misappropriations of trade secrets and software copyright infringement and the kind of analysis to which you refer can be painstaking, detailed and requires a credible source such as a recognized software engineer.
In one case, it was relatively easy as the individual had copied the macros word for word. In another, the original program had been written using VB and ASP and the alleged infringing code was written in Java using Websphere. This case involved looking at how the programs were organized, the flow of control and execution, the compartmentalization of functionality, and many other features which would escape detection by any automated process.
Furthermore, the issue of copyright and trade secret infringement is not so straightforward when in comes to software engineering in part because of issues such as prior art, whether the product is a innovation, whether the algorithm or approach was so obvious that no one can lay claim to having discovered or invented it. For example, many cases alleging that a program's "look and feel" are copyrightable have been thrown out on the grounds that many of the features of the look and feel are dictatated by the nature of the business process which is not, itself, copyrightable.
As a prior poster noted, finding similar flaws would helpful (some dictionary publishers insert "flaws" to detect illegal copying). Another would be if the program embodied some type of knowledge of the client or users business processes which would not be widely known.
As an example, one case was about two contractors, one of whom had at one time worked for the other but was now a competitor. The first contractor had a very sophisticated system for bidding jobs which took into account local weather conditions (lost work days), availability of materials, labor costs, shipping costs, etc.. which allowed him to very accurately bid jobs. He alleged that the other man had stolen his costing algorithms. The proof hung on the fact that included in the first contractor's system was knowledge of specific discounts that this contractor had been given by various suppliers due to his long standing in the business. These discounts would not have been made available to the second contractor starting a new business.
This case was decided on the basis that the program embodied knowledge which was only available to one of the parties and, therefore, finding it in the presence of the other was evidence that it had been appropriated.