じゃ、アンチデバッグコードを書こう。
どうでもいいがVS.NETは結構重い気がする。

昔どこかのスレで見たんだけれど、調べてみたけれどどこかわからなかった。
間違いなく倉庫に行っているとは思うんだけれど、作者の人パクってすまん。

VC++のみでしか使えないのが残念だが、Windowsでのアンチデバッグコード。
デバッグ状態で実行すると異常終了するように出来ている。

bool flag=true;
__try {
    __try {
        DebugBreak();
    }
    __except(GetExceptionCode() == STATUS_BREAKPOINT) {
        flag = false;
    }
}
__finally {
    if(flag) exit(EXIT_FAILURE);
}
// normally execution

これでも十分きついが、さらにわかりにくくするためには
一見何気ないコードの中に動的ランダムにint 3hを入れることにより
ブレークポイント例外を飛ばせばいいんじゃないだろうか。
自分がクラックするときのことを考えると本気で萎えそう。

ちょっと有用なトリッキーコードでした。
今度はかなりトリビアなトリッキーコード行きます。