Mit ReadProcessMemory kommst Du nicht weit. UPX entpackt die Anwendung im Speicher und stellt dabei im Speicher jegliche Header wieder her. Es handelt sich bei jeglichen Merkmalen, die UPX hinterlässt immer nur um Kleinigkeiten.
ReadProcessMemory wäre, wenn es sich um den eigenenn Process handelt 1. Overhead und 2. Unnötig. Lern die MZ\PE-Header lesen und vergleich dann mal die Details
Wenn man aber nicht mal mit der grundlegenden API zurechtkommt, sollte man sich mit solchen Dingen nicht beschäftigen. Aufwand zum Aushebeln: < 15 Minuten ...
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.