列举进程的内核函数ZwQuerySystemInformation _asm

ZwQuerySystemInformation获取进程列表信息 测试环境Delphi2009,Windows10。能够通过ZwQuerySystemInformation获取进程信息块,详细的记录类型的参数都标注清楚的。这个函数相对于进程快照有一个缺陷,不能及时得获取我自己进程的信息。(可能是我自己哪里出错,但进程信息都是能够正确获取的)代码是我自己测试可用的 立即下载
编译的时候指定控制台模式/subsystem:CONSOLE 

.586
.model flat, stdcall
option casemap:none

include windows.inc
include kernel32.inc
include user32.inc
include masm32.inc
include advapi32.inc
includelib kernel32.lib
includelib user32.lib
includelib advapi32.lib
includelib masm32.lib

UNICODE_STRING STRUCT
_Length WORD ? ; len of string in bytes (not chars)
MaximumLength WORD ? ; len of Buffer in bytes (not chars)
Buffer PWSTR ? ; pointer to string
UNICODE_STRING ENDS

SYSTEMTHREADS struct
KernelTime db     8 dup(?)
UserTime db     8 dup(?)
CreateTime db     8 dup(?)
WaitTime ULONG ?           
StartAddress PVOID ?         
ClientIs dd ?
Priority dd ?
BasePriority dd ?
ContextSwitchCount ULONG ?           
ThreadState ULONG ?
WaitReason dd   ?   ;KWAIT_REASON 
SYSTEMTHREADS ends

SYSTEMPROCESSES struct 
NextEntryDelta ULONG ? 
ThreadCount ULONG ?
Reserved1 dd 6 DUP(?)
CreateTime db     8 dup(?)
UserTime db     8 dup(?)
KernelTime db     8 dup(?)
ProcessName UNICODE_STRING   <>   
BasePriority dd ? ;变量类型KPRIORITY         
ProcessId ULONG ?         
InheritedFromProcessId ULONG ?
HandleCount ULONG ?
Reserved2 ULONG 2 DUP(?)
VmCounters dd ? ;VM_COUNTERS
IoCounters dd ? ;IO_COUNTERS 
Threads SYSTEMTHREADS <>
SYSTEMPROCESSES ends
.const
NT_PROCESSTHREAD_INFO equ 5
STATUS_SUCCESS equ 0
.data
ZwQuerySystemInformation db "ZwQuerySystemInformation",0
Ntdll   db "NTDLL.DLL",0
mytitle   db "利用ZwQuerySystemInformation列进程",0
getsuccess   db "Get original Data Success",13,10,0
apiaddr   dd ?
Pprocessinfo   dd ?
ReturnLength   dd ?
ProcessIdFormat   db "ID=%d ProcessName=%ws",13,10,0 ;进程名是UNICODE格式的要用ws%
buffer   db 255 dup(?)
ProcessCount   dd 0
ProcessCountFormat db "Total Process=%d",13,10,0
.data?
processinfo   db 50000H dup(?)

.code

start proc
invoke LoadLibrary,offset Ntdll ;没什么好解释的,装载dll
invoke GetProcAddress,eax,offset ZwQuerySystemInformation;获取函数地址
mov apiaddr,eax
mov Pprocessinfo,offset processinfo
mov ecx,offset ReturnLength
push ecx
push 50000H
push Pprocessinfo
push NT_PROCESSTHREAD_INFO
call apiaddr ;调用函数,上面都是其参数
.if eax == STATUS_SUCCESS
invoke StdOut,offset getsuccess
.endif
;列举进程
mov edi,Pprocessinfo;保存到edi
assume edi: ptr SYSTEMPROCESSES;对应结构
.while [edi].NextEntryDelta!=0
invoke wsprintf,addr buffer, addr ProcessIdFormat,[edi].ProcessId,[edi].ProcessName.Buffer;打印输出结构成员
invoke StdOut,offset buffer
add edi,[edi].NextEntryDelta;恢复堆栈
inc ProcessCount;这里每循环一次其值就多一次,纪录进程个数
.endw
assume edi:nothing
invoke wsprintf,addr buffer, addr ProcessCountFormat,ProcessCount;进程个数
invoke StdOut,offset buffer;控制台下输出
ret

start endp

end start
 
ZwQuerySystemInformation 查看系统进程信息 立即下载

相关推荐

ZwQuerySystemInformation枚举进程线程的软件源码

