Option Explicit
'ProcessHandle 为输出 其余为输入
Private Declare Function NtOpenProcess Lib "ntdll.dll" ( _
ByRef ProcessHandle As Long, _
ByVal AccessMask As Long, _
ByRef ObjectAttributes As OBJECT_ATTRIBUTES, _
ByRef ClientId As CLIENT_ID) As Long
Private Type OBJECT_ATTRIBUTES
Length As Long
RootDirectory As Long
ObjectName As Long 'PUNICODE_STRING 的指针
Attributes As Long
SecurityDescriptor As Long
SecurityQualityOfService As Long
End Type
Private Type CLIENT_ID
UniqueProcess As Long
UniqueThread As Long
End Type
Private Sub Form_Load()
Dim oa As OBJECT_ATTRIBUTES, ci As CLIENT_ID
oa.Length = Len(oa)
ci.UniqueProcess = 364 '需要打开的PID
ci.UniqueThread = 0
Dim ret As Long
MsgBox NtOpenProcess(ret, &H400, oa, ci)
MsgBox ret
End Sub
分享到:
相关推荐
NtOpenProcess是Windows NT内核中一个关键的系统调用,用于获取对进程的访问权限。这个函数允许程序打开已存在的进程,从而可以读取、写入或者控制该进程。Hooking NtOpenProcess,即设置一个钩子来拦截这个系统调用...
在这里,我们关注的是系统调用钩子(System Call Hook),它允许我们在系统调用被实际执行之前或之后插入代码,从而可以拦截对`NtOpenProcess`的调用。 具体实施时,通常会编写一个内核驱动程序(如压缩包中的`Hook...
可以过掉HOOK NtOpenProcess 交流学习使用
在IT领域,尤其是系统编程和逆向工程中,`OpenProcess`函数是Windows操作系统中的一个重要接口,它允许应用程序获取对其他进程的访问权限。`OpenProcess`函数通常用于监控或控制其他进程的行为,而`Inline Hook`是一...
本文将讨论如何在驱动层通过替换System Service Dispatch Table (SSDT) 地址表中的API函数来实现隐藏进程。 SSDT是Windows内核中的一个关键结构,它存储了系统服务函数的入口点。当用户模式的应用程序调用系统服务...
当应用程序通过Win32 API调用某个内核服务时,实际上是由SSDT中的相应条目引导调用到正确的内核服务实现。 在Windows中,所有的用户态API调用都会被转换为对应的内核态服务调用,这一转换过程正是通过SSDT完成的。...
OpenProcess是Windows操作系统中的一个API函数,用于获取对指定进程的访问权限。这篇文档将深入探讨如何用纯汇编语言实现OpenProcess函数的源码。 在Windows API中,OpenProcess函数的主要作用是打开一个已经存在的...
开发一个内核级进程保护系统,首先需要熟悉Windows内核编程的基础,包括系统调用(如NtOpenProcess)、API钩子(HOOK)以及系统服务描述表(SSDT)的概念。例如,通过HOOK SSDT,我们可以拦截对特定系统函数的调用,...
4. **钩子NtOpenProcess**:找到NtOpenProcess函数在SSDT中的位置,然后将其替换为自定义的钩子函数。这个钩子函数可以在尝试打开进程时进行干预,阻止对目标进程的关闭操作。 5. **驱动安装**:使用MakeEx.bat文件...
库可能包含示例代码或API接口,演示如何在应用程序中设置和管理内联钩子,以及如何拦截并处理`NtOpenProcess`调用。开发人员可以参考这些示例,了解如何在自己的项目中集成和利用此库。 7. **安全与风险**: 尽管...
【过TP心得文档】主要涉及的是Windows驱动程序中绕过TP(TrustPoint,一种安全机制)的方法,特别是针对系统调用如NtOpenProcess和NtOpenThread的处理。TP通常会hook这些关键函数,以监控和控制系统的敏感操作。以下...
遍历进程,调用NativeAPI NtQuerySystemInformation遍历进程。 与内核对应的程序进行通信,通过进程名进行进程保护。 与内核对应的程序进行通信,通过进程PID进程保护。 与内核对应的程序进行通信,通过进程PID隐藏...
标题中的“发送邮件vc类 容易使用”指的是在Visual C++(VC)环境中,存在一个类库,使得开发者能够方便地实现邮件的发送功能。这个类库可能封装了SMTP(Simple Mail Transfer Protocol)协议,使得程序员无需深入...
C ++中的x64 syscall调用程序。 使用示例(来自Windows 10的索引,内部版本1803): ObjectAttributes.Length = sizeof ( OBJECT_ATTRIBUTES ); ClientId.UniqueProcess = HANDLE( 1000 ); // PID // NtOpenProcess...
在易语言中,我们需要通过调用动态链接库(DLL)来实现对这些内核API的调用。 首先,我们需要了解易语言的“外部命令”特性。易语言提供了“系统调用”模块,允许开发者直接调用Windows API。在实现打开进程功能时...
它提供了对Windows内核API的访问,使得程序员能够进行底层系统级的操作,如调试、性能监控、系统服务调用等。本文将详细探讨`winternl.h`头文件中的关键概念和功能。 `winternl.h`头文件主要服务于那些需要直接与...
这个函数在用户模式下通过`NtOpenProcess`函数调用,最终在内核模式下由`ZwOpenProcess`处理。当一个进程尝试打开或访问另一个进程时,`ZwOpenProcess`会被调用,因此它是监控进程操作的理想切入点。 实现SSDT Hook...
- **Hook技术**:Hook(钩子)是一种编程技术,允许程序员截获并处理系统或应用程序中的调用。通过在函数调用之前或之后插入自己的代码,可以监控、过滤或修改函数行为。 ### 编程实践 - **NTDDK.h**:NT Driver ...
在Windows内核模式编程中,有时我们需要获取某些系统服务例程(即系统调用)的地址,以便进行调试或Hook等操作。下面我们将详细分析如何获取函数当前地址,并对代码进行逐行解释。 #### 1.1 获取当前地址的函数实现...