델마당에 델파이로 되어 있던 건데
빌더에서 적용해도 잘 되기 때문에 옮겼습니다.
#if 1 // 최종 릴리즈시만 적용.
// 안티디버깅.
// 디버깅중이면 예외가 발생하지 않는다.
bool debug = true;
try
{
asm int 3; // 강제 예외.
}
catch(...)
{
debug = false;
}
if (debug)
{
ExitProcess(0);
}
#endif
디버깅을 걸고 실행하면
위 debug 변수가 true 상태를 유지합니다.
그러므로
디버깅 중인지 아닌지 분별하는 코드로 활용할 수 있습니다.
추적자를 따돌리는 코드로 사용하면 되는데,
물론 노련한 추적자는 위 코드의 어셈블리 코드를 보면
수정하는 방법을 쓰겠지만,
노련한 추적자는 극히 드물기 때문에.
|