🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
创建一个进程
总述
如图,创建一个进程主要分为两部分,用户态部分和内核部分。
既然我们想看看一个进程是怎么被创建的,那我们就用 WinDbg 来看看从用户态到内核态都调用了什么:
第一步:我们先看看 nt 下有哪些方法跟创建进程相关的
| | 0: kd> x nt!*CreateProcess* |
| | fffff802`55d8a218 nt!PspSetCreateProcessNotifyRoutine (void) |
| | fffff802`55cd9714 nt!ExpWnfCreateProcessContext (void) |
| | fffff802`55dd9a2f nt!PspCreateProcess$filt$0 (void) |
| | fffff802`55be24f4 nt!PspDeleteCreateProcessContext (void) |
| | fffff802`55c40ed0 nt!MmCreateProcessAddressSpace (void) |
| | fffff802`55dbd430 nt!PspCreateProcess (void) |
| | fffff802`5594fb10 nt!ViCreateProcessCallback (void) |
| | fffff802`55fdaaa4 nt!ViCreateProcessCallbackInternal (ViCreateProcessCallbackInternal) |
| | fffff802`55f04550 nt!NtCreateProcessEx (NtCreateProcessEx) |
| | fffff802`55fd1ce0 nt!VerifierPsSetCreateProcessNotifyRoutineEx (VerifierPsSetCreateProcessNotifyRoutineEx) |
| | fffff802`559f4bf0 nt!ZwCreateProcessEx (ZwCreateProcessEx) |
| | fffff802`56349360 nt!pXdvPsSetCreateProcessNotifyRoutineEx = type information> |
| | fffff802`55cfd12c nt!PspValidateCreateProcessProtection (PspValidateCreateProcessProtection) |
| | fffff802`55d89ea0 nt!PsSetCreateProcessNotifyRoutineEx (PsSetCreateProcessNotifyRoutineEx) |
| | fffff802`5632e9d4 nt!PspCreateProcessNotifyRoutineCount = type information> |
| | fffff802`55d89f00 nt!PsSetCreateProcessNotifyRoutineEx2 (PsSetCreateProcessNotifyRoutineEx2) |
| | fffff802`5632e9d8 nt!PspCreateProcessNotifyRoutineExCount = type information> |
| | fffff802`55d8a050 nt!PsSetCreateProcessNotifyRoutine (PsSetCreateProcessNotifyRoutine) |
| | fffff802`55ed2e70 nt!MiCreateProcessDefaultAweInfo (MiCreateProcessDefaultAweInfo) |
| | fffff802`55be0d1c nt!PspBuildCreateProcessContext (PspBuildCreateProcessContext) |
| | fffff802`559f5970 nt!ZwCreateProcess (ZwCreateProcess) |
| | fffff802`562ec260