病毒木马的入侵并潜伏在用户计算机上总是有着某种目的,例如获取用户隐私的办公文件或是账号密码,或是控制肉鸡,或是进行加密磁盘文件然后进行勒索。 进程遍历指的是获取在计算机系统上运行的所有进程信息,包括用户进程和系统进程。通过获取进程信息,可以判断是否存在杀软进程,是否有可利用进程,是否运行在虚拟机中,甚至可以分析用户的工作环境等,所以获取系统进程信息是一种不可获取的标志性功能。 本文介绍应用最广泛的进程快照技术来实现进程的遍历 获取进程信息为指定的进程、进程使用的堆,模块,线程建立一个快照 函数声明: 参数说明: 返回值: 检索系统快照中遇到的第一个进程信息 函数声明: 参数说明: 返回值: 检索系统快照中记录的下一个进程信息 函数原型: 参数说明: 返回值: 所谓快照,指的是过去某个时刻记录的计算机状态,包括进程,线程,堆等,系统的状态是在不断变化的,尤其是进行某些操作后。 快照一般用于恢复某个时间点的计算机状态,当你的系统出现某些错误后,就可以使用快照功能回滚当时的状态。例如: 我们在获取进程列表后,是否可以更近一步,判断进程中是否存在杀软,得到明确信息后,更加方便我们的病毒进行决策 下面我们查询本机中的火绒和Defender的进程名称; 可发现两个杀软进程系统都在运行中文章目录
功能技术模块
进程遍历
WIN API
CreateToolhelp32Snapshot
HANDLE WINAPI CreateToolhelp32Snapshot( DWORD, dwFlags, DWORD, th32ProcessID)
值
含义
TH32CS_INHERIT
声明快照句柄是可继承的
TH32CS_SNAPALL
在快照中包含系统中的所有进程和线程
TH32CS_SNAPHEAPLIST
在快照中包含th32ProcessID中指定进程的所有堆
TH32CS_SNAPMODULE
在快照中包含th32ProcessID中指定进程的所有模块
TH32CS_SNAPPROCESS
在快照中包含系统中的所有进程
TH32CS_SNAPTHREAD
在快照中包含系统中的所有线程
Process32First
BOOL WINAPI Process32First( HANDLE hSnapshot, LPPROCESSENTRY32 lppe)
PROCESS32Next
BOOL WINAPI PROCESS32Next( HANDLE hSnapshot, LPPROCESSENTRY32 lppe)
编码实现
// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <windows.h> #include <stdio.h> #include "resource.h" #include "ConsoleApplication1.h" #include <tchar.h> #include <cstring> #include <shlobj.h> #include <tlhelp32.h> BOOL Get_all_process() { PROCESSENTRY32 pe32 = {}; pe32.dwSize = sizeof(PROCESSENTRY32); HANDLE hprocessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hprocessSnap == INVALID_HANDLE_VALUE) { printf("create snap error!n"); return FALSE; } BOOL bRet = Process32First(hprocessSnap, &pe32); while (bRet) { printf("[%d]t[%ws]n", pe32.th32ProcessID, pe32.szExeFile); bRet = Process32Next(hprocessSnap, &pe32); } CloseHandle(hprocessSnap); return TRUE; } int main() { Get_all_process(); return 0; }
运行效果图
判断是否存在杀软
// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <windows.h> #include <stdio.h> #include "resource.h" #include "ConsoleApplication1.h" #include <tchar.h> #include <cstring> #include <shlobj.h> #include <tlhelp32.h> BOOL Get_all_process() { WCHAR defen[2][30] = { L"SecurityHealthSystray.exe", L"wsctrl.exe" }; PROCESSENTRY32 pe32 = {}; pe32.dwSize = sizeof(PROCESSENTRY32); HANDLE hprocessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hprocessSnap == INVALID_HANDLE_VALUE) { printf("create snap error!n"); return FALSE; } BOOL bRet = Process32First(hprocessSnap, &pe32); while (bRet) { for (int i = 0; i < 2; ++i) { if (wcscmp(defen[i], pe32.szExeFile) == 0) { printf("%ws is existn", defen[i]); } } //printf("[%d]t[%ws]n", pe32.th32ProcessID, pe32.szExeFile); bRet = Process32Next(hprocessSnap, &pe32); } CloseHandle(hprocessSnap); return TRUE; } int main() { Get_all_process(); return 0; }
运行效果
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算