PEB란 프로세스 정보를 담고 있는 구조체
TEB.ProcessEnvironmentBlock 멤버가 PEB구조체의 주소
FS:[30] = TEB.ProcessEnvironmentBlock = address of PEB
어셈 코드1
mov eax, DWORD PTR FS:[30]
어셈 코드2
mov eax, DWORD PTR FS:[18] ; FS[18] = address of TEB
mov eax, DWORD PTR DS:[EAX+30] ; DS[EAX+30] = address of PEB
PEB 구조체 - 자세한 것은 WinDbg로 확인
주요 멤버
BeingDebugged -> IsDebuggerPresent 함수다 디버깅을 당하는지 판단하는 함수인데 이 함수가 이 멤버 정보를
참조한다.
위 그림에서 7FFDA002 값 01(TRUE), 디버깅 중이라는 뜻
ImageBaseAddress -> 프로세스의 ImageBase 표시
Ldr -> _PEB_LDR_DATA 구조체의 포인터. 프로세스에 로딩된 모듈의 로딩 베이스 주소를 직접 구할 수 있는
방법 제공
PrecessHeap & NtGlobalFlag -> 프로세스가 디버깅 중이면 이 멤버는 특정한 값을 가짐. 안티 디버깅에 사용됨
NtGlobalFlag 경우 디버깅 중이면 0x70
자세한 내용은 첨부파일 참조

첨부 파일 출처:http://mylabs.tistory.com/25
출처 : 리버싱 핵심 원리