본문으로 바로가기

[TEB,PEB 기반] PEB 접근 방법

category Reversing/Anti Debugging 2015. 3. 26. 11:51

PEB 접근
프로세스가 실행되는 동안 FS Selector는 TEB의 시작 주소를 가지고 있으며, PEB에는 디버깅 중일 때 특정 값을 갖는 다양한 멤버가 존재

 

 


PEB에 접근하기 위한 코드 또는 방법
1. TEB를 통한 PEB 접근

MOV EAX, FS:[0x18]                        // FS:[0x18] : TEB의 포인터이자, NT_TIB의 포인터
MOV EAX, DWORD PTR [EAX+0x30]  // PEB의 시작 주소 값 얻기



2. Direct로 PEB 접근
MOV EAX, FS:[0x30]                        // FS:[0x30] PEB 시작 주소 값 얻기




3. ZwQueryInformationProcess의 Process_Query_Information을 이용한 접근
ZwQueryInformationProcess의 2번째 인자에 Process_Query_Information을 이용하면 프로세스에 관련된 정보를 구조체 형태로 받을 수 있는데, 여기서 PEB Address를 가지고 있는 멤버를 통해 PEB에 접근


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

[TEB,PEB 기반] PEB.NtGlobalFlag  (0) 2015.03.26
[TEB,PEB 기반] PEB.BeingDebugged  (0) 2015.03.26
[TIME 기반] GetSystemTime  (0) 2015.03.26
[TIME 기반] timeGetTime  (0) 2015.03.26
[TIME 기반] GetTickCount  (0) 2015.03.26