C'è un programma(REC si chiama, non ricordo il link) che ricostruisce il main di un programma in C++ in modo approssimativo.
Come strumenti(chiamiamoli debugger per rimanere in regola con la netiquette) consiglio ollydgb(http://home.t-online.de/home/Ollydbg/odbg108b.zip) o SoftIce(http://vazim.altervista.org/download/si325w98.exe, è il migliore per win32, è commerciale se vuoi spendere).
Un altro strumento utile è Stud_PE(http://christian.gheorghe.free.fr/ph...t=Stud_PE1.8.1), che analizza l'eseguibile trovando packer, dipendenze, api ecc... inoltre trova la firma del compilatore e quindi in che linguaggio è stato scritto il programma.