본문으로 바로가기

[TEB,PEB 기반] PEB.NtGlobalFlag

category Reversing/Anti Debugging 2015. 3. 26. 12:08

PEB.NtGlobalFlag를 이용한 안티디버깅 - Inline Assembly 접근 방식
PEB(Process Environment Block)에는 실행 중인 프로세스에 대한 정보가 담겨 있으며 PEB의 NtGlobalFlags 멤버는 해당 프로세스가 디버깅 중인 경우 0x70(FLG_HEAPENABLE_TAIL_CHECK(0x10), FLG_HEAP_ENABLE_FREE_CHECK(0x20), FLG_HEAP_VALIDATE_PARAMETERS(0x40)), 아닐 경우 0 값을 가지고 있으며, 이를 이용하여 안티 디버깅을 수행
PEB에 접근하는 코드는 앞에 PEB 접근 방식을 참고
-> http://ruinick.tistory.com/39


PEB.NtGlobalFlag 접근 그림

 

소스 코드


안티 디버깅 우회 방법
1. 디버깅 시작 시 PEB.NtGlobalFlag 멤버 값을 0으로 수정

2. 디버거의 안티디버깅 플러그인 이용(ex : OllyDbg의 OllyAdvanced Plug-In을 이용)