Wenn jemand den Systemcall selbst ausführt, bist du schutzlos. Am Ende hilft nur ein Treiber.
Es geht aber ziemlich einfach, wenn du deinem Prozess einen vernünftigen Security Descriptor verpasst. Die DACL kann dann das Lesen verhindern und mit der SACL kannst du automatisch Logs erstellen lassen. Zumindest den Teil mit der DACL habe ich
hier beschrieben.