RING3级下枚举用户进程的基本姿势
2024-09-06 19:53:03
简述
Ring3用户态下查看进程信息的基本方法
代码样例
#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <tchar.h>
#include <Windows.h>
#include <TlHelp32.h> //Windows.h头文件必须包含在TlHelp32.h之前
using namespace std;
int main(void)
{
LPTSTR buff = new TCHAR[1024];
PROCESSENTRY32 pe32; //进程信息结构体
memset(buff,0x00,1024);
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //获取进程快照
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
cout<<"SnapShot Create Error"<<endl;
return 0;
}
pe32.dwSize = sizeof(pe32);
BOOL bProcess = Process32First(hProcessSnap,&pe32); //获取第一个进程
printf(" ID FileName\n");
printf("----- --------\n");
while (bProcess)
{
wsprintf(buff,_TEXT("%d %s"),pe32.th32ProcessID,pe32.szExeFile);
wcout<<buff<<endl;
memset(buff,0x00,1024*sizeof(TCHAR));
bProcess = Process32Next(hProcessSnap,&pe32); //在调用Process32First函数后继续调用下一个进程
}
system("pause");
return 0;
}
最新文章
- iOS-----写一个规范的单例--->;
- jquery添加光棒效果的各种方式以及简单动画复杂动画
- mysql中表名是order的CRUD的错误
- Recover Binary Search Tree--leetcode难题讲解
- Make Rules
- New MVC World
- ThinkPad New X1 Carbon中关闭任务栏上的触摸键盘
- TCP和UDP 的区别和适用场合
- CJOJ 免费航班
- 从PRISM开始学WPF(八)導航Navigation?
- oracle insert into 插入多组数据方法总结
- [转] Mongoose简要API
- Unity3D中自带事件函数的执行顺序
- PDO 基础知识
- could not connect to server: Connection refused (0x0000274D/10061)
- Android.mk遍历子目录所有文件
- Docker安装及基础知识
- Runtime - Associated Objects (关联对象) 的实现原理
- 正则表达式REGEXP
- springcloud 笔记-服务注册中心
热门文章
- new String(";abc";),到底在不在常量池中存储";abc";?
- HDOJ-1754(线段树+单点更新)
- HDR(高动态范围)
- MySql学习---数据库基本类型,事务,多表查询
- cpu缓存和volatile
- [UWP] 模仿哔哩哔哩的一键三连
- Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)
- ECMAScript 2017(ES8)新特性简介
- Hystrix 实战经验分享
- Codeforces1114C. Trailing Loves (or L&#39;oeufs?)-(质因子分解)