본문으로 바로가기

[TEB,PEB 기반] PEB.BeingDebugged

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

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

 

PEB.BeingDebugger 접근 그림


소스 코드


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

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

 

참고

앞에서 사용했던 IsDebuggerPresent()는 내부적으로 PEB.BeingDebugger 값을 반환하는 형태로 동작

'Reversing > Anti Debugging' 카테고리의 다른 글

[TEB,PEB 기반] ProcessHeap - Flags, ForceFlags  (0) 2015.03.26
[TEB,PEB 기반] PEB.NtGlobalFlag  (0) 2015.03.26
[TEB,PEB 기반] PEB 접근 방법  (0) 2015.03.26
[TIME 기반] GetSystemTime  (0) 2015.03.26
[TIME 기반] timeGetTime  (0) 2015.03.26