前段时间有位朋友问我,如何从 dump 中提取出哪些和机器相关的信息?比如:机器内存大小,cpu核数,机器名,机器的环境变量 等等。

那如何提取到里面的信息呢?当然我也没说全部可以提取的到。。。这里就拿自己的机器举例吧:

1. 如何提取 cpu 核数

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

0:006> !cpuid
CP  F/M/S  Manufacturer     MHz0  6,5,2  GenuineIntel    25921  6,5,2  GenuineIntel    25922  6,5,2  GenuineIntel    25923  6,5,2  GenuineIntel    25924  6,5,2  GenuineIntel    25925  6,5,2  GenuineIntel    25926  6,5,2  GenuineIntel    25927  6,5,2  GenuineIntel    25928  6,5,2  GenuineIntel    25929  6,5,2  GenuineIntel    2592
10  6,5,2  GenuineIntel    2592
11  6,5,2  GenuineIntel    2592

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

2. 如何提取机器名

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

0:006> !envvar COMPUTERNAMECOMPUTERNAME = SD-20210607OIBM

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

从上面的 !envvar 用法中你应该能感触到,既然能提取环境变量,那能不能获取到所有的环境变量呢?当然可以了哈。用 !peb,也就是 Process Environment Block。

0:006> !peb
PEB at 002af000InheritedAddressSpace:    NoReadImageFileExecOptions: NoBeingDebugged:            YesImageBaseAddress:         00400000NtGlobalFlag:             4070NtGlobalFlag2:            0Ldr                       77975d80Ldr.Initialized:          YesLdr.InInitializationOrderModuleList: 006e4f68 . 0075e630Ldr.InLoadOrderModuleList:           006e5060 . 0075bae8Ldr.InMemoryOrderModuleList:         006e5068 . 0075baf0Base TimeStamp                     Module400000 D:\net5\ConsoleApp4\ConsoleApp1\bin\Debug\ConsoleApp1.exe77850000 5f641e44 Sep 18 10:41:08 2020 C:\Windows\SYSTEM32\ntdll.dll7c570000 C:\Windows\SYSTEM32\MSCOREE.DLL75ac0000 C:\Windows\System32\KERNEL32.dll76900000 197b16c5 Jul 20 05:12:37 1983 C:\Windows\System32\KERNELBASE.dll76880000 C:\Windows\System32\ADVAPI32.dll75740000 7f567a50 Sep 12 21:10:40 2037 C:\Windows\System32\msvcrt.dll76170000 56a91365 Jan 28 02:58:45 2016 C:\Windows\System32\sechost.dll76c20000 C:\Windows\System32\RPCRT4.dll7c5d0000 5e7d1df2 Mar 27 05:26:10 2020 C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll758a0000 C:\Windows\System32\SHLWAPI.dll76490000 3d49eb55 Aug 02 10:15:49 2002 C:\Windows\System32\kernel.appcore.dll74b60000 C:\Windows\SYSTEM32\VERSION.dll79a40000 5f7e61bb Oct 08 08:47:55 2020 C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll76650000 1e757656 Mar 12 20:28:06 1986 C:\Windows\System32\USER32.dll764d0000 55cf9768 Aug 16 03:47:52 2015 C:\Windows\System32\win32u.dll75480000 1baae673 Sep 16 20:15:47 1984 C:\Windows\System32\GDI32.dll764f0000 C:\Windows\System32\gdi32full.dll7a210000 5bac17e1 Sep 27 07:36:01 2018 C:\Windows\SYSTEM32\ucrtbase_clr0400.dll7a1f0000 5bac17e5 Sep 27 07:36:05 2018 C:\Windows\SYSTEM32\VCRUNTIME140_CLR0400.dll75810000 C:\Windows\System32\msvcp_win.dll77500000 73123758 Mar 06 22:27:36 2031 C:\Windows\System32\ucrtbase.dll764a0000 39046a45 Apr 24 23:37:41 2000 C:\Windows\System32\IMM32.DLL7a2c0000 5f7e60f6 Oct 08 08:44:38 2020 C:\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\218db16dceaef380c6daf35c6a48f313\mscorlib.ni.dll762a0000 4f8dda94 Apr 18 05:03:16 2012 C:\Windows\System32\ole32.dll754b0000 2f680839 Mar 16 17:43:21 1995 C:\Windows\System32\combase.dll76b80000 C:\Windows\System32\bcryptPrimitives.dll7b6d0000 5f7e60c1 Oct 08 08:43:45 2020 C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll77750000 C:\Windows\System32\OLEAUT32.dllSubSystemData:     00000000ProcessHeap:       006e0000ProcessParameters: 006e29b8CurrentDirectory:  '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:\ProgramDataAPPDATA=C:\Users\Administrator\AppData\RoamingASPNETCORE_ENVIRONMENT=DevelopmentCLASSPATH=.;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 FilesCommonProgramFiles(x86)=C:\Program Files (x86)\Common FilesCommonProgramW6432=C:\Program Files\Common FilesCOMPUTERNAME=SD-20210607OIBMComSpec=C:\Windows\system32\cmd.exeDBGENG_OVERRIDE_DBGSRV_PATH=C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe\dbgsrv32.exeDBGHELP_HOMEDIR=C:\ProgramData\DbgDriverData=C:\Windows\System32\Drivers\DriverDataHOMEDRIVE=C:HOMEPATH=\Users\AdministratorJAVA_HOME=C:\Program Files\Java\jdk1.8.0_121LOCALAPPDATA=C:\Users\Administrator\AppData\LocalLOGONSERVER=\\SD-20210607OIBMMOZ_PLUGIN_PATH=C:\Program Files (x86)\Foxit Software\Foxit Reader\plugins\NUMBER_OF_PROCESSORS=12OneDrive=C:\Users\Administrator\OneDriveOS=Windows_NTPath=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\npmPATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSCPROCESSOR_ARCHITECTURE=x86PROCESSOR_ARCHITEW6432=AMD64PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 165 Stepping 2, GenuineIntelPROCESSOR_LEVEL=6PROCESSOR_REVISION=a502ProgramData=C:\ProgramDataProgramFiles=C:\Program Files (x86)ProgramFiles(x86)=C:\Program Files (x86)ProgramW6432=C:\Program FilesPSModulePath=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\PublicSRCSRV_SHOW_TF_PROMPT=1SystemDrive=C:SystemRoot=C:\WindowsTEMP=C:\Users\ADMINI~1\AppData\Local\TempTMP=C:\Users\ADMINI~1\AppData\Local\TempUSERDOMAIN=SD-20210607OIBMUSERDOMAIN_ROAMINGPROFILE=SD-20210607OIBMUSERNAME=AdministratorUSERPROFILE=C:\Users\Administratorwindir=C:\WindowsWXDRIVE_START_ARGS=--wxdrive-setting=0 --disable-gpu --disable-software-rasterizer --enable-features=NetworkServiceInProcessZES_ENABLE_SYSMAN=1

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

