!peb

调试器用户经常会需要查看在启动调试目标时使用了哪些命令行参数,这个信息是保存在PEB中的,可以通过!peb来获取,这个命令将解析PEB并给出完整的命令行,所有已加载DLL的位置,以及环境变量等.

0:000> !peb
PEB at 7ffdf000InheritedAddressSpace:    NoReadImageFileExecOptions: NoBeingDebugged:            YesImageBaseAddress:         008f0000Ldr                       77847880Ldr.Initialized:          YesLdr.InInitializationOrderModuleList: 00312798 . 0036bd70Ldr.InLoadOrderModuleList:           003126f8 . 0036bd60Ldr.InMemoryOrderModuleList:         00312700 . 0036bd68Base TimeStamp                     Module8f0000 4ce7979d Nov 20 17:40:45 2010 C:\Windows\System32\calc.exe77770000 4ec49b60 Nov 17 13:28:00 2011 C:\windows\SYSTEM32\ntdll.dll77490000 506dbd3e Oct 05 00:45:50 2012 C:\windows\system32\kernel32.dll75a30000 506dbd3f Oct 05 00:45:51 2012 C:\windows\system32\KERNELBASE.dll76240000 4fd2d1d9 Jun 09 12:32:25 2012 C:\windows\system32\SHELL32.dll75c30000 4eeaf722 Dec 16 15:45:38 2011 C:\windows\system32\msvcrt.dll76e90000 4ce7b9e2 Nov 20 20:06:58 2010 C:\windows\system32\SHLWAPI.dll75be0000 4ce7b80a Nov 20 19:59:06 2010 C:\windows\system32\GDI32.dll76020000 4ce7ba26 Nov 20 20:08:06 2010 C:\windows\system32\USER32.dll758e0000 4a5bda19 Jul 14 09:06:33 2009 C:\Windows\System32\LPK.dll75f60000 4ce7ba29 Nov 20 20:08:09 2010 C:\windows\system32\USP10.dll74090000 4f9235ab Apr 21 12:20:59 2012 C:\windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17825_none_72d273598668a06b\gdiplus.dll77200000 4ce7b96f Nov 20 20:05:03 2010 C:\windows\system32\ole32.dll773e0000 4ce7b9a2 Nov 20 20:05:54 2010 C:\windows\system32\RPCRT4.dll75df0000 4ce7b706 Nov 20 19:54:46 2010 C:\windows\system32\ADVAPI32.dll76000000 4a5bdb04 Jul 14 09:10:28 2009 C:\windows\SYSTEM32\sechost.dll770f0000 4e58702a Aug 27 12:18:50 2011 C:\windows\system32\OLEAUT32.dll745c0000 4a5bdb38 Jul 14 09:11:20 2009 C:\Windows\System32\UxTheme.dll74220000 4ce7b71c Nov 20 19:55:08 2010 C:\windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.dll73710000 4ce7ba42 Nov 20 20:08:34 2010 C:\Windows\System32\WINMM.dll74ea0000 4a5bdb2b Jul 14 09:11:07 2009 C:\Windows\System32\VERSION.dll778b0000 4ce7b845 Nov 20 20:00:05 2010 C:\windows\system32\IMM32.DLL75e90000 4a5bda69 Jul 14 09:07:53 2009 C:\windows\system32\MSCTF.dll73d30000 4ce7ba3a Nov 20 20:08:26 2010 C:\Windows\System32\WindowsCodecs.dll651e0000 50910787 Oct 31 19:12:07 2012 C:\ProgramData\Tencent\TSVulFw\TSVulFW.DAT75de0000 4a5bdace Jul 14 09:09:34 2009 C:\windows\system32\PSAPI.DLL75ce0000 508b7cf0 Oct 27 14:19:28 2012 C:\windows\system32\WININET.dll76100000 508b7cdb Oct 27 14:19:07 2012 C:\windows\system32\urlmon.dll75a80000 4fc99664 Jun 02 12:28:20 2012 C:\windows\system32\CRYPT32.dll75940000 4ce7b8c9 Nov 20 20:02:17 2010 C:\windows\system32\MSASN1.dll77570000 508b7ba3 Oct 27 14:13:55 2012 C:\windows\system32\iertutil.dll757f0000 4ce7b73e Nov 20 19:55:42 2010 C:\Windows\System32\apphelp.dll73900000 3b7d84df Aug 18 04:55:59 2001 C:\windows\system32\JPWB.IME77180000 4ce7b82d Nov 20 19:59:41 2010 C:\windows\system32\comdlg32.dll73e60000 4a5bda07 Jul 14 09:06:15 2009 C:\Windows\System32\dwmapi.dll75840000 4a5bbf41 Jul 14 07:12:01 2009 C:\Windows\System32\CRYPTBASE.dll778d0000 4a5bd9b1 Jul 14 09:04:49 2009 C:\windows\system32\CLBCatQ.DLL10000000 4ffa45cd Jul 09 10:45:33 2012 C:\Users\guoyouhuang\AppData\Local\Youdao\Dict\Application\5.1.36.3166\WordStrokeHelper32.dll73610000 4e587028 Aug 27 12:18:48 2011 C:\Windows\system32\oleacc.dllSubSystemData:     00000000ProcessHeap:       00310000ProcessParameters: 00311b48WindowTitle:  'C:\Windows\System32\calc.exe'ImageFile:    'C:\Windows\System32\calc.exe'CommandLine:  'C:\Windows\System32\calc.exe'DllPath:      'C:\Windows\System32;;C:\windows\system32;C:\windows\system;C:\windows;.;C:\Program Files\Debugging Tools for Windows (x86)\winext\arcade;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\TortoiseSVN\bin;D:\Program Files\Microsoft SDK\Bin\.;D:\Program Files\Microsoft SDK\Bin\WinNT\.;D:\Program Files\Vc6\Tools\WinNT;D:\Program Files\Vc6\MSDev98\Bin;D:\Program Files\Vc6\Tools;D:\Program Files\VC98\bin;D:\Program Files\Microsoft SDK\Bin\.;D:\Program Files\Microsoft SDK\Bin\WinNT\.;C:\Program Files\IDM Computer Solutions\UltraCompare\'Environment:  00310810=::=::\ALLUSERSPROFILE=C:\ProgramDataAPPDATA=C:\Users\guoyouhuang\AppData\RoamingBasemake=D:\Program Files\Microsoft SDK\Include\BKOffice.MakBkoffice=D:\Program Files\Microsoft SDK\.CommonProgramFiles=C:\Program Files\Common FilesCOMPUTERNAME=GUOYOUHUANG-PC0ComSpec=C:\windows\system32\cmd.execonfigsetroot=C:\windows\ConfigSetRootDXSDK_DIR=C:\Program Files\Microsoft DirectX SDK (June 2010)\FP_NO_HOST_CHECK=NOHOMEDRIVE=C:HOMEPATH=\Users\guoyouhuangINCLUDE=D:\Program Files\Microsoft SDK\Include\.;D:\Program Files\VC98\atl\include;D:\Program Files\VC98\mfc\include;D:\Program Files\VC98\includeINETSDK=D:\Program Files\Microsoft SDK\.LIB=D:\Program Files\Microsoft SDK\Lib\.;D:\Program Files\VC98\mfc\lib;D:\Program Files\VC98\libLOCALAPPDATA=C:\Users\guoyouhuang\AppData\LocalLOGONSERVER=\\GM-CADILLACMSDevDir=D:\Program Files\Vc6\MSDev98MSSdk=D:\Program Files\Microsoft SDK\.Mstools=D:\Program Files\Microsoft SDK\.NUMBER_OF_PROCESSORS=4OS=Windows_NTPath=C:\Program Files\Debugging Tools for Windows (x86)\winext\arcade;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\TortoiseSVN\bin;D:\Program Files\Microsoft SDK\Bin\.;D:\Program Files\Microsoft SDK\Bin\WinNT\.;D:\Program Files\Vc6\Tools\WinNT;D:\Program Files\Vc6\MSDev98\Bin;D:\Program Files\Vc6\Tools;D:\Program Files\VC98\bin;D:\Program Files\Microsoft SDK\Bin\.;D:\Program Files\Microsoft SDK\Bin\WinNT\.;C:\Program Files\IDM Computer Solutions\UltraCompare\PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSCPROCESSOR_ARCHITECTURE=x86PROCESSOR_IDENTIFIER=x86 Family 6 Model 42 Stepping 7, GenuineIntelPROCESSOR_LEVEL=6PROCESSOR_REVISION=2a07ProgramData=C:\ProgramDataProgramFiles=C:\Program FilesPSModulePath=C:\windows\system32\WindowsPowerShell\v1.0\Modules\PUBLIC=C:\Users\PublicSESSIONNAME=ConsoleSystemDrive=C:SystemRoot=C:\windowsTEMP=C:\Users\GUOYOU~1\AppData\Local\TempTMP=C:\Users\GUOYOU~1\AppData\Local\TempUSERDNSDOMAIN=TENCENT.COMUSERDOMAIN=TENCENTUSERNAME=guoyouhuangUSERPROFILE=C:\Users\guoyouhuangVS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\WINDBG_DIR=C:\Program Files\Debugging Tools for Windows (x86)windir=C:\windowswindows_tracing_flags=3windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log