ZwQuerySystemInformation枚举进程线程VB很实用的源码,精心挑选的精品源码

ZwQuerySystemInformation 安全使用心得 Delphi 版

作为DELPHI版本,需要引用jwaNative,JwaWinType,他们是JEDIAPI的一部分。JEDI官网有下载。 先给出2个辅助函数和一些结构体。 type PRecord=^TRecord; TRecord=record end; PSystemInformationList...

weixin_30462049的博客 387

ZwQuerySystemInformation的完整声明

在我的资源《微软未公开函数ZwQuerySystemInformation的使用方法(vb编程专用)》中的声明不完整,会造成运行错误,这个文档是完整的声明,加了一个Enum让大家可以顺利编写程序。

ZwQuerySystemInformation枚举内核模块及简单应用

简单说,即调用第11号功能,枚举一下内核中已加载的模块。 部分代码如下: //功能号为11,先获取所需的缓冲区大小 ZwQuerySystemInformation(SystemModuleInformation,NULL,0,&needlen); //申请内存 ZwA

创造神话,实现梦想! 4715

微软未公开函数ZwQuerySystemInformation的使用方法(vb编程专用)

网上关于函数ZwQuerySystemInformation的使用方法少的可怜,这是本人关于此函数的一些心得,在vb上玩api的朋友应该知道这份资料来之不易,我也不为难大家了,0分让你们下了! P.S.因使用win7的notepad编辑此文档,所以如果文档不能正常打开,见谅!

ZwQuerySystemInformation查找进程文件句柄

ZwQuerySystemInformation查找文件句柄

利用ZwQuerySystemInformation和paspi枚举进程

#include #include #include typedef DWORD (WINAPI *ZWQUERYSYSTEMINFORMATION)(DWORD,PVOID,DWORD,PDWORD); typedef struct _SYSTEM_PROCESS_INFORMATION{ DWORD NextEntryDelta; DWORD ThreadCount;

Makers 1259

Lm317电压源芯片制作电流源

还在找电流源芯片么?如何使用电压源芯片快速搭建电流源。

Ekko的博客 1万+

函数ZwQuerySystemInformation小结

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

weixin_33906657的博客 417

LCD、LED、OLED、Mini LED、Micro LED、全阵列LED、QLED、QD-OLED、QNED、AMOLED是什么意思?

LCD(液晶显示器,Liquid Crystal Display)定义:LCD 是一种利用液晶材料控制光线通过的显示技术,需依靠背光源(如冷阴极荧光灯 CCFL 或 LED)照亮液晶层以形成图像。技术原理:液晶分子在电场作用下改变排列,控制背光通过的强度和颜色。液晶本身不发光,需外部光源。特点:结构包括背光层、液晶层、彩色滤光片和偏光片。响应时间较慢,黑色表现因背光漏光而偏灰。LED(发光二极管显示,Light Emitting Diode)定义。

中国最威武的城市!武功军威-武威,铁骨铮铮! 3431

从IR Drop到EM分析:数字IC电源规划中那些没人明说的细节(以MTCMOS配置为例)

本文深入探讨数字IC后端设计中电源规划的关键细节,特别关注MTCMOS配置、电源网络电阻最小化和level shifter供电等实战技巧。通过分析IR Drop和EM问题,提供优化floorplan和powerplan的具体策略,帮助工程师避免常见陷阱,提升芯片设计的稳定性和可靠性。

q9w8e7r6t5的博客 511

WIN32汇编学习笔记(一)

win32汇编入门级

aak1247的博客 921

从零到一:Qt与PCL的跨平台开发环境搭建全攻略

本文详细介绍了从零开始搭建Qt与PCL跨平台开发环境的完整流程,涵盖Windows、Linux和macOS三大平台。重点解析了Qt5与Qt6版本选择、PCL库安装配置、VTK集成等关键技术要点,并提供跨平台CMake项目模板和常见问题解决方案,助力开发者快速构建三维点云处理应用。

weixin_29280657的博客 384

SSDT_Helper for Delphi v1(Ring3下查看SSDT HOOK的Delphi版)

SSDT(System Services Descriptor Table) 这几年被讲烂了,各大论坛、Blog相关文章都是成堆成堆的。检测SSDT HOOK的代码也相当多,只不过放眼望去都是C的。实在不忍自己苦苦捍卫的Delphi就此末落(D2009倒是让人振奋了一把),于是把自己感兴趣的几个代码都给翻成了Delphi的,现在拿来共享。 不会驱动,这方面涉水也比较浅,只能写个查看S