4. 其他信息

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

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

  1. go语言中无法获取goroutine相关的信息

    2019独角兽企业重金招聘Python工程师标准>>> java中可以通过Thread.getId()或者Thread.getName()来获得当前的Thread标识信息,但是gol ...

  2. jboss eap 6.2+ 版本中 加密datasource密码等敏感信息

    默认情况下,在jboss eap 6.2+ 管理控制台创建datasource后,会在standalone.xml(独立模式)或host.xml(域模式)中以明文保存相关敏感信息. 这会给服务器留下安 ...

  3. 【EntityFramework系列教程五,翻译】在ASP.NET MVC程序中借助EntityFramework读取相关数据...

    在前一章中你完成了复杂的学校数据模型,在本章节中你将读取并且展示这些相关数据--也就是EntityFramework加载到导航属性中的那些数据. 以下截图展示你要完成的效果: [慢模式.饥饿模式以及显 ...

  4. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解、使用gtExtras包添加一个图,显示表中某一列中的数字

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解.使用gtExtras包添加一个图,显示表中某一列中的数字 目录

  5. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解、使用gtExtras包添加一个图,显示表中某一列中的数字、并为类型数据添加图像符号标签

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解.使用gtExtras包添加一个图,显示表中某一列中的数字.并为类型数据添加图像符号标签 目 ...

  6. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gtExtras包添加一个图,显示表中某一列中的数字、并自定义表格数据显示的主题格式、并自定义数值数据的格式(例如百分比)

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gtExtras包添加一个图,显示表中某一列中的数字.并自定义表格数据显示的主题格式.并自定义数值数据的格式(例如百分比) 目录

  7. 交换一个整数二进制表示中的奇数位和偶数位

    题目 原文: 写程序交换一个整数二进制表示中的奇数位和偶数位,用尽可能少的代码实现. (比如,第0位和第1位交换,第2位和第3位交换-) 解答 这道题目比较简单.分别将这个整数的奇数位和偶数位提取出来 ...

  8. 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数

    给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数.            1.在文件中至少存在这样一个数?            2.如果有足够的内存,如何处理? ...

  9. 如何判断一个字符串在JavaScript中是否包含某个字符?

    本文翻译自:How to tell if a string contains a certain character in JavaScript? I have a page with a textb ...

最新文章

  1. php mysql xa_分布式事务之——MySQL对XA事务的支持
  2. 信号与系统-2021年春季学期-考试信息
  3. 利用计算机卸载,电脑使用痕迹彻底清理工具(无影无踪WYWZ)
  4. Qt-IP地址查询工具(使用HTTP GET方法)
  5. directx修复工具v3.2增强版_微PE v2.0维护盘增强版万能启动盘20200726
  6. 凡人和神学习和使用软件的七个层次
  7. linux重启ipv6_Linux关闭、开启、配置IPv6
  8. sqlmap指定cookie_sqlmap处理cookie数据
  9. 通过的镜像源安装python包
  10. 怒肝三个月啃完这110道面试题,跳槽薪资翻倍
  11. 美创科技荣获国家信息安全漏洞库(CNNVD)技术支撑单位
  12. 几台服务器怎么虚拟成一台,多台服务器虚拟成一台
  13. zabbix监控华为USG6000防火墙
  14. 游戏测试永乐大典——服务端架构,游戏服务器架构,游戏数据库设计
  15. Oracle安装之后电脑变慢
  16. 用友u8 如何配置文件服务器,用友u8服务器软件配置
  17. 理解h5文件并使用python对h5格式文件进行读写操作
  18. ea6500 v1 刷梅林_继续测试:Linksys EA6500 v1 的TT固件
  19. SpringCLoud+redis+es高并发项目《四》
  20. setcontext

热门文章

  1. EasyMock学习笔记
  2. 自己使用的一个.NET轻量开发结构
  3. 1-100之间的奇数
  4. PHP 长文章分页函数
  5. 【转载】创建型-工厂方法模式
  6. 让你一周变聪明的大脑保健操
  7. c#中的奇异递归模式
  8. container 的背后
  9. cocos2d-x 3.0rc2中读取sqlite文件
  10. win32 注册表操作