C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[1089] 안티디버깅 Anti-Debuging 코드.
김태선 [cppbuilder] 7618 읽음    2012-05-23 11:02
델마당에 델파이로 되어 있던 건데
빌더에서 적용해도 잘 되기 때문에 옮겼습니다.


#if 1    // 최종 릴리즈시만 적용.
    // 안티디버깅.
    // 디버깅중이면 예외가 발생하지 않는다.

    bool debug = true;
    try
    {
        asm int 3;    // 강제 예외.
    }
    catch(...)
    {
        debug = false;
    }
    if (debug)
    {
        ExitProcess(0);
    }
#endif

디버깅을 걸고 실행하면
위 debug 변수가 true 상태를 유지합니다.
그러므로
디버깅 중인지 아닌지 분별하는 코드로 활용할 수 있습니다.

추적자를 따돌리는 코드로 사용하면 되는데,
물론 노련한 추적자는 위 코드의 어셈블리 코드를 보면
수정하는 방법을 쓰겠지만,
노련한 추적자는 극히 드물기 때문에.

+ -

관련 글 리스트
1089 안티디버깅 Anti-Debuging 코드. 김태선 7618 2012/05/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.