I've tried several programs that study the source code and tries to find possible null pointers, unchecked input, possibly dirty data and whatnot, and they all have one problem - false detections. When the program studies the source code and gives you the output of this process, you can quickly decide whether to act on it, fixing the potential bug, ignore the problem as "intended behaviour", or simply correct the syntax so the source code studying application doesn't complain about it anymore.
However, if you were to run this thing, which is only concerned with the binary, wouldn't it have to run again for every single version of your application you distribute? Also, you'd never actually get any patch information back to put into the source, except maybe in binary...
In addition to this, when some programmers take a quick and dirty approach to things to meet deadlines (which are sometimes more important than clean code) how will the program know about your "// DIRTY HACK. WILL FIX LATER, BUT THIS IS NEEDED FOR THE DEMO. FUNCTION X() WILL WORK AS EXPECTED WITH THE TEST DATA" comment in code? Will it try to correct the binary, producing unexpected results?