资讯详情

如何从一个 C# 的 dump 中挖到机器相关的信息?

前段时间有朋友问我怎么从 dump 与机器相关的信息是什么?例如:机器内存的大小,cpu核数,机器名,机器的环境变量 等等。

那么如何提取里面的信息呢?当然,我并没有说它们都可以提取。。。以你自己的机器为例:

1. 如何提取 cpu 核数

windbg 中有一个 !cpuid 可提取命令cpu的相关信息。

0:006>!cpuid CPF/M/SManufacturerMHz 06,5,2GenuineIntel2592 16,5,2GenuineIntel2592 26,5,2GenuineIntel2592 36,5,2GenuineIntel2592 46,5,2GenuineIntel2592 56,5,2GenuineIntel2592 66,5,2GenuineIntel2592 76,5,2GenuineIntel2592 86,5,2GenuineIntel2592 96,5,2GenuineIntel2592 106,5,2GenuineIntel2592 116,5,2GenuineIntel2592

可见,当前cpu为12核,厂家为intel,兆赫=2592。

2. 如何提取机器名称

windbg有一个命令叫 !envvar ,可用于获取指定的环境变量,如此 COMPUTERNAME 啦。

0:006>!envvarCOMPUTERNAME COMPUTERNAME=SD-20210607OIBM

3. 如何提取机器环境变量

从上面的 !envvar 在使用过程中,你应该能够感觉到,既然你可以提取环境变量,你能得到所有的环境变量吗?当然可以。 !peb,也就是 Process Environment Block。

