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을 이용)
'Reversing > Anti Debugging' 카테고리의 다른 글
[TEB,PEB 기반] Memory Search - Magic Number(0xFEEEFEEE) (0) | 2015.03.26 |
---|---|
[TEB,PEB 기반] ProcessHeap - Flags, ForceFlags (0) | 2015.03.26 |
[TEB,PEB 기반] PEB.BeingDebugged (0) | 2015.03.26 |
[TEB,PEB 기반] PEB 접근 방법 (0) | 2015.03.26 |
[TIME 기반] GetSystemTime (0) | 2015.03.26 |