Irgendwas stimmt an deiner Geschichte nicht.
Undzwar gibt es keinen Decompiler für C++. Wenn dein Freund einen hätte, wäre er schon Millionär.
Ich lese jetzt zweierlei sachen aus deinem Beitrag raus.
1. Dass du den Source zurückbekommen hast,
2. Dass du deine Anwendung vor Disassemblern schützen willst.
Was ansich zwei Grundverschiedene sachen sind.
Ein Decompiler, stellt den ursprünglichen Quellcode wiederher. Sprich du Programmierst etwas öffnest das Programm mit dem Decompiler und erhälst den Source Code. So wie es z.B. bei AutoIt ist. Dort gibt es einen Decompiler aus dem du die exe wieder in eine *.au3 machen kannst.
Beim Disassemblen wird das Programm sogesehen zerlegt und du siehst die Funktionsweise des Programmes, aber in ASM!
Man kann nun, durch reverse engeneering teilweise den Quellcode wiederherstellen indem man selbst den asm Code Interpretiert. Es gibt auch Plugins z.B. für IDA die das automatisch machen, dann bekommst du halt den Code in C. Natürlich mit veränderten cryptischen Variablennamen usw. Klasseninformationen usw. gibt der aber nicht aus.
Wirklich schützen für Debuggern und Disassemblern kann man sich eigentlich nicht. Es ist wie man so schön sagt nichts 100%ig.
Es gibt zwei versch. exe-packer.
Einmal gibt es UPX und ähnliche, die einfach bestimmte Segmente Komprimieren und die EXE dadurch auch kleiner wird. Bietet auch z.B. Schutz vor solchen Programmen wie Ressource Hacker usw. ist aber kein richtiger Schutz.
Dann gibt es noch Themida, ASProtect usw. diese haben richtige anti-debugger funktionen für Erkennung von Debuggern usw. Aber man kann alle gepackten Programme auch wieder entpacken (unpacken).
Solche Packer mit schutzfunktionen wie themida, aspack/asprotect usw. kosten normalerweise immer Geld. Einfach weil viel Arbeit drin steckt.
UPX und ähnliche gibt es meist Kostenlos. UPX, RSPack, usw. auf programmerstools.org findest du eine Sammlung.