Debugなんたらという、WindowsのAPIがある。
デバッグしている時には、そのプロセスにデバッグモードを示す状態がつくので
(確かシングルステップの場合はそれ専用の特殊な状態だったはず)
その状態を見れば、デバッガを防ぐことが出来るよ。

詳しく知りたければ、昔書いたソースを調べてあげるよ