关于内核创建进程初始化失败的问题

见习学术士 见习学术士 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在网上看到又内核如何创建进程的代码,主要流程是
1,使用 ZwOpenFile 打开文件,创建映射 ZwCreateSection.
2. 调用 ZwCreateProcess
本步骤主要是创建进程的 PEB 、 EPROCESS 、 VAD 等核心内核结构。
3. 创建堆栈、 CONTEXT 、进程参数等,并创建主线程 ZwCreateThread(SUSPEND)
4. 通知 Csrss.exe
5. 调用 ZwResumeThread 恢复线程的执行。

现在问题在 通知 Csrss.exe,因为网上那份代码是NATIVE APP,使用CsrClientCallServer 来通知CSRSS的,这个API在NTDLL中,是R3下才有的,现在移植到R0下无法使用,网上有一个通过直接通过获取CSRSS中EPROCESS的OBJECTTABLE句柄,使用ExEnumHandleTable 来处理,最后直接NtRequestWaitReplyPort完成通知,可是在最后程序运行后还是初始化失败,特在此发一帖,寻求解答~
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
见习学术士
进程/线程/DLL 15,466 成员 49,169 内容