If you want it to be effective, you'd have to hide the debugger api calls,
and make the main program communicate with the parent process more
than just that waitforsingleobject. This is what arma does.
And BTW, against Sice it is completely unusefull
And if I'd like to get over it, I'd bpm address checked by IsDebuggerPresent,
and then just jump over the waitforsingleobject.
Expansions - look at arma nanomites, AsProtect RaiseException and so on...
Anyway, good try.
Regards,
least