(转)NtCreateUserProcess参数

本文介绍了一个程序如何通过修改子进程的父进程来实现自我隐藏的方法。针对Windows Vista及以后版本,详细解释了如何使用NtCreateUserProcess替代NtCreateProcessEx,并提供了该函数的参数说明。

http://www.skyfishes.com/vc/ntcreateuserprocess/

  最近有个程序需要修改子进程的父进程来达到隐藏自身的效果,本来Hook NtCreateProcessEx简单搞定,结果发现Win7下断不下来

  果断谷歌,发现Vista之后CreateProcess不再经过NtCreateProcessEx,而是调用NtCreateUserProcess进入内核,进行文件的映射等操作

  赶紧来记下NtCreateUserProcess参数,好不容易才找到的

typedef struct _NT_PROC_THREAD_ATTRIBUTE_ENTRY {
    ULONG Attribute;    // PROC_THREAD_ATTRIBUTE_XXX,参见MSDN中UpdateProcThreadAttribute的说明
    SIZE_T Size;        // Value的大小
    ULONG_PTR Value;    // 保存4字节数据(比如一个Handle)或数据指针
    ULONG Unknown;      // 总是0,可能是用来返回数据给调用者
} PROC_THREAD_ATTRIBUTE_ENTRY, *PPROC_THREAD_ATTRIBUTE_ENTRY;

typedef
struct _NT_PROC_THREAD_ATTRIBUTE_LIST { ULONG Length; // 结构总大小 PROC_THREAD_ATTRIBUTE_ENTRY Entry[1]; } NT_PROC_THREAD_ATTRIBUTE_LIST, *PNT_PROC_THREAD_ATTRIBUTE_LIST;
NTSTATUS NtCreateUserProcess( OUT PHANDLE ProcessHandle, OUT PHANDLE ThreadHandle, IN ACCESS_MASK ProcessDesiredAccess, IN ACCESS_MASK ThreadDesiredAccess, IN POBJECT_ATTRIBUTES ProcessObjectAttributes OPTIONAL, IN POBJECT_ATTRIBUTES ThreadObjectAttributes OPTIONAL, IN ULONG CreateProcessFlags, IN ULONG CreateThreadFlags, IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters, IN PVOID Parameter9, IN PNT_PROC_THREAD_ATTRIBUTE_LIST AttributeList );

 

转载于:https://www.cnblogs.com/himessage/archive/2013/01/07/2848809.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值