手工分析PEB结构

0:000> dt _PEB @$peb
ntdll!_PEB+0x000 InheritedAddressSpace : 0 ''+0x001 ReadImageFileExecOptions : 0 ''+0x002 BeingDebugged    : 0x1 ''+0x003 BitField         : 0x8 ''+0x003 ImageUsesLargePages : 0y0+0x003 IsProtectedProcess : 0y0+0x003 IsLegacyProcess  : 0y0+0x003 IsImageDynamicallyRelocated : 0y1+0x003 SkipPatchingUser32Forwarders : 0y0+0x003 SpareBits        : 0y000+0x004 Mutant           : 0xffffffff +0x008 ImageBaseAddress : 0x008f0000 +0x00c Ldr              : 0x77847880 _PEB_LDR_DATA+0x010 ProcessParameters : 0x00311b48 _RTL_USER_PROCESS_PARAMETERS+0x014 SubSystemData    : (null) +0x018 ProcessHeap      : 0x00310000 +0x01c FastPebLock      : 0x77847380 _RTL_CRITICAL_SECTION+0x020 AtlThunkSListPtr : (null) +0x024 IFEOKey          : (null) +0x028 CrossProcessFlags : 0+0x028 ProcessInJob     : 0y0+0x028 ProcessInitializing : 0y0+0x028 ProcessUsingVEH  : 0y0+0x028 ProcessUsingVCH  : 0y0+0x028 ProcessUsingFTH  : 0y0+0x028 ReservedBits0    : 0y000000000000000000000000000 (0)+0x02c KernelCallbackTable : 0x7603d568 +0x02c UserSharedInfoPtr : 0x7603d568 +0x030 SystemReserved   : [1] 0+0x034 AtlThunkSListPtr32 : 0+0x038 ApiSetMap        : 0x779b0000 +0x03c TlsExpansionCounter : 0+0x040 TlsBitmap        : 0x77847260 +0x044 TlsBitmapBits    : [2] 0xffffffff+0x04c ReadOnlySharedMemoryBase : 0x7f6f0000 +0x050 HotpatchInformation : (null) +0x054 ReadOnlyStaticServerData : 0x7f6f0590  -> (null) +0x058 AnsiCodePageData : 0x7ffa0000 +0x05c OemCodePageData  : 0x7ffa0000 +0x060 UnicodeCaseTableData : 0x7ffd0024 +0x064 NumberOfProcessors : 4+0x068 NtGlobalFlag     : 0x70+0x070 CriticalSectionTimeout : _LARGE_INTEGER 0xffffe86d`079b8000+0x078 HeapSegmentReserve : 0x100000+0x07c HeapSegmentCommit : 0x2000+0x080 HeapDeCommitTotalFreeThreshold : 0x10000+0x084 HeapDeCommitFreeBlockThreshold : 0x1000+0x088 NumberOfHeaps    : 8+0x08c MaximumNumberOfHeaps : 0x10+0x090 ProcessHeaps     : 0x77847500  -> 0x00310000 +0x094 GdiSharedHandleTable : 0x00410000 +0x098 ProcessStarterHelper : (null) +0x09c GdiDCAttributeList : 0x14+0x0a0 LoaderLock       : 0x77847340 _RTL_CRITICAL_SECTION+0x0a4 OSMajorVersion   : 6+0x0a8 OSMinorVersion   : 1+0x0ac OSBuildNumber    : 0x1db1+0x0ae OSCSDVersion     : 0x100+0x0b0 OSPlatformId     : 2+0x0b4 ImageSubsystem   : 2+0x0b8 ImageSubsystemMajorVersion : 6+0x0bc ImageSubsystemMinorVersion : 1+0x0c0 ActiveProcessAffinityMask : 0xf+0x0c4 GdiHandleBuffer  : [34] 0+0x14c PostProcessInitRoutine : (null) +0x150 TlsExpansionBitmap : 0x77847268 +0x154 TlsExpansionBitmapBits : [32] 1+0x1d4 SessionId        : 1+0x1d8 AppCompatFlags   : _ULARGE_INTEGER 0x0+0x1e0 AppCompatFlagsUser : _ULARGE_INTEGER 0x0+0x1e8 pShimData        : (null) +0x1ec AppCompatInfo    : (null) +0x1f0 CSDVersion       : _UNICODE_STRING "Service Pack 1"+0x1f8 ActivationContextData : 0x00040000 _ACTIVATION_CONTEXT_DATA+0x1fc ProcessAssemblyStorageMap : 0x00314ee8 _ASSEMBLY_STORAGE_MAP+0x200 SystemDefaultActivationContextData : 0x00030000 _ACTIVATION_CONTEXT_DATA+0x204 SystemAssemblyStorageMap : 0x00313fe8 _ASSEMBLY_STORAGE_MAP+0x208 MinimumStackCommit : 0+0x20c FlsCallback      : 0x00315a48 _FLS_CALLBACK_INFO+0x210 FlsListHead      : _LIST_ENTRY [ 0x315828 - 0x353ee8 ]+0x218 FlsBitmap        : 0x77847270 +0x21c FlsBitmapBits    : [4] 0x3f+0x22c FlsHighIndex     : 5+0x230 WerRegistrationData : 0x00220000 +0x234 WerShipAssertPtr : (null) +0x238 pContextData     : 0x00050000 +0x23c pImageHeaderHash : (null) +0x240 TracingFlags     : 0+0x240 HeapTracingEnabled : 0y0+0x240 CritSecTracingEnabled : 0y0+0x240 SpareTracingBits : 0y000000000000000000000000000000 (0)

直接分析ldr:

 +0x00c Ldr              : 0x77847880 _PEB_LDR_DATA
0:000> dt 0x77847880 _PEB_LDR_DATA
ntdll!_PEB_LDR_DATA+0x000 Length           : 0x30+0x004 Initialized      : 0x1 ''+0x008 SsHandle         : (null) +0x00c InLoadOrderModuleList : _LIST_ENTRY [ 0x3126f8 - 0x36bd60 ]+0x014 InMemoryOrderModuleList : _LIST_ENTRY [ 0x312700 - 0x36bd68 ]+0x01c InInitializationOrderModuleList : _LIST_ENTRY [ 0x312798 - 0x36bd70 ]+0x024 EntryInProgress  : (null) +0x028 ShutdownInProgress : 0 ''+0x02c ShutdownThreadId : (null)

对比!peb的内容:

    Ldr                       77847880Ldr.Initialized:          YesLdr.InInitializationOrderModuleList: 00312798 . 0036bd70Ldr.InLoadOrderModuleList:           003126f8 . 0036bd60Ldr.InMemoryOrderModuleList:         00312700 . 0036bd68

一样的~~~~,不一样就不正常了!

为什么有三个list:其实三个都一样,顺序不同而已.

 LIST_ENTRY              InLoadOrderModuleList;          //按加载顺序LIST_ENTRY              InMemoryOrderModuleList;        //按内存顺序LIST_ENTRY              InInitializationOrderModuleList;//按初始化顺序

_LIST_ENTRY的结构如下:

0:000> dt _LIST_ENTRY
ntdll!_LIST_ENTRY+0x000 Flink            : Ptr32 _LIST_ENTRY+0x004 Blink            : Ptr32 _LIST_ENTRY

按MSDN解释是:

Each item in the list is a pointer to an LDR_DATA_TABLE_ENTRY structure,双向循环链表吧,从一个方向开始,不停的循环,就回到初始位了,就相当于遍历了一次

0:000> dt _LDR_DATA_TABLE_ENTRY
ole32!_LDR_DATA_TABLE_ENTRY+0x000 InLoadOrderLinks : _LIST_ENTRY+0x008 InMemoryOrderLinks : _LIST_ENTRY+0x010 InInitializationOrderLinks : _LIST_ENTRY+0x018 DllBase          : Ptr32 Void+0x01c EntryPoint       : Ptr32 Void+0x020 SizeOfImage      : Uint4B+0x024 FullDllName      : _UNICODE_STRING+0x02c BaseDllName      : _UNICODE_STRING+0x034 Flags            : Uint4B+0x038 LoadCount        : Uint2B+0x03a TlsIndex         : Uint2B+0x03c HashLinks        : _LIST_ENTRY+0x03c SectionPointer   : Ptr32 Void+0x040 CheckSum         : Uint4B+0x044 TimeDateStamp    : Uint4B+0x044 LoadedImports    : Ptr32 Void+0x048 EntryPointActivationContext : Ptr32 _ACTIVATION_CONTEXT+0x04c PatchInformation : Ptr32 Void+0x050 ForwarderLinks   : _LIST_ENTRY+0x058 ServiceTagLinks  : _LIST_ENTRY+0x060 StaticLinks      : _LIST_ENTRY+0x068 ContextInformation : Ptr32 Void+0x06c OriginalBase     : Uint4B+0x070 LoadTime         : _LARGE_INTEGER

可以看到头部开始就是个_LIST_ENTRY

我们来做次循环查询吧:

0:000> dt 0x77847880+0x00c _LIST_ENTRY
ole32!_LIST_ENTRY[ 0x3126f8 - 0x36bd60 ]+0x000 Flink            : 0x003126f8 _LIST_ENTRY [ 0x312788 - 0x7784788c ]+0x004 Blink            : 0x0036bd60 _LIST_ENTRY [ 0x7784788c - 0x354a80 ]

对比上面的显示:

   +0x00c InLoadOrderModuleList : _LIST_ENTRY [ 0x3126f8 - 0x36bd60 ]

可以看出,windbg这里是在后面括号里显示Flink和Blink,那么我们向着Flink循环吧:

0:000> dt _LDR_DATA_TABLE_ENTRY 0x003126f8
ole32!_LDR_DATA_TABLE_ENTRY+0x000 InLoadOrderLinks : _LIST_ENTRY [ 0x312788 - 0x7784788c ]+0x008 InMemoryOrderLinks : _LIST_ENTRY [ 0x312790 - 0x77847894 ]+0x010 InInitializationOrderLinks : _LIST_ENTRY [ 0x0 - 0x0 ]+0x018 DllBase          : 0x008f0000 +0x01c EntryPoint       : 0x00902d6c +0x020 SizeOfImage      : 0xc0000+0x024 FullDllName      : _UNICODE_STRING "C:\Windows\System32\calc.exe"+0x02c BaseDllName      : _UNICODE_STRING "calc.exe"+0x034 Flags            : 0x4000+0x038 LoadCount        : 0xffff+0x03a TlsIndex         : 0+0x03c HashLinks        : _LIST_ENTRY [ 0x31382c - 0x7784a6a8 ]+0x03c SectionPointer   : 0x0031382c +0x040 CheckSum         : 0x7784a6a8+0x044 TimeDateStamp    : 0x4ce7979d+0x044 LoadedImports    : 0x4ce7979d +0x048 EntryPointActivationContext : (null) +0x04c PatchInformation : (null) +0x050 ForwarderLinks   : _LIST_ENTRY [ 0x312748 - 0x312748 ]+0x058 ServiceTagLinks  : _LIST_ENTRY [ 0x312750 - 0x312750 ]+0x060 StaticLinks      : _LIST_ENTRY [ 0x315768 - 0x313cf0 ]+0x068 ContextInformation : 0x777e0534 +0x06c OriginalBase     : 0+0x070 LoadTime         : _LARGE_INTEGER 0x0
0:000> dt _LDR_DATA_TABLE_ENTRY 0x312788
ole32!_LDR_DATA_TABLE_ENTRY+0x000 InLoadOrderLinks : _LIST_ENTRY [ 0x312ab0 - 0x3126f8 ]+0x008 InMemoryOrderLinks : _LIST_ENTRY [ 0x312ab8 - 0x312700 ]+0x010 InInitializationOrderLinks : _LIST_ENTRY [ 0x312bd8 - 0x7784789c ]+0x018 DllBase          : 0x77770000 +0x01c EntryPoint       : (null) +0x020 SizeOfImage      : 0x13c000+0x024 FullDllName      : _UNICODE_STRING "C:\windows\SYSTEM32\ntdll.dll"+0x02c BaseDllName      : _UNICODE_STRING "ntdll.dll"+0x034 Flags            : 0x4004+0x038 LoadCount        : 0xffff+0x03a TlsIndex         : 0+0x03c HashLinks        : _LIST_ENTRY [ 0x32384c - 0x7784a680 ]+0x03c SectionPointer   : 0x0032384c +0x040 CheckSum         : 0x7784a680+0x044 TimeDateStamp    : 0x4ec49b60+0x044 LoadedImports    : 0x4ec49b60 +0x048 EntryPointActivationContext : (null) +0x04c PatchInformation : (null) +0x050 ForwarderLinks   : _LIST_ENTRY [ 0x3127d8 - 0x3127d8 ]+0x058 ServiceTagLinks  : _LIST_ENTRY [ 0x3127e0 - 0x3127e0 ]+0x060 StaticLinks      : _LIST_ENTRY [ 0x3127e8 - 0x3127e8 ]+0x068 ContextInformation : (null) +0x06c OriginalBase     : 0x77ec0000+0x070 LoadTime         : _LARGE_INTEGER 0x0
0:000> dt _LDR_DATA_TABLE_ENTRY 0x312ab0
ole32!_LDR_DATA_TABLE_ENTRY+0x000 InLoadOrderLinks : _LIST_ENTRY [ 0x312bc8 - 0x312788 ]+0x008 InMemoryOrderLinks : _LIST_ENTRY [ 0x312bd0 - 0x312790 ]+0x010 InInitializationOrderLinks : _LIST_ENTRY [ 0x3134e0 - 0x312bd8 ]+0x018 DllBase          : 0x77490000 +0x01c EntryPoint       : 0x774dcd6f +0x020 SizeOfImage      : 0xd4000+0x024 FullDllName      : _UNICODE_STRING "C:\windows\system32\kernel32.dll"+0x02c BaseDllName      : _UNICODE_STRING "kernel32.dll"+0x034 Flags            : 0x84004+0x038 LoadCount        : 0xffff+0x03a TlsIndex         : 0+0x03c HashLinks        : _LIST_ENTRY [ 0x31558c - 0x7784a640 ]+0x03c SectionPointer   : 0x0031558c +0x040 CheckSum         : 0x7784a640+0x044 TimeDateStamp    : 0x506dbd3e+0x044 LoadedImports    : 0x506dbd3e +0x048 EntryPointActivationContext : (null) +0x04c PatchInformation : (null) +0x050 ForwarderLinks   : _LIST_ENTRY [ 0x3136b8 - 0x3136b8 ]+0x058 ServiceTagLinks  : _LIST_ENTRY [ 0x312b08 - 0x312b08 ]+0x060 StaticLinks      : _LIST_ENTRY [ 0x312c80 - 0x312b40 ]+0x068 ContextInformation : 0x777e0534 +0x06c OriginalBase     : 0x77de0000+0x070 LoadTime         : _LARGE_INTEGER 0x1cdef13`ea902171
0:000> dt _LDR_DATA_TABLE_ENTRY 0x312bc8
ole32!_LDR_DATA_TABLE_ENTRY+0x000 InLoadOrderLinks : _LIST_ENTRY [ 0x3133e8 - 0x312ab0 ]+0x008 InMemoryOrderLinks : _LIST_ENTRY [ 0x3133f0 - 0x312ab8 ]+0x010 InInitializationOrderLinks : _LIST_ENTRY [ 0x312ac0 - 0x312798 ]+0x018 DllBase          : 0x75a30000 +0x01c EntryPoint       : 0x75a37e90 +0x020 SizeOfImage      : 0x4b000+0x024 FullDllName      : _UNICODE_STRING "C:\windows\system32\KERNELBASE.dll"+0x02c BaseDllName      : _UNICODE_STRING "KERNELBASE.dll"+0x034 Flags            : 0x84004+0x038 LoadCount        : 0xffff+0x03a TlsIndex         : 0+0x03c HashLinks        : _LIST_ENTRY [ 0x31ba9c - 0x7784a690 ]+0x03c SectionPointer   : 0x0031ba9c +0x040 CheckSum         : 0x7784a690+0x044 TimeDateStamp    : 0x506dbd3f+0x044 LoadedImports    : 0x506dbd3f +0x048 EntryPointActivationContext : (null) +0x04c PatchInformation : (null) +0x050 ForwarderLinks   : _LIST_ENTRY [ 0x312c18 - 0x312c18 ]+0x058 ServiceTagLinks  : _LIST_ENTRY [ 0x312c20 - 0x312c20 ]+0x060 StaticLinks      : _LIST_ENTRY [ 0x312c58 - 0x312c58 ]+0x068 ContextInformation : 0x777e0534 +0x06c OriginalBase     : 0xdce0000+0x070 LoadTime         : _LARGE_INTEGER 0x1cdef13`ea902171
0:000> dt _LDR_DATA_TABLE_ENTRY 0x3133e8
ole32!_LDR_DATA_TABLE_ENTRY+0x000 InLoadOrderLinks : _LIST_ENTRY [ 0x3134d0 - 0x312bc8 ]+0x008 InMemoryOrderLinks : _LIST_ENTRY [ 0x3134d8 - 0x312bd0 ]+0x010 InInitializationOrderLinks : _LIST_ENTRY [ 0x314578 - 0x3136f0 ]+0x018 DllBase          : 0x76240000 +0x01c EntryPoint       : 0x762c1621 +0x020 SizeOfImage      : 0xc4a000+0x024 FullDllName      : _UNICODE_STRING "C:\windows\system32\SHELL32.dll"+0x02c BaseDllName      : _UNICODE_STRING "SHELL32.dll"+0x034 Flags            : 0xc4004+0x038 LoadCount        : 0xffff+0x03a TlsIndex         : 0+0x03c HashLinks        : _LIST_ENTRY [ 0x316554 - 0x7784a688 ]+0x03c SectionPointer   : 0x00316554 +0x040 CheckSum         : 0x7784a688+0x044 TimeDateStamp    : 0x4fd2d1d9+0x044 LoadedImports    : 0x4fd2d1d9 +0x048 EntryPointActivationContext : (null) +0x04c PatchInformation : (null) +0x050 ForwarderLinks   : _LIST_ENTRY [ 0x313438 - 0x313438 ]+0x058 ServiceTagLinks  : _LIST_ENTRY [ 0x313440 - 0x313440 ]+0x060 StaticLinks      : _LIST_ENTRY [ 0x313cc8 - 0x3135d8 ]+0x068 ContextInformation : 0x777e0534 +0x06c OriginalBase     : 0x73800000+0x070 LoadTime         : _LARGE_INTEGER 0x1cdef13`ea9282d2

