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 个解决方案
#1
好底层,不知道楼主是做好事,还是坏事,帮顶一下
#2
必须遵纪守法
#3
初始化失败的错误信息是什么
#6
http://bbs.pediy.com/showthread.php?t=80403
看下这里有帮助没?
看下这里有帮助没?
#7
都看过了,都没有解决最后通信失败的问题
#8
好像是0XC0000014 就是看雪里面那几个天真都有的问题
zhuwg】的:关于从系统内核创建一个进程的深入学习: http://bbs.pediy.com/showthread.php?t=80403
【第八个门】的 :贴点内核态中创建用户态进程的代码: http://bbs.pediy.com/showthread.php?t=80179
【weolar】的:详解进程创建中与csrss的通信流程: http://bbs.pediy.com/showthread.php?p=814153
#9
跟OS有关吗,XP是否可以
#10
XP 2003SERVER 都不行,VISTA下好像可以直接使用ZwCreateUserProcess 就不用调用CSR系列函数了,但是我试过之后也是不行~
#1
好底层,不知道楼主是做好事,还是坏事,帮顶一下
#2
必须遵纪守法
#3
初始化失败的错误信息是什么
#4
#5
#6
http://bbs.pediy.com/showthread.php?t=80403
看下这里有帮助没?
看下这里有帮助没?
#7
都看过了,都没有解决最后通信失败的问题
#8
好像是0XC0000014 就是看雪里面那几个天真都有的问题
zhuwg】的:关于从系统内核创建一个进程的深入学习: http://bbs.pediy.com/showthread.php?t=80403
【第八个门】的 :贴点内核态中创建用户态进程的代码: http://bbs.pediy.com/showthread.php?t=80179
【weolar】的:详解进程创建中与csrss的通信流程: http://bbs.pediy.com/showthread.php?p=814153
#9
跟OS有关吗,XP是否可以
#10
XP 2003SERVER 都不行,VISTA下好像可以直接使用ZwCreateUserProcess 就不用调用CSR系列函数了,但是我试过之后也是不行~