ARK工具开发

ARKAnti-Rootkit(反Rootkit工具) 的缩写

Rootkit 是一类恶意软件,它被设计用来隐藏自身或其他恶意活动(如病毒、后门等),以避开用户和安全工具的检测。它通常在系统的内核层或用户层中以深层方式运作,可以隐藏文件、进程、网络连接以及注册表项等。

进程遍历

Ring3方法

Ring3权限级别枚举进程的方法

1.CreateToolhelp32Snapshot: 用于创建一个系统快照,该快照包含了系统中所有活动的进程和线程的列表。参数TH32CS_SNAPPROCESS表示快照类型为进程。然后Process32First / Process32Next: 这两个函数用于遍历由CreateToolhelp32Snapshot创建的进程快照。Process32First用于获取快照中的第一个进程,而Process32Next用于获取下一个进程。

2.ZwQuerySystemInformation: 这是一个系统调用,用于查询系统信息。参数SystemProcessesAndThreadsInformation表示请求获取系统中所有进程和线程的信息。

3.EnumWindows: 这个函数用于枚举所有顶层窗口,可以用于获取所有窗口的句柄。GetWindowThreadProcessId: 用于获取与指定窗口句柄关联的线程ID和进程ID。缺点是对于没有窗口的不起作用对于没有窗口的不起作用

4.for(;;) OpenProcess: 这是一个循环,用于不断尝试打开进程。OpenProcess是一个API调用,用于获取对进程的访问权限。

1
2
3
4
5
6
7
8
for(int i=0;i<65535;i+=4)//这样暴力枚举,但是实际上不止65535,理论是2^26,但是一般是小于65535
{
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, i);
if (hProcess != nullptr) {
// Process exists, handle appropriately
CloseHandle(hProcess);
}
}

Ring0方法

PspCidTable 是 Windows 内核中一个重要的数据结构, 通常指向一个 句柄表(Handle Table ,存着EProcessId/EThread,只要能给出PID,TID,就能在这个表找出进程线程对象,用于管理和快速查找系统中的进程和线程对象。

x64驱动 遍历 PspCidTable 枚举隐进程和线程_驱动编程 遍历cidtable-CSDN博客