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 |