PEB의 역사 : PEB_Evolution.pdf


(Windows XP 환경)


+0x000 InheritedAddressSpace : UChar // 프로세스가 fork되어졌는지를 나타냄.

+0x001 ReadImageFileExecOptions : UChar

+0x002 BeingDebugged : UChar // 프로세스가 디버깅되고 있는지를 나타냄.

+0x003 SpareBool : UChar

+0x004 Mutant : Ptr32 Void

+0x008 ImageBaseAddress : Ptr32 Void

+0x00c Ldr : Ptr32 _PEB_LDR_DATA // 프로세스에 로딩된 DLL 목록

+0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS_PARAMETERS

+0x014 SubSystemData : Ptr32 Void

+0x018 ProcessHeap : Ptr32 Void // 프로세스의 힙 포인터

+0x01c FastPebLock : Ptr32 _RTL_CRITICAL_SECTION

+0x020 FastPebLockRoutine : Ptr32 Void

+0x024 FastPebUnlockRoutine : Ptr32 Void

+0x028 EnvironmentUpdateCount : Uint4B

+0x02c KernelCallbackTable : Ptr32 Void

+0x030 SystemReserved : [1] Uint4B

+0x034 AtlThunkSListPtr32 : Uint4B

+0x038 FreeList : Ptr32 _PEB_FREE_BLOCK

+0x03c TlsExpansionCounter : Uint4B

+0x040 TlsBitmap : Ptr32 Void

+0x044 TlsBitmapBits : [2] Uint4B

+0x04c ReadOnlySharedMemoryBase : Ptr32 Void // 시스템 와이드한 Shared Memory

+0x050 ReadOnlySharedMemoryHeap : Ptr32 Void

+0x054 ReadOnlyStaticServerData : Ptr32 Ptr32 Void

+0x058 AnsiCodePageData : Ptr32 Void

+0x05c OemCodePageData : Ptr32 Void

+0x060 UnicodeCaseTableData : Ptr32 Void

+0x064 NumberOfProcessors : Uint4B // CPU 개수

+0x068 NtGlobalFlag : Uint4B // NT Global Flag

+0x070 CriticalSectionTimeout : _LARGE_INTEGER

+0x078 HeapSegmentReserve : Uint4B // 예약되어 있는 힙메모리의 양

+0x07c HeapSegmentCommit : Uint4B // 할당되어 있는 힙메모리의 양

+0x080 HeapDeCommitTotalFreeThreshold : Uint4B

+0x084 HeapDeCommitFreeBlockThreshold : Uint4B

+0x088 NumberOfHeaps : Uint4B

+0x08c MaximumNumberOfHeaps : Uint4B

+0x090 ProcessHeaps : Ptr32 Ptr32 Void

+0x094 GdiSharedHandleTable : Ptr32 Void

+0x098 ProcessStarterHelper : Ptr32 Void

+0x09c GdiDCAttributeList : Uint4B

+0x0a0 LoaderLock : Ptr32 Void // PE 로더가 프로세스 로딩 중 사용하는 Lock

+0x0a4 OSMajorVersion : Uint4B // Windows의 버전 정보

+0x0a8 OSMinorVersion : Uint4B // Windows의 버전 정보

+0x0ac OSBuildNumber : Uint2B

+0x0ae OSCSDVersion : Uint2B // 서비스팩 버전 정보

+0x0b0 OSPlatformId : Uint4B // Server인지 Workstation인지와 같은 Platform ID

+0x0b4 ImageSubsystem : Uint4B // 프로세스의 서브시스템

+0x0b8 ImageSubsystemMajorVersion : Uint4B

+0x0bc ImageSubsystemMinorVersion : Uint4B

+0x0c0 ImageProcessAffinityMask : Uint4B

+0x0c4 GdiHandleBuffer : [34] Uint4B

+0x14c PostProcessInitRoutine : Ptr32 void

+0x150 TlsExpansionBitmap : Ptr32 Void

+0x154 TlsExpansionBitmapBits : [32] Uint4B

+0x1d4 SessionId : Uint4B

+0x1d8 AppCompatFlags : _ULARGE_INTEGER

+0x1e0 AppCompatFlagsUser : _ULARGE_INTEGER

+0x1e8 pShimData : Ptr32 Void

+0x1ec AppCompatInfo : Ptr32 Void

+0x1f0 CSDVersion : _UNICODE_STRING // 서비스팩 버전 정보에 대한 문자열

+0x1f8 ActivationContextData : Ptr32 Void

+0x1fc ProcessAssemblyStorageMap : Ptr32 Void

+0x200 SystemDefaultActivationContextData : Ptr32 Void

+0x204 SystemAssemblyStorageMap : Ptr32 Void

+0x208 MinimumStackCommit : Uint4B


참고 : 리버싱 핵심원리(책), Windows 구조와 원리(책), MSDN

'Reversing' 카테고리의 다른 글

Static Anti-Debugging 0x02. LDR  (0) 2016.07.06
Static Anti-Debugging 0x01. IsDebuggerPresent()  (0) 2016.07.06
Anti-Debugging  (0) 2016.07.06
TEB 구조  (0) 2016.07.05
Heap, FS, TEB, PEB  (0) 2016.07.05

+ Recent posts