1. 안티 디버깅이란?
- 디버깅을 방해하고 분석을 방해하는 기술
2. 안티 디버깅을 왜 공부해야하는가?
- 각종 안티 디버깅 기법들의 동작 원리를 파악한 후 회피하기 위해서
- 안티 디버깅 기법을 공부하면서 고급 리버싱을 배울 수 있기 때문에
3. 안티 디버깅의 의존성
- 안티 디버깅 기법은 디버거와 OS에 강한 의존성이 있다.
ex) Ldr, ProcessHeap, GetProcessHeap : XP에서만 효과가 있는 기법
4. 안티 디버깅 기법의 분류
1) Static 안티 디버깅
- 특징 : 디버깅을 시작할 때 한번만 해체를 해주면 해결
- 목적 : 디버거 탐지
- 해체 방법 : API Hooking, Debugger Plugin
2) Dynamic 안티 디버깅
- 특징 : 디버깅을 진행하면서 안티 디버깅을 만날 때마다 해결
- 목적 : 내부 코드와 데이터를 숨김
- 해체 방법 : API Hooking, Debugger Plugin, Utilities
참고 : 리버싱 핵심원리(책), Windows 구조와 원리(책), MSDN
'Reversing' 카테고리의 다른 글
Static Anti-Debugging 0x02. LDR (0) | 2016.07.06 |
---|---|
Static Anti-Debugging 0x01. IsDebuggerPresent() (0) | 2016.07.06 |
PEB 구조 (2) | 2016.07.05 |
TEB 구조 (0) | 2016.07.05 |
Heap, FS, TEB, PEB (0) | 2016.07.05 |