zbc_vc的专栏 1040

去面试游戏测试工程师,面试官看着我的简历呆住了

!我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

MXB1220的博客 7332

使用 DeepSeek 配合 即梦AI 生成视频的详细教程

访问即梦AI官网,选择“AI作图”功能,将DeepSeek生成的提示词逐条粘贴至输入框,选择适配的模型(如“通用XL Pro”)和参数(如画幅比例、风格强度)1113。“我要制作一个关于普洱茶文化的宣传视频,请设计一个30秒的脚本,包含时间轴、画面描述、文案和分镜提示词,以表格形式输出。:云南古茶树群,清晨薄雾,金色晨光,露珠特写,国风山水画质感,16:9画幅,使用Nikon D850参数模拟513。:结合DeepSeek生成的知识点脚本与即梦AI的插画风格,制作科普动画211。

weixin_48995695的博客 3万+

内核获取模块信息

本次使用的SYSTEM_INFORMATION_CLASS中的第11个参数SystemModuleInformation来获取用户态的模块信息。该结构体中包含了模块的数量,RTL_PROCESS_MODULE数组,这个是一个柔性数组。由于第一次不知道模块数量,所以需要调用这个函数来获取大小。只需要遍历该数组即可获取到对应的模块信息。然后再次调用该函数获取模块信息。BuffSize是返回的大小。

qq_45444877的博客 370

利用Ghidra与SVD插件实现STM32固件深度逆向分析

本文详细介绍了如何利用Ghidra逆向工程框架结合SVD插件,实现对STM32固件(.bin文件)的深度逆向分析。通过加载描述芯片外设寄存器的SVD文件,Ghidra能将晦涩的硬件地址操作转换为可读的寄存器符号,极大提升了对嵌入式固件中通信协议、安全校验等关键逻辑的分析效率。文章涵盖了从Java环境搭建、工具配置到实战逆向解析的完整流程。

peach的博客 945

Ring3枚举进程

在Ring3枚举进程通常有一下几种方法:ToolHelper32PsapiZwQuerySystemInformationWTSEnumerateProcesses一、ToolHelper32头文件:TlHelp32.h关键函数:CreateToolhelp32Snapshot,Process32NextBOOL EnumProcessesByToolHelper32(){    PROCESSE...

VSavitar的博客 579

大厂面试级C#上位机完整项目(终极版):工业级Modbus协议封装 + 标准多线程采集 + 全链路异常处理

(Modbus统一通信接口)、(采集服务接口)职责:定义所有核心操作的标准接口,屏蔽底层差异(RTU/TCP、串口/TCP),面向接口编程的核心体现。新增协议/采集方式,只需实现接口,核心代码零改动。/// 自定义Modbus通信异常类 - 大厂标准,区分通信异常和其他异常/// 包含异常信息+内部异常,可溯源完整错误堆栈,面试必写本次项目是对标大厂工控上位机岗位的终极版实战项目,所有代码、架构、设计都遵循大厂标准,覆盖了面试官考察的所有核心考点✅ 纯手写Modbus协议,体现你对协议底层的吃透。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 859

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

内核下枚举进程 (二)ZwQuerySystemInformation

说明: SYSTEM_INFORMATION_CLASS 的5号功能枚举进程信息。其是这个函数对应着ring3下的 NtQuerySystemInformation,但msdn上说win8以后ZwQuerySystemInformation函数已经不可用,本人也没有在win8下测试过。留给读者自己实验吧。顺便罗嗦一下,不像ring3下使用此函数是要先LoadLibrary,然后GetPr...

1069

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【工具类】ZwQuerySystemInformation枚举进程

曾经基于兴趣搞过很多小功能,但后来工作中比较少用到,代码也就安静的沉没在磁盘中。最近打算整理下之前弄过的东西,也不算荒废之前的付出吧。。。 void InitProcessList() { ZWQUERYSYSSTEMINFORMATION MyZwQuerySystemInformation = (ZWQUERYSYSSTEMINFORMATION)GetProcAddress(Get...

Fzuim的博客 938

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ZwQuerySystemInformation

ZwQuerySystemInformation 2011-05-06 11:32 最近一直在纠结~~ 代码是网上的~~ #include  #include  #include  #include  #pragma comment( linker,

whispermemory的专栏 1575
上一篇: 通过进程链枚举进程_asm
下一篇: Kill_Vagaa_Process完整版
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值