SYSTEM_INFORMATION_CLASS

typedef enum _SYSTEM_INFORMATION_CLASS   
{   
    SystemBasicInformation,                 //  0 Y N   
    SystemProcessorInformation,             //  1 Y N   
    SystemPerformanceInformation,           //  2 Y N   
    SystemTimeOfDayInformation,             //  3 Y N   
    SystemNotImplemented1,                  //  4 Y N   
    SystemProcessesAndThreadsInformation,   //  5 Y N   
    SystemCallCounts,                       //  6 Y N   
    SystemConfigurationInformation,         //  7 Y N   
    SystemProcessorTimes,                   //  8 Y N   
    SystemGlobalFlag,                       //  9 Y Y   
    SystemNotImplemented2,                  // 10 Y N   
    SystemModuleInformation,                // 11 Y N   
    SystemLockInformation,                  // 12 Y N   
    SystemNotImplemented3,                  // 13 Y N   
    SystemNotImplemented4,                  // 14 Y N   
    SystemNotImplemented5,                  // 15 Y N   
    SystemHandleInformation,                // 16 Y N   
    SystemObjectInformation,                // 17 Y N   
    SystemPagefileInformation,              // 18 Y N   
    SystemInstructionEmulationCounts,       // 19 Y N   
    SystemInvalidInfoClass1,                // 20   
    SystemCacheInformation,                 // 21 Y Y   
    SystemPoolTagInformation,               // 22 Y N   
    SystemProcessorStatistics,              // 23 Y N   
    SystemDpcInformation,                   // 24 Y Y   
    SystemNotImplemented6,                  // 25 Y N   
    SystemLoadImage,                        // 26 N Y   
    SystemUnloadImage,                      // 27 N Y   
    SystemTimeAdjustment,                   // 28 Y Y   
    SystemNotImplemented7,                  // 29 Y N   
    SystemNotImplemented8,                  // 30 Y N   
    SystemNotImplemented9,                  // 31 Y N   
    SystemCrashDumpInformation,             // 32 Y N   
    SystemExceptionInformation,             // 33 Y N   
    SystemCrashDumpStateInformation,        // 34 Y Y/N   
    SystemKernelDebuggerInformation,        // 35 Y N   
    SystemContextSwitchInformation,         // 36 Y N   
    SystemRegistryQuotaInformation,         // 37 Y Y   
    SystemLoadAndCallImage,                 // 38 N Y   
    SystemPrioritySeparation,               // 39 N Y   
    SystemNotImplemented10,                 // 40 Y N   
    SystemNotImplemented11,                 // 41 Y N   
    SystemInvalidInfoClass2,                // 42   
    SystemInvalidInfoClass3,                // 43   
    SystemTimeZoneInformation,              // 44 Y N   
    SystemLookasideInformation,             // 45 Y N   
    SystemSetTimeSlipEvent,                 // 46 N Y   
    SystemCreateSession,                    // 47 N Y   
    SystemDeleteSession,                    // 48 N Y   
    SystemInvalidInfoClass4,                // 49   
    SystemRangeStartInformation,            // 50 Y N   
    SystemVerifierInformation,              // 51 Y Y   
    SystemAddVerifier,                      // 52 N Y   
    SystemSessionProcessesInformation       // 53 Y N   
} SYSTEM_INFORMATION_CLASS;

时间: 2024-11-13 09:20:17

SYSTEM_INFORMATION_CLASS的相关文章

内核级HOOK的几种实现与应用

实现内核级 HOOK 对于拦截.分析.跟踪系统内核起着致关重要的作用.实现的方法不同意味着应用侧重点的不同.如想要拦截 NATIVE API 那么可能常用的就是 HOOK SERVICE TABLE 的方法.如果要分析一些系统调用,那么可能想到用 HOOK INT 2E 中断来实现.如果想要拦截或跟踪其他内核 DRIVER 的调用,那么就要用到HOOK PE 的方法来实现.这里我们更注重的是实现,原理方面已有不少高手在网上发表过文章.大家可以结合起来读.下面以我写的几个实例程序来讲解一下各种方法

钩取API之代码修改方法【一】

