怎样使用vc来调用Ntdll.dll 中的NtCreateProcess,来创建进程!
个位高手,我是想直接调用NtCreateProcess 来创建进程,不使用CreateProcess,这样我就能不受IEFO的限制,我就可以安全的启动程序了。
请问有什么办法可以实现直接在RING3下用vc来创建进程吗??
vc 调用Ntdll.dll 中的NtCreateProcess
答案:2 悬赏:80 手机版
解决时间 2021-04-10 21:07
- 提问者网友:沉默的哀伤
- 2021-04-10 03:19
最佳答案
- 五星知识达人网友:十鸦
- 2021-04-10 04:29
调用ntdll中的RtlCreateUserProcess比较好,虽然它也是调用NtCreateProcess,但是只需要调用它就可以创建一个进程。
如果需要调用NtCreateProcess,那么还需要调用CreateFile/NtCreateFile打开文件,然后调用CreateFileMapping/NtCreateSection映射文件,才能调用NtCreateProcess,还要接着调用RtlCreateProcessParameters、NtAllocateVirtualMemory和NtWriteVirtualMemory写入进程参数和环境变量,再调用NtCreateThread创建初始线程,再调用CsrClientCallServer通知win32子系统,然后NtResumeThread恢复线程运行,这样才创建完一个进程。NtCreateProcess只完成了CreateProcess很小的一部分功能,即创建进程空间和核心数据结构。
如果需要调用NtCreateProcess,那么还需要调用CreateFile/NtCreateFile打开文件,然后调用CreateFileMapping/NtCreateSection映射文件,才能调用NtCreateProcess,还要接着调用RtlCreateProcessParameters、NtAllocateVirtualMemory和NtWriteVirtualMemory写入进程参数和环境变量,再调用NtCreateThread创建初始线程,再调用CsrClientCallServer通知win32子系统,然后NtResumeThread恢复线程运行,这样才创建完一个进程。NtCreateProcess只完成了CreateProcess很小的一部分功能,即创建进程空间和核心数据结构。
全部回答
- 1楼网友:渡鹤影
- 2021-04-10 05:26
CreateProcess会调NtCreateProcess的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