易语言枚举进程的三种方法源码
系统结构:子程序1,子程序2,CloseHandle,CreateToolhelp32Snapshot,NtQuerySystemInformation,HeapFree,GetProcessHeap,HeapAlloc,RtlMoveMemory,LocalSize_SPINFOR,EnumProcesses,EnumProcessModules,GetModuleFileNameEx,GetModuleBaseName,OpenProcess,WideCharToMultiByte,Process32First,Process32Next,
======程序集1
| |
| |------ _启动子程序
| |
| |------ 子程序1
| |
| |------ 子程序2
| |
| |
======调用的Dll
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ CreateToolhelp32Snapshot
| |
| |---[dll]------ NtQuerySystemInformation
| |
| |---[dll]------ HeapFree
| |
| |---[dll]------ GetProcessHeap
| |
| |---[dll]------ HeapAlloc
| |
| |---[dll]------ RtlMoveMemory
| |
| |---[dll]------ LocalSize_SPINFOR
| |
| |---[dll]------ EnumProcesses
| |
| |---[dll]------ EnumProcessModules
| |
| |---[dll]------ GetModuleFileNameEx
| |
| |---[dll]------ GetModuleBaseName
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ WideCharToMultiByte
| |
| |---[dll]------ Process32First
| |
| |---[dll]------ Process32Next
调用的DLL命令:
.DLL命令 CloseHandle, 整数型, "kernel32", "CloseHandle", , 非零表示成功,零表示失败。会设置GetLastError
.参数 handle, 整数型, , 欲关闭的一个对象的句柄;
.DLL命令 CreateToolhelp32Snapshot, 整数型, "kernel32.dll", "CreateToolhelp32Snapshot"
.参数 lFlags, 整数型
.参数 lProcessID, 整数型
.DLL命令 NtQuerySystemInformation, 整数型, "ntdll.dll", "NtQuerySystemInformation", , ntdll.dll
.参数 SystemInformationClass, 整数型
.参数 SystemInformation, 整数型
.参数 SystemInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 HeapFree, 整数型, "kernel32.dll", "HeapFree", , HeapFree,释放从堆中分配的内存
.参数 堆栈句柄, 整数型, , hHeap
.参数 标志, 整数型, , dwFlags
.参数 内存块句柄, 整数型, , any,lpMem
.DLL命令 GetProcessHeap, 整数型, "kernel32", "GetProcessHeap", , 获取调用过程堆句柄
.DLL命令 HeapAlloc, 整数型, "kernel32.dll", "HeapAlloc", , HeapAlloc,从堆中分配内存
.参数 堆栈句柄, 整数型, , hHeap
.参数 标志, 整数型, , dwFlags
.参数 分配大小, 整数型, , dwBytes
.DLL命令 RtlMoveMemory, , "kernel32.dll", "RtlMoveMemory"
.参数 目标, SYSTEM_PROCESS_INFORMATION
.参数 源, 整数型
.参数 尺寸, 整数型
.DLL命令 LocalSize_SPINFOR, 整数型, "kernel32.dll", "LocalSize"
.参数 hMem, SYSTEM_PROCESS_INFORMATION
.DLL命令 EnumProcesses, 逻辑型, "Psapi.dll", "EnumProcesses"
.参数 pProcessIds, 整数型, 传址 数组, pid数组
.参数 cb, 整数型, , 数组大小,单位字节
.参数 pBytesReturned, 整数型, 传址, 实际成员数
.DLL命令 EnumProcessModules, 逻辑型, "Psapi.dll", "EnumProcessModules"
.参数 hProcess, 整数型
.参数 lphModule, 整数型, 传址 数组, 模块句柄数组
.参数 cb, 整数型, , 数组大小
.参数 lpcbNeeded, 整数型, 传址, 实际成员数
.DLL命令 GetModuleFileNameEx, 整数型, "Psapi.dll", "GetModuleFileNameExA", , 成功返回取回的路径长度,失败0
.参数 hProcess, 整数型
.参数 hModule, 整数型
.参数 lpFilename, 文本型, , out,模块路径
.参数 nSize, 整数型, , 字节
.DLL命令 GetModuleBaseName, 整数型, "Psapi.dll", "GetModuleBaseNameA"
.参数 hProcess, 整数型
.参数 hModule, 整数型
.参数 lpBaseName, 文本型, , out,模块名
.参数 nSize, 整数型, , 字节
.DLL命令 OpenProcess, 整数型, "Kernel32.dll", "OpenProcess"
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 逻辑型
.参数 dwProcessId, 整数型
.DLL命令 WideCharToMultiByte, 整数型, "kernel32.dll", "WideCharToMultiByte", , 映射一个宽字符到一个新字符串
.参数 CodePage, 整数型, , 代码页
.参数 dwFlags, 整数型, , 标志
.参数 lpWideCharStr, 整数型, , 宽字符文本
.参数 cchWideChar, 整数型, , 宽字符文本长度。设置-1,函数假定字符串以空字符结尾,自动计算其长度。
.参数 lpMultiByteStr, 整数型, , 双字节文本
.参数 cchMultiByte, 整数型, , 双字节文本长度
.参数 lpDefaultChar, 整数型, , 默认文本
.参数 lpUsedDefaultChar, 逻辑型, , 使用默认文本
.DLL命令 Process32First, 整数型, "kernel32.dll", "Process32First"
.参数 h, 整数型
.参数 p, PROCESSENTRY32
.DLL命令 Process32Next, 整数型, "kernel32.dll", "Process32Next"
.参数 h, 整数型
.参数 p, PROCESSENTRY32
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。