对比!peb的输出:

    8f0000 4ce7979d Nov 20 17:40:45 2010 C:\Windows\System32\calc.exe77770000 4ec49b60 Nov 17 13:28:00 2011 C:\windows\SYSTEM32\ntdll.dll77490000 506dbd3e Oct 05 00:45:50 2012 C:\windows\system32\kernel32.dll75a30000 506dbd3f Oct 05 00:45:51 2012 C:\windows\system32\KERNELBASE.dll76240000 4fd2d1d9 Jun 09 12:32:25 2012 C:\windows\system32\SHELL32.dll

当然是一样的~~~

下一步是怎么直接得到进程的cmdline:我们注意到PEB0x10处的偏移

+0x010 ProcessParameters : 0x00311b48 _RTL_USER_PROCESS_PARAMETERS

dt一下试试:

0:000> dt 0x00311b48 _RTL_USER_PROCESS_PARAMETERS
ole32!_RTL_USER_PROCESS_PARAMETERS+0x000 MaximumLength    : 0xaf2+0x004 Length           : 0xaf2+0x008 Flags            : 0x2001+0x00c DebugFlags       : 0+0x010 ConsoleHandle    : (null) +0x014 ConsoleFlags     : 0+0x018 StandardInput    : (null) +0x01c StandardOutput   : (null) +0x020 StandardError    : (null) +0x024 CurrentDirectory : _CURDIR+0x030 DllPath          : _UNICODE_STRING "C:\Windows\System32;;C:\windows\system32;C:\windows\system;C:\windows;.;C:\Program Files\Debugging Tools for Windows (x86)\winext\arcade;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\TortoiseSVN\bin;D:\Program Files\Microsoft SDK\Bin\.;D:\Program Files\Microsoft SDK\Bin\WinNT\.;D:\Program Files\Vc6\Tools\WinNT;D:\Program Files\Vc6\MSDev98\Bin;D:\Program Files\Vc6\Tools;D:\Program Files\VC98\bin;D:\Program Files\Microsoft SDK\Bin\.;D:\Program Files\Microsoft SDK\Bin\WinNT\.;C:\Program Files\IDM Computer Solutions\UltraCompare\"+0x038 ImagePathName    : _UNICODE_STRING "C:\Windows\System32\calc.exe"+0x040 CommandLine      : _UNICODE_STRING "C:\Windows\System32\calc.exe"+0x048 Environment      : 0x00310810 +0x04c StartingX        : 0+0x050 StartingY        : 0+0x054 CountX           : 0+0x058 CountY           : 0+0x05c CountCharsX      : 0+0x060 CountCharsY      : 0+0x064 FillAttribute    : 0+0x068 WindowFlags      : 0+0x06c ShowWindowFlags  : 0+0x070 WindowTitle      : _UNICODE_STRING "C:\Windows\System32\calc.exe"+0x078 DesktopInfo      : _UNICODE_STRING "Winsta0\Default"+0x080 ShellInfo        : _UNICODE_STRING ""+0x088 RuntimeData      : _UNICODE_STRING ""+0x090 CurrentDirectores : [32] _RTL_DRIVE_LETTER_CURDIR+0x290 EnvironmentSize  : 0x131e+0x294 EnvironmentVersion : 1

