PE⽂件windows加载执⾏过程
Windows进程创建过程
第⼀阶段:打开⽬标映像⽂件,创建Section
由CreateProcess函数完成
字符串采⽤ASCII字符,则使⽤CreateProcessA函数
字符串采⽤Unicode字符,则使⽤CreateProcessW函数
由于windows内部都是Unicode字符,所以CreateProcessA函数只是将ASCII字符转换成Unicode字符后继续调⽤的CreateProcessW函数
CreateProcess函数步骤:
1.检查PE⽂件的有效性
2.为PE⽂件分配Section
第⼆阶段:创建内核中的进程对象
第三阶段:创建初始线程
第四阶段:通知Windows⼦系统
第五阶段:通启动初始线程
第六阶段:⽤户空间初始化和DLL链接createprocessa
PE⽂件动态加载执⾏过程
1.判断可执⾏⽂件是否是PE格式
2.建⽴共享映射区Section
3.将共享映射区映射到进程的⽤户地址空间(通过NtMapViewOfSection实现)
4.分配物理页⾯并建⽴实际的页⾯映射
5.ImportTable逻辑处理,通过PE装载器处理PE⽂件中类似Import table逻辑部分。
进程中的页⾯映射表⽤于管理整个进程的虚拟地址空间和物理内存之间的映射关系。
当以个进程被切换到CPU上执⾏时, 这个映射表会被装载到CPU的CR3寄存器
,该表的下表时进程的虚拟内存页⾯号
映射段页⾯表:当虚存页⾯中存在某个物理内存页⾯是,页⾯映射表中的PTE(⼆级页表)指向这个物理页⾯

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。