• Dump文件数据存储格式(三)


    五、杂项信息流(MiscInfoStream)

    在系统信息流后紧挨着的就是杂项信息流。而系统信息流信息如下

    0xEC+0n56=0x124

    而杂项信息流如下:

    可知偏移是0x124,即证明杂项信息流是紧挨着系统信息流,大小有1364字节。

    MiscInfoStream包含各种信息。数据结构如下:

    typedef struct _MINIDUMP_MISC_INFO_5 {
        ULONG32 SizeOfInfo;
        ULONG32 Flags1;
        ULONG32 ProcessId;
        ULONG32 ProcessCreateTime;
        ULONG32 ProcessUserTime;
        ULONG32 ProcessKernelTime;
        ULONG32 ProcessorMaxMhz;
        ULONG32 ProcessorCurrentMhz;
        ULONG32 ProcessorMhzLimit;
        ULONG32 ProcessorMaxIdleState;
        ULONG32 ProcessorCurrentIdleState;
        ULONG32 ProcessIntegrityLevel;
        ULONG32 ProcessExecuteFlags;
        ULONG32 ProtectedProcess;
        ULONG32 TimeZoneId;
        TIME_ZONE_INFORMATION TimeZone;
        WCHAR   BuildString[MAX_PATH];
        WCHAR   DbgBldStr[40];
        XSTATE_CONFIG_FEATURE_MSC_INFO XStateData;    
        ULONG32 ProcessCookie;
    } MINIDUMP_MISC_INFO_5, *PMINIDUMP_MISC_INFO_5;
    
    typedef struct _TIME_ZONE_INFORMATION {
      LONG       Bias;
      WCHAR      StandardName[32];
      SYSTEMTIME StandardDate;
      LONG       StandardBias;
      WCHAR      DaylightName[32];
      SYSTEMTIME DaylightDate;
      LONG       DaylightBias;
    } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
    
    typedef struct _XSTATE_CONFIG_FEATURE_MSC_INFO
    {
        ULONG32 SizeOfInfo;
        ULONG32 ContextSize;
        ULONG64 EnabledFeatures;                
        XSTATE_FEATURE Features[MAXIMUM_XSTATE_FEATURES];
    } XSTATE_CONFIG_FEATURE_MSC_INFO, *PXSTATE_CONFIG_FEATURE_MSC_INFO;

    其实MINIDUMP_MISC_INFO_5是从MINIDUMP_MISC_INFO、MINIDUMP_MISC_INFO_1、MINIDUMP_MISC_INFO_2、MINIDUMP_MISC_INFO_3、MINIDUMP_MISC_INFO_4等结构随着版本的变化发展而来,下面简单介绍下MINIDUMP_MISC_INFO_5结构的成员,

    SizeOfInfo

    结构的大小,以字节为单位。

    Flags1

    指示此结构的有效成员的标志。此成员可以是以下一个或多个值。

    ValueMeaning
    MINIDUMP_MISC1_PROCESS_ID
    0x00000001
    ProcessId is used.
    MINIDUMP_MISC1_PROCESS_TIMES
    0x00000002
    ProcessCreateTime, ProcessKernelTime, and ProcessUserTime are used.
    MINIDUMP_MISC1_PROCESSOR_POWER_INFO
    0x00000004
    ProcessorMaxMhz, ProcessorCurrentMhz, ProcessorMhzLimit, ProcessorMaxIdleState, and ProcessorCurrentIdleState are used.

    ProcessId

    进程的标识符。如果Flags1未指定MINIDUMP_MISC1_PROCESS_ID,则此成员未使用。

    ProcessCreateTime

    进程的创建时间,采用time_t格式。如果Flags1未指定MINIDUMP_MISC1_PROCESS_TIMES,则此成员未使用。

    ProcessUserTime

    进程在用户模式下执行的时间,以秒为单位。确定进程的每个线程在用户模式下执行的时间,然后将所有这些时间相加以获得该值。如果Flags1未指定MINIDUMP_MISC1_PROCESS_TIMES,则此成员未使用。

    ProcessKernelTime

    进程在内核模式下执行的时间,以秒为单位。确定进程的每个线程在内核模式下执行的时间,然后将所有这些时间相加以获得该值。如果Flags1未指定MINIDUMP_MISC1_PROCESS_TIMES,则此成员未使用。

    ProcessorMaxMhz

    系统处理器的最大指定时钟频率,以MHz为单位。如果Flags1未指定MINIDUMP_MISC1_PROCESSOR_POWER_INFO,则此成员未使用。

    ProcessorCurrentMhz

    处理器时钟频率,以兆赫为单位。此数字是指定的最大处理器时钟频率乘以当前处理器限制。如果Flags1未指定MINIDUMP_MISC1_PROCESSOR_POWER_INFO,则此成员未使用。

    ProcessorMhzLimit

    处理器时钟频率的限制,以兆赫为单位。此数字是指定的最大处理器时钟频率乘以当前处理器热限制。如果Flags1未指定MINIDUMP_MISC1_PROCESSOR_POWER_INFO,则此成员未使用。

    ProcessorMaxIdleState

    处理器的最大空闲状态。如果Flags1未指定MINIDUMP_MISC1_PROCESSOR_POWER_INFO,则此成员未使用。

    ProcessorCurrentIdleState

    处理器的当前空闲状态。如果Flags1未指定MINIDUMP_MISC1_PROCESSOR_POWER_INFO,则此成员将未使用。

    ProcessIntegrityLevel

    对于属于普通身份验证用户的进程,Windows通常使用“SECURITY_MANDATORY_media_RID”(0x2000),对于提升的进程,通常使用“SECURITY_MANDATORY_HIGH_RID”(0x3000)。
    ProcessExecuteFlags

    简要说明进程的执行标志。这似乎是由“NtQueryInformationProcess()返回的
    ProtectedProcess

    进程是否受保护。
    TimeZoneId

    快照时系统所在位置是否夏令时。可取如下值

    `0` if the location does not observe daylight saving time at all. The TIME_ZONE_INFORMATION::StandardName field of #TimeZoneId contains the time zone name.
    `1` if the location observes daylight saving time, but standard time  was in effect at the time of the snapshot. The TIME_ZONE_INFORMATION::StandardName field of #TimeZoneId contains the time zone name.
    `2` if the location observes daylight saving time, and it was in effect at the time of the snapshot. The TIME_ZONE_INFORMATION::DaylightName  field of #TimeZoneId contains the time zone name.

    TimeZone

    有关系统位置的时区的信息。

    BuildString[MAX_PATH]

    操作系统的“构建字符串”,标识操作系统的特定内部版本的字符串。这个字符串是UTF-16编码的,由UTF-16`NUL`代码单元终止。在Windows 8.1(NT 6.3)上,这是“6.3.9600.17031 (winblue_gdr.140221-1952)
    DbgBldStr[40]

    小型转储生产者的“构建字符串”,一个标识生成小型转储的模块的字符串文件。这个字符串是UTF-16编码的,并以UTF-16`NUL`代码结尾单位。开Windows 8.1(NT 6.3),可能“dbghelp.i386,6.3.9600.16520”或dbghelp.amd64,6.3.9600.16520“取决于CPU架构。
    XStateData

    有关存储在CPU特定上下文中的XSAVE托管状态的信息结构。这个信息可用于定位特定于CPU的上下文结构中的状态组件。
    ProcessCookie

    进程cookie

  • 相关阅读:
    Java 泛型学习四 自动擦除
    Java 泛型学习三 通配符
    ava的动态性支持学习七 方法句柄调用的性能对比
    Java 泛型学习一 泛型概念
    Java中正则Matcher类的matches()、lookAt()和find()的区别
    Java 泛型学习五 泛型擦除带来的不自然
    Java I/O 流的简单介绍及示例
    Java 泛型学习二 泛型的限制
    Java 泛型学习六 泛型类型系统
    字节存储机制:bigedian 和 littleendian
  • 原文地址:https://www.cnblogs.com/yilang/p/13820291.html
Copyright © 2020-2023  润新知