Mir persönlich fällt im Moment keine Möglichkeit ein, die so sicher ist, dass ich sie nicht selbst mit ein paar Zeilen Code umgehen könnte.
Das einfachste wäre du startest dein Programm nocheinmal selbst (d.h. man müsste Aufwand reinstecken um in die zweite Instanz eine
dll VOR Start des Programm zu injecten) und liest direkt beim Start der zweiten Instanz die geladenen Module aus und vergleichst sie in bestimmten Invervallen.
Ist aber nur 4-5 Minuten mehr Arbeit für einen "guten" Hacker, Skriptkiddies (sofern Sie keine stealth.dll laden) erstmla schwerer haben.