0:006>!peb PEBat002af000 InheritedAddressSpace:No ReadImageFileExecOptions:No BeingDebugged:Yes ImageBaseAddress:00400000 NtGlobalFlag:4070 NtGlobalFlag2:0 Ldr77975d80 Ldr.Initialized:Yes Ldr.InInitializationOrderModuleList:006e4f68.0075e630 Ldr.InLoadOrderModuleList:006e5060.0075bae8 Ldr.InMemoryOrderModuleList:006e5068.0075baf0 BaseTimeStampModule 400000D:\net5\ConsoleApp4\ConsoleApp1\bin\Debug\ConsoleApp1.exe 778500005f641e44Sep1810:41:082020C:\Windows\SYSTEM32\ntdll.dll 7c570000C:\Windows\SYSTEM32\MSCOREE.DLL 75ac0000C:\Windows\System32\KERNEL32.dll 76900000197b16c5Jul2005:12:371983C:\Windows\System32\KERNELBASE.dll 76880000C:\Windows\System32\ADVAPI32.dll 757400007f567a50Sep1221:10:402037C:\Windows\System32\msvcrt.dll 7617000056a91365Jan2802:58:452016C:\Windows\System32\sechost.dll 76c20000C:\Windows\System32\RPCRT4.dll 7c5d00005e7d1df2Mar2705:26:102020C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll 758a0000C:\Windows\System32\SHLWAPI.dll 764900003d49eb55Aug0210:15:492002C:\Windows\ystem32\kernel.appcore.dll
        74b60000 C:\Windows\SYSTEM32\VERSION.dll
        79a40000 5f7e61bb Oct 08 08:47:55 2020 C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
        76650000 1e757656 Mar 12 20:28:06 1986 C:\Windows\System32\USER32.dll
        764d0000 55cf9768 Aug 16 03:47:52 2015 C:\Windows\System32\win32u.dll
        75480000 1baae673 Sep 16 20:15:47 1984 C:\Windows\System32\GDI32.dll
        764f0000 C:\Windows\System32\gdi32full.dll
        7a210000 5bac17e1 Sep 27 07:36:01 2018 C:\Windows\SYSTEM32\ucrtbase_clr0400.dll
        7a1f0000 5bac17e5 Sep 27 07:36:05 2018 C:\Windows\SYSTEM32\VCRUNTIME140_CLR0400.dll
        75810000 C:\Windows\System32\msvcp_win.dll
        77500000 73123758 Mar 06 22:27:36 2031 C:\Windows\System32\ucrtbase.dll
        764a0000 39046a45 Apr 24 23:37:41 2000 C:\Windows\System32\IMM32.DLL
        7a2c0000 5f7e60f6 Oct 08 08:44:38 2020 C:\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\218db16dceaef380c6daf35c6a48f313\mscorlib.ni.dll
        762a0000 4f8dda94 Apr 18 05:03:16 2012 C:\Windows\System32\ole32.dll
        754b0000 2f680839 Mar 16 17:43:21 1995 C:\Windows\System32\combase.dll
        76b80000 C:\Windows\System32\bcryptPrimitives.dll
        7b6d0000 5f7e60c1 Oct 08 08:43:45 2020 C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
        77750000 C:\Windows\System32\OLEAUT32.dll
    SubSystemData:     00000000
    ProcessHeap:       006e0000
    ProcessParameters: 006e29b8
    CurrentDirectory:  'C:\Windows\system32\'
    WindowTitle:  'D:\net5\ConsoleApp4\ConsoleApp1\bin\Debug\ConsoleApp1.exe'
    ImageFile:    'D:\net5\ConsoleApp4\ConsoleApp1\bin\Debug\ConsoleApp1.exe'
    CommandLine:  'D:\net5\ConsoleApp4\ConsoleApp1\bin\Debug\ConsoleApp1.exe'
    DllPath:      '< Name not readable >'
    Environment:  006e0b80
        =::=::\
        ALLUSERSPROFILE=C:\ProgramData
        APPDATA=C:\Users\Administrator\AppData\Roaming
        ASPNETCORE_ENVIRONMENT=Development
        CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_121\lib\dt.jar;C:\Program Files\Java\jdk1.8.0_121\lib\tools.jar;
        CommonProgramFiles=C:\Program Files (x86)\Common Files
        CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
        CommonProgramW6432=C:\Program Files\Common Files
        COMPUTERNAME=SD-20210607OIBM
        ComSpec=C:\Windows\system32\cmd.exe
        DBGENG_OVERRIDE_DBGSRV_PATH=C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe\dbgsrv32.exe
        DBGHELP_HOMEDIR=C:\ProgramData\Dbg
        DriverData=C:\Windows\System32\Drivers\DriverData
        HOMEDRIVE=C:
        HOMEPATH=\Users\Administrator
        JAVA_HOME=C:\Program Files\Java\jdk1.8.0_121
        LOCALAPPDATA=C:\Users\Administrator\AppData\Local
        LOGONSERVER=\\SD-20210607OIBM
        MOZ_PLUGIN_PATH=C:\Program Files (x86)\Foxit Software\Foxit Reader\plugins\
        NUMBER_OF_PROCESSORS=12
        OneDrive=C:\Users\Administrator\OneDrive
        OS=Windows_NT
        Path=C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2107.13001.0_neutral__8wekyb3d8bbwe\x86;C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2107.13001.0_neutral__8wekyb3d8bbwe\amd64;C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Git\cmd;C:\soft\procdump;C:\Program Files\Java\jdk1.8.0_121\bin;C:\Program Files\Java\jdk1.8.0_121\jre\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Azure Data Studio\bin;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Visual Leak Detector\bin\Win32;C:\Program Files (x86)\Visual Leak Detector\bin\Win64;C:\Program Files\TortoiseGit\bin;C:\Program Files\Microsoft\Web Platform Installer\;C:\soft\nginx;C:\Program Files (x86)\dotnet\;C:\Program Files (x86)\NetSarang\Xshell 7\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\.dotnet\tools;C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Administrator\AppData\Roaming\npm
        PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
        PROCESSOR_ARCHITECTURE=x86
        PROCESSOR_ARCHITEW6432=AMD64
        PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 165 Stepping 2, GenuineIntel
        PROCESSOR_LEVEL=6
        PROCESSOR_REVISION=a502
        ProgramData=C:\ProgramData
        ProgramFiles=C:\Program Files (x86)
        ProgramFiles(x86)=C:\Program Files (x86)
        ProgramW6432=C:\Program Files
        PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\PowerShell\Modules\
        PUBLIC=C:\Users\Public
        SRCSRV_SHOW_TF_PROMPT=1
        SystemDrive=C:
        SystemRoot=C:\Windows
        TEMP=C:\Users\ADMINI~1\AppData\Local\Temp
        TMP=C:\Users\ADMINI~1\AppData\Local\Temp
        USERDOMAIN=SD-20210607OIBM
        USERDOMAIN_ROAMINGPROFILE=SD-20210607OIBM
        USERNAME=Administrator
        USERPROFILE=C:\Users\Administrator
        windir=C:\Windows
        WXDRIVE_START_ARGS=--wxdrive-setting=0 --disable-gpu --disable-software-rasterizer --enable-features=NetworkServiceInProcess
        ZES_ENABLE_SYSMAN=1

哈哈,这信息是不是相当多。。。。

4. 其他信息

很遗憾的是,我目前还不知道从 dump 中提取出当前机器的内存大小,如果有知道的,可以聊一聊。

标签: sp2841a502角度传感器a502高精度电位计角度传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台