Man kann an eine Exe beliebig viele Daten anhängen.
Nach dem Erstellen der Exe diese zum Schreiben öffenen. Ans Ende der Exe gehen und dort den Hash (z. B. MD5) des Passwortes ablegen. Die Exe wird dadurch um die Länge des Hashes größer.
Soll das Passwort geprüft werden, so öffnet man die Exe zum Lesen geht ans Ende minus Länge des Hashes Byte und liest der Länge des Hashes entsprechend viele Bytes. Der gelesene Wert muss mit dem Hash des Passwortes übereinstimmen.
Nur, falls das jemand so implementieren will:
Man sollte zusätzlich zu den Nutzdaten einen möglichst eindeutigen Marker (vor und hinter den Daten) schreiben und diesen auch jedes Mal vor dem Zugriff überprüfen. Eine einfache Prüfsumme über diese Daten hat auch was. Sonst kommt nämlich irgendwann ein anderes Programm und hängt ebenfalls Daten an (z.B. gnugettext oder jcldebug) und schon knallt es und man sucht ewig den Fehler an der falschen Stelle.