盐水冲茶的个人小站 +

windows进程相关的api记录

CreateToolhelp32Snapshot function

HANDLE WINAPI CreateToolhelp32Snapshot(
	_In_ DWORD dwFlags,
	_In_ DWORD th32ProcessID
);

CreateToolhelp32Snapshot函数为指定的进程、进程使用的堆[HEAP]、模块[MODULE]、线程[THREAD])建立一个快照[snapshot]。

dwFlags:指定将要创建包含哪一类系统信息的快照句柄,这个参数能够使用下列数值(变量)中的一个:

th32ProcessID:指定了进程的标识号,当设置为0时指定当前进程。该参数只有在设置了TH32CS_SNAPHEAPLIST或TH32CS_SNAPMOUDLE后才有效,在其他情况下该参数被忽略,所有的进程都会被快照。

返回值:调用成功,返回快照的句柄,调用失败,返回INVAID_HANDLE_VALUE。


下面是几个类似的遍历调用接口:

//从Snapshot得到第一个进程记录信息
BOOL Process32First(
	HANDLE hSnapshot,
	LPPROCESSENTRY32 lppe
);


//从Snapshot得到下一个Module记录信息
BOOL Process32Next(){
	HANDLE hSnapshot,
	LPPROCESSENTRY32 lppe 
};


BOOL Module32First(){
	HANDLE hSnapshot,
	PMODULEENTRY3 lpme
};

BOOL Module32Next(){
	HANDLE hSnapshot,
	LPMODULEENTRY3 lpme
};


BOOL Thread32First(){
	HANDLE hSnapshot,
	LPTHREADENTRY32 lpte
};


BOOL Thread32Next(){
	HANDLE hSnapshot,
	LPTHREADENTRY32 lpte
};


Toolhelp32ReadProcessMemory(){
	_In_  DWORD   th32ProcessID,
	_In_  LPCVOID lpBaseAddress,
	_Out_ LPVOID  lpBuffer,
	_In_  SIZE_T  cbRead,
	_Out_ SIZE_T  lpNumberOfBytesRead
};


HANDLE OpenProcess(){}

参数:DWORD dwDesiredAccess 权限描叙信息 这里我用到了PROCESS_ALL_ACCESS功能是具有所有权限 参数:BOOL bInheritHandle 确定该句柄是否可以被程继承 参数:dwPrcessID 进程ID号 作用:打开一个存在的进程对象

Blog

Dump

Project