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 |