Es gibt ja verschiedene Arten unter Windows etwas zu hooken. Einmal der „saubere“ Weg über SetWindowsHookEx und einmal indem man die ersten paar Bytes der Routine patcht und auf eigenen Code umleitet.
WinAPI-Funktionen haben dafür extra ein paar Dummy-Operationen am Anfang.
Erstmal müsstest du rausfinden, um welche Art von Hook es sich handelt. Mit SetWindowsHookEx lässt sich CreateWindowEx zwar nicht direkt hooken, aber es kann durchaus sein, dass CreateWindowEx noch irgendeine Message an das neuerstellte Fenster schickt, die gehookt sein könnte.
Ich würde als erstes mal mit dem Debugger zur Adresse von SetWindowsHookEx springen und dort gucken, ob direkt am Anfang vielleicht irgendein Sprung-Befehl steht, der auf Patching hindeutet. In dem Fall sollte es relativ einfach sein, den Hook zu umgehen, indem du einfach die Dummy-Operationen an die Stelle zurückkopierst.
Kann dir aber natürlich nicht garantieren, wie das externe Programm auf solche Modifikationen reagiert... falls es sich wirklich um einen Kopierschutz handelt, wer weiß, ob dieser so eine Aktion nicht als „Angriff“ wertet (auch wenn es unberechtigt ist).