본문 바로가기

컴터 때찌/Reversing

[어셈블리어+구조체] fs:[0], fs:[30]


fs:[0]  => TEB(Thread Environment Block)

fs:[30] => PEB(Process Environment Block)



kd> dt _PEB

ntdll!_PEB

   +0x000 InheritedAddressSpace : UChar

   +0x001 ReadImageFileExecOptions : UChar

   +0x002 BeingDebugged    : UChar   // 디버깅 체크 (1이면 디버깅중)

   +0x00c Ldr              : Ptr32 _PEB_LDR_DATA  //프로세스에 로드 된 모듈(첫번째 kernel32.dll)

   +0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS_PARAMETERS

   +0x018 ProcessHeap      : Ptr32 Void  // ProcessHeap+0x40=Flags, ProcessHeap+0x44=ForceFlags

   +0x068 NtGlobalFlag     : Uint4B  // 디버깅 체크 (0x70 이면 디버깅중)


kd> dt _PEB_LDR_DATA

 nt!_PEB_LDR_DATA

   +0x000 Length           : Uint4B

   +0x004 Initialized      : UChar

   +0x008 SsHandle         : Ptr32 Void

   +0x00c InLoadOrderModuleList : _LIST_ENTRY  //메모리에 로드된 순서

   +0x014 InMemoryOrderModuleList : _LIST_ENTRY  //메모리에 위치한 순서

   +0x01c InInitializationOrderModuleList : _LIST_ENTRY // 초기화된 순서

   +0x024 EntryInProgress  : Ptr32 Void

kd> dt _LIST_ENTRY

 nt!_LIST_ENTRY

   +0x000 Flink            : Ptr32 _LIST_ENTRY

   +0x004 Blink            : Ptr32 _LIST_ENTRY





http://msdn.microsoft.com/en-gb/library/windows/desktop/aa813706%28v=vs.85%29.aspx

http://msdn.microsoft.com/en-gb/library/aa813708%28VS.85%29.aspx