For binary auditing, one of the hands-down best tools that you must have is the Interactive Disassembler, also better known as IDA Pro. It is a must have when you need to audit without access to the source code. Someone proficient in using IDA Pro will be able to tell you, with a reasonable amount of confidence, if there have been anything more than superficial changes to the source code. In this context, superficial changes would encompass things like variable renaming within the source files or changing the order of variable, function or class declarations and definitions. They will be able to tell you if the basic code blocks making up the executables have differences between them substantial enough to be flagged as suspicious, in the sense that there is a high probability that the differences are indicative of a source-level difference.
I say more or less, because there are several ways in which two executables generated from the exact same source tree could still have subtle, and on occasion not so subtle, differences between each other. Factors that can influence the generation of the executables include:
- compiler optimization settings
- differing versions of libraries the executables are linked with
- changes to header files, external to the source tree used to build the executables, which were included by the C++ preprocessor before the compilation step
- an executable that manipulates its own code at runtime, which may include decompressing or decrypting on the fly some part of itself into some area of memory it can jump to
And this list could go on for a while.
Is the sort of binary audit you are suggesting possible? Yes, a person with enough knowledge and skill could do this. Hackers do this all the time. And if the person doing the analysis is good enough, they will be able to tell you exactly how confident they are in their assessment as well.
Ultimately it becomes a question of feasibility. How much are you willing to spend on this audit? Hiring or contracting someone who can do this may push beyond what is budgeted for such auditing, is there enough money to do this? How complex is the software you are testing? What is the nature of your relationship with your vendor?
That last question is important because if it is in their best interest to pass this audit, and they realize this, they may be willing to assist you up to a certain degree. This could come in the form of debugging symbols, a list of compiler options which were used or some other artifacts of the build process they are willing to disclose. The preceding can all be very helpful in any analysis where source code is not being made available for the purposes of analysis due to whatever reason. And if access to the source code is available for such a purpose, things become an order of magnitude easier to analyze.
If this is something you would like to pursue on your own, two books I would recommend are The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler by Chris Eagle and The Shellcoder's Handbook: Discovering and Exploiting Security Holes by Chris Anley, John Heasman, Felix Linder and Gerardo Richarte.
Lastly, the techniques and tools developed for analysis of the kind that would help you are still very much active areas of research. Your question either runs deeper than you may realize, or it may have been misunderstood by me. A thorough treatment of your question, even from just a practical standpoint and ignoring the theory that goes along with it, could, and does, fill many books.
I hope you find at least some part of this helpful. Good luck!