안티디버깅 - NTGlobalFlag , BeingDebugged
Reverse Engineering/Info :
2009/07/06 01:05
안티 디버깅 기법 중에서 NTGlobalFlag와 BeingDebugged에 관한 정보.
위 2가지는 PEB 구조체에 속해있다.
PEB = Process Environment Block - ' FS:[0x30] '
NTGlobalFlag = PEB + 0x68 주소
반환값이 0일경우 , 디버깅중이 아님. 0이 아닌 다른값일경우 , 디버깅 중으로 판단.
NTGlobalFlag 디버깅 감지 루틴의 예
mov eax,fs:[0x30] // PEB 구조체 주소에 접근 : EAX=7FFDE000
mov eax,[eax+0x68] //EAX=7FFDE068 의 값 = 디버거가 실행중일 경우 0x70
and eax,0x70 // 0x70와 and 연산을 해서 0일경우 debugging 중이 아님. 0이 아닐경우 debugging 중
BeingDebugged = PEB + 0x02 주소
반환값이 1일경우 , 디버깅 당함. 0일경우 디버깅 X
BeingDebugged 디버깅 감지루틴의 예
mov eax,fs:[0x30] // PEB 구조체 주소에 접근 : EAX = 7FFDE000
mov eax,[eax+2] //EAX = 7FFDE002의 값 = 디버거가 실행중일 경우 1
'Reverse Engineering > Info' 카테고리의 다른 글
| 안티디버깅 - NTGlobalFlag , BeingDebugged (0) | 01:05:45 |
|---|---|
| 리버스 코드엔진 세미나 참석 결정 (0) | 2009/06/19 |
| 우리나라 리버싱 서적에도 한줄기 희망이.. (6) | 2009/05/22 |
| OpenProcess의 권한... (2) | 2009/03/27 |
| 리버싱은 무엇인가, 어떻게 배우는것인가 궁금해 하시는분들을 위해.. (7) | 2009/02/28 |
| Stored Program Concept에 대한 간단한 설명..(폰노이만 구조) (0) | 2009/02/10 |



댓글을 달아 주세요