都出来了~~~~~~~~~

36.windbg-!peb(手工分析PEB结构)相关推荐

  1. hp服务器如何找回阵列信息,HP服务器数据恢复 RAID5结构实例手工分析

    HP服务器数据恢复 RAID5实例手工分析 案例服务器: 3块硬盘组成的RAID5结构,RAID信息丢失.导致服务器无法开机进系统,数据也无法访问. 恢复方案: 1:第一时间将服务器断电,请勿强制上线 ...

  2. x64 PEB简介 有关PEB的一些函数

    尽管操作PEB BLOCK现在已经没什么价值了,但是PEB BLOCK作为内核的一个重要结构,这里还是提一下: x64 EPROCESS结构 +0x000 Pcb : _KPROCESS+0x160 ...

  3. FFmpeg源代码简单分析:结构体成员管理系统-AVClass

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  4. 分析非结构化数据的10个步骤

    如今,数据分析正在成为企业发展的重要组成部分.企业必须对结构化和非结构化数据有所了解,才能更好地为业务发展做出正确决策.以下是帮助企业分析非结构化数据的10个步骤: 0 1 确定一个数据源 了解有利于 ...

  5. 使用爬虫时,怎么分析网页结构

    爬虫,运行的本质就是模拟人访问网页,只不过不需要通过网页界面进行操作. 因此,要写出爬虫程序,我们就需要了解网页的结构. 以chrome为例,我们打开并分析一个网页的结构,这个网页是爱词霸的翻译界面, ...

  6. JS逆向--PyExecJS基本用法--网易云音乐逆向思路,node.js安装教程,逆向思路,逆向分析,加密机制,RSA,AES加密算法,加密算法啊破解,js引擎,定位数据包,分析栈结构,无痕窗口

    文章目录 前言 一.JS逆向以及PyExecJS模块介绍 1.JS逆向 2.PyEecJS 二.使用步骤 1.环境安装 安装PyExecJS模块 安装node.js开发环境(官网链接 https:// ...

  7. C#分析数据库结构,使用XSL模板自动生成代码

    <html> <head> <TITLE>分析数据库结构,自动生成代码</TITLE> <meta http-equiv="Conten ...

  8. FFmpeg源代码简单分析:结构体成员管理系统-AVOption

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  9. 3.2 实战项目二(手工分析错误、错误标签及其修正、快速地构建一个简单的系统(快速原型模型)、训练集与验证集-来源不一致的情况(异源问题)、迁移学习、多任务学习、端到端学习)

    手工分析错误 手工分析错误的大多数是什么 猫猫识别,准确率90%,想提升,就继续猛加材料,猛调优?     --应该先做错误分析,再调优! 把识别出错的100张拿出来, 如果发现50%是"把 ...

  10. 计算机组成 quia,钢筋砼不等肢异形柱的延性性能分析研究-结构工程专业论文.docx...

    钢筋砼不等肢异形柱的延性性能分析研究-结构工程专业论文 摘要钢筋砼异形柱结构体系在居住建筑中的应用越来越广泛,但目前对等肢异形 摘要 钢筋砼异形柱结构体系在居住建筑中的应用越来越广泛,但目前对等肢异形 ...

最新文章

  1. RecyclerView横向滑动与ViewPager冲突问题
  2. 网络推广外包——网络推广外包专员面对外链发布更注重细节
  3. 手脱UPX v0.89.6 - v1.02
  4. C#学习小记12实现一个接口
  5. 关于document.write
  6. Java基础day21
  7. [Jarvis OJ - PWN]——Tell Me Something
  8. 入门训练 Fibonacci数列 c语言
  9. JAVA数组扁平化整合_JS数组扁平化(flat)方法总结详解
  10. ps人像精修照片步骤_15天零基础自学PS!送你整套PS教程297集+视频+素材+源文件模板6...
  11. 201671010133 2016-2017-2 《java程序设计》 初学java!
  12. Python设计模式——责任链模式
  13. protues打不开问题
  14. RabitMQ简介和原理分析(一)
  15. 【51单片机实例教程】智能小车(一)让你的小车跑起来
  16. 【FPGA频率计】基于FPGA的数字频率计开发,VHDL编程实现
  17. 爱奇艺播放技术——300ms背后的故事
  18. 【赛百味加入区块链试验项目以提高食品供应链透明度】GBCAX
  19. android 点赞手型,在朋友圈,你是哪种点赞型人格?
  20. Delphi字符串操作的常用函数二

热门文章

  1. 【历史上的今天】8 月 29 日:Wolfram 语言之父、“新”科学家 Stephen Wolfram 的诞生
  2. 横向色差测试(LCA)—imatest
  3. SoapUI测试webservice接口
  4. linux下如何使用mysql可视化图形界面客户端查询
  5. 分享Netsparker - Community Edition运用程序。
  6. 数学基础知识总结 —— 6. 基本矩阵运算公式
  7. 海康威视SDK基于JAVA二次开发
  8. c语言中的单词的意思及作用,c语言入门必背单词 具体含义是什么
  9. 读完本文你就了解什么是文本分析
  10. 模2运算_模二除法和CRC循环冗余校验