IAT方式就不去花精力了,加了壳的程序用这方法压根用不上. 就熟悉一下代码修改方法.书上用的是隐藏进程的实例 第一种办法 一,枚举进程,给所有进程加载DLL[用远程线程注入] 二,传入需要隐藏的进程名 三,判断有没有修改过需要钩取的函数,如果还没有修改过就改掉,跳向自己的函数,同时保存好原来的值 四,在自己的替代函数里将原来的值修改回去,并再执行一次,执行完做相关处理 五,在自己的替代函数最后再钩取函数,修改跳转到替代函数 基本逻辑就是这样,像是移花接木啊... DLL代码: #define S

ntdll.dll函数原型

/*NTDLL Base Functions*/NTSYSAPI NTSTATUS NTAPI NtAcceptConnectPort( OUT PHANDLE PortHandle, IN PVOID PortIdentifier, IN PPORT_MESSAGE Message, IN BOOLEAN Accept, IN OUT PPORT_VIEW ServerView OPTIONAL, OUT PREMOTE_PORT_VIEW ClientView OPTIONAL ); NTS

NtQuerySystemInformation的使用(提供50余种信息)

今天,我们主要讨论的是一个函数NtQuerySystemInformation(ZwQuerySystemInformation).当然,你不要小看这么一个函数,它却为我们提供了丰富的系统信息,同时还包括对某些信息的控制和设置.以下是这个函数的原型: typedef NTSTATUS (__stdcall *NTQUERYSYSTEMINFORMATION)    (IN      SYSTEM_INFORMATION_CLASS SystemInformationClass,     IN O

指向API的函数指针定义方法

typedef NTSTATUS ( __stdcall *ZWQUERYSYSTEMINFORMATION ) ( IN SYSTEM_INFORMATION_CLASS SystemInformationClass, IN OUT PVOID SystemInformation, IN ULONG SystemInformationLength, OUT PULONG ReturnLength OPTIONAL );

Windows x86/ x64 Ring3层注入Dll总结

0x01.前言 提到Dll的注入,立马能够想到的方法就有很多,比如利用远程线程.Apc等等,这里我对Ring3层的Dll注入学习做一个总结吧. 我把注入的方法分成六类,分别是:1.创建新线程.2.设置线程上下背景文,修改寄存器.3.插入Apc队列.4.修改注册表.5.挂钩窗口消息.6.远程手动实现LoadLibrary. 那么下面就开始学习之旅吧! 0x02.预备工作 在涉及到注入的程序中,提升程序的权限自然是必不可少的,这里我提供了两个封装的函数,都可以用于提权.第一个是通过权限令牌来调整权限

关闭其它进程占用的文件句柄

当我们启动一个子进程, 打开读写管道,同时设置子进程继承这些管道的句柄, 我们就可以操作子进程的标准输入和标准输出了. 这样有个弊端,子进程会继承父进程打开的所有文件句柄. 如果子进程不退出,一直持续任务,那么,被打开的文件就无法重命名和删除了. 有两个解决的办法: 1. CreateFile的时候属性参数直接指定不允许继承句柄.但是这个方法有个弊端: c/c++的文件操作并没有提供属性设置,默认的属性是被继承的. 如果写的是跨平台程序必须使用标准库时,就没有办法了. 2. 使用系统API枚举所

获取进程CPU占用率 -- NtQuerySystemInformation

 今天,我们主要讨论的是一个函数NtQuerySystemInformation(ZwQuerySystemInformation).当然,你不要小看这么一个函数,它却为我们提供了丰富的系统信息,同时还包 括对某些信息的控制和设置. 以下是这个函数的原型: typedef NTSTATUS (__stdcall *NTQUERYSYSTEMINFORMATION) (IN SYSTEM_INFORMATION_CLASS SystemInformationClass, IN OUT PVOI

函数ZwQuerySystemInformation小结

该函数存在于NTDLL.DLL动态链接库中.NTDLL.DLL负责ring3与ring0之间的通信.当使用子系统方式进行系统调用的时候,ntdll.dll和SSDT会配合使用.关于SSDT技术以后会讲解到. 关于ZwQuerySystemInformation这个函数可以用来查询进程信息.内核信息.硬件信息(例如CPU数目).句柄信息.时间信息等54个系统信息. 该函数的原型是 NTSTATUS WINAPI ZwQuerySystemInformation( __in          SYS