`

VB 使用 ZwQueryInformationProcess

    博客分类:
  • vb
VB 
阅读更多
Option Explicit

Public Declare Function ZwQueryInformationProcess _
Lib "NTDLL.DLL" (ByVal ProcessHandle As Long, _
ByVal ProcessInformationClass As PROCESSINFOCLASS, _
ByVal ProcessInformation As Long, _
ByVal ProcessInformationLength As Long, _
ByRef ReturnLength As Long) As Long

Public Enum
PROCESSINFOCLASS
ProcessBasicInformation
ProcessQuotaLimits
ProcessIoCounters
ProcessVmCounters
ProcessTimes
ProcessBasePriority
ProcessRaisePriority
ProcessDebugPort
ProcessExceptionPort
ProcessAccessToken
ProcessLdtInformation
ProcessLdtSize
ProcessDefaultHardErrorMode
ProcessIoPortHandlers
'// Note: this is kernel mode only
ProcessPooledUsageAndLimits
ProcessWorkingSetWatch
ProcessUserModeIOPL
ProcessEnableAlignmentFaultFixup
ProcessPriorityClass
ProcessWx86Information
ProcessHandleCount
ProcessAffinityMask
ProcessPriorityBoost
ProcessDeviceMap
ProcessSessionInformation
ProcessForegroundInformation
ProcessWow64Information
ProcessImageFileName
ProcessLUIDDeviceMapsEnabled
ProcessBreakOnTermination
ProcessDebugObjectHandle
ProcessDebugFlags
ProcessHandleTracing
ProcessIoPriority
ProcessExecuteFlags
ProcessResourceManagement
ProcessCookie
ProcessImageInformation
MaxProcessInfoClass
'// MaxProcessInfoClass should always be the last enum
End Enum

Public
Type PROCESS_BASIC_INFORMATION
ExitStatus
As Long 'NTSTATUS
PebBaseAddress As Long 'PPEB
AffinityMask As Long 'ULONG_PTR
BasePriority As Long 'KPRIORITY
UniqueProcessId As Long 'ULONG_PTR
InheritedFromUniqueProcessId As Long 'ULONG_PTR
End Type

Private Function GetProcessId(ByVal hProcess As Long) As Long
Dim
st As Long
Dim
pbi As PROCESS_BASIC_INFORMATION: pbi = GetProcessBasicInfo(hProcess)
GetProcessId = pbi.UniqueProcessId
End Function

Private Function
GetProcessBasicInfo(ByVal hProcess As Long) As PROCESS_BASIC_INFORMATION
Dim st As Long
Dim
pbi As PROCESS_BASIC_INFORMATION
st = ZwQueryInformationProcess(hProcess, ProcessBasicInformation, VarPtr(pbi), LenB(pbi),
0)

If (Not NT_SUCCESS(st)) Then Exit Function
GetProcessBasicInfo = pbi
End Function

Public Function
NT_SUCCESS(ByVal Status As Long) As Boolean
NT_SUCCESS = (Status >= 0)
End Function

 

分享到:
评论

相关推荐

    第22章-OllyDbg反调试之UnhandledExceptionFilter,ZwQueryInformationProce

    在OllyDbg中,有几种策略可以用来检测和规避调试器,例如使用UnhandledExceptionFilter和ZwQueryInformationProcess。这两者结合,可以构建起有效的反调试机制。 首先,UnhandledExceptionFilter是一个Windows API...

    易语言取进程环境

    易语言取进程环境源码,取进程环境,GetPeb,ZwQueryInformationProcess,OpenProcess,CloseHandle,CopyMemory_PROCESS_BASIC_INFORMATION

    通过进程句柄取得PID的软件源码

    - 使用`ZwQueryInformationProcess`等NT内核API进行编程时,需具备相应的权限和对Windows内核API的深入理解,以避免安全问题或系统稳定性风险。 - 代码示例中使用了`Option Explicit`,这是一个良好的编程习惯,强制...

    易语言检测父进程名

    本篇将详细探讨如何使用易语言来检测父进程的名字,以及涉及到的相关技术如ZwQueryInformationProcess、OpenProcess、CloseHandle和GetProcessImageFileNameA。 首先,我们要理解“父进程”和“子进程”的概念。在...

    易语言源码易语言NTAPI取进程列表源码.rar

    4. **循环遍历**: 因为系统中可能有多个进程,所以通常会使用循环遍历所有进程,调用`ZwQueryInformationProcess`多次,每次获取一个进程的信息。 5. **处理结果**: 将获取到的进程信息存储到适当的数据结构中,...

    得到文件被哪些程序打开的代码

    这可以通过`OpenProcess`函数获取进程句柄,再调用`NtQueryInformationProcess`或` ZwQueryInformationProcess`(这两个是内核模式的API,需要使用NTDLL.DLL库)来获取进程的上下文信息,其中包含了文件句柄信息。...

    KernelApiCode

    1. 进程管理:创建、终止或查询进程,例如使用NtCreateProcess或 ZwQueryInformationProcess。 2. 线程操作:创建、同步和调度线程,如NtCreateThreadEx和KeWaitForSingleObject。 3. 内存管理:动态分配和释放内存...

    易语言实现反OD调试反复附加的代码

    1. 首先,我们需要使用`ZwQueryInformationProcess`命令来获取进程的基本信息,包括进程句柄、进程ID和进程名称。 ```easy DLL命令 ZwQueryInformationProcess, 整数型, "NTDLL.DLL" .参数 ProcessHandle, 整数型 ...

    Windows任务管理器开发原理与实现

    任务管理器能够枚举并管理不同会话中的进程,这涉及到Windows内核级别的API调用,如 ZwQueryInformationProcess 和 NtQuerySystemInformation 等,用于获取进程信息。 任务管理器的进程管理功能,依赖于Windows API...

    驱动级杀进程易语言源码

    此外,还可以利用 ZwQueryInformationProcess 获取进程信息,然后通过 ZwTerminateProcess 终止目标进程。 值得注意的是,驱动级杀进程虽然强大,但也存在风险。不正确的驱动编写和使用可能导致系统不稳定,甚至...

    windows驱动写日志,有Zw和Flt,记录操作某一文件夹的进程名

    例如,当驱动检测到对特定文件夹的操作时,可以调用`ZwQueryInformationProcess`获取发起该操作的进程信息,包括进程ID和全路径,然后使用`ZwWriteFile`将这些信息写入日志文件。 2. **Flt系列函数(Filter Manager...

    易语言汇编反调试

    易语言汇编反调试源码,汇编反调试,是否被调试,是否被调试1,是否被调试2,GetCurrentProcessId,NtSetDebugFilterState,OpenProcess,ZwQueryInformationProcess

    PEBFake:PEBFake(修改PEB 伪装当前进程路径、参数等)

    这通常涉及到WinAPI函数,比如NtQueryInformationProcess、 ZwQueryInformationProcess 或者 VirtualProtect 等,用于读取和修改进程内存。 为了实现这个功能,开发者可能使用了以下步骤: 1. 获取目标进程的句柄...

    易语言控制进程

    易语言控制进程源码,控制进程,强力结束进程,强力打开进程,ZwQuerySystemInformation,取指针_字节集,RtlMoveMemory3,ZwOpenProcess,RtlMoveMemory1,ZwQueryInformationProcess,ZwDuplicateObject,ZwCreateJobObject,...

    易语言强力枚举进程

    易语言强力枚举进程源码,强力枚举进程,枚举所有进程,取进程命令行,UnicodeToAnsi,提升进程权限,OpenProcess,ZwQueryInformationProcess,NtReadVirtualMemory,VirtualQueryEx,WideCharToMultiByte,CloseHandle,...

    易语言强力打开结束进程模块

    易语言强力打开结束进程模块源码,强力打开结束进程模块,强力结束进程,强力打开进程,ZwQuerySystemInformation,取指针_字节集,RtlMoveMemory3,ZwOpenProcess,RtlMoveMemory1,ZwQueryInformationProcess,...

    易语言枚举内核对象句柄

    易语言枚举内核对象句柄源码,枚举内核对象句柄,枚举系统句柄,CloseRemoteHandle,结束内核对象句柄,测试线程,CompareFunc3,RtlMoveMemory1,CopyMemory_SYSTEM_PROCESSES,ZwQueryInformationProcess,...

    易语言进程隐藏模块

    易语言进程隐藏模块源码,进程隐藏模块,GetModuleListAddress,枚举模块,GetDword,GetWord,GetByte,SetDword,隐藏进程,GetEProcess,十六文本至长整数,ReadMemory,WriteMemory,ZwQueryInformationProcess,OpenProcess,...

    冰刃IceSword源码

    源码中涉及的这部分内容可能包括系统调用的使用,如 ZwQueryInformationProcess 和 NtQueryInformationProcess,用于获取进程信息。 2. **模块查看**:冰刃可以查看进程加载的动态链接库(DLL),这对于检测恶意...

Global site tag (gtag.js) - Google Analytics