Kernel Loader: Difference between revisions
No edit summary |
|||
Line 123: | Line 123: | ||
</pre> | </pre> | ||
TODO: | Next, it initializes the MMU with a basic identity mapping for Kernel + KernelLdr. | ||
<pre> | |||
// TODO: Fill this out with pseudocode. | |||
</pre> | |||
Next, it generates a random KASLR slide for the Kernel. | |||
<pre> | |||
// TODO: Fill this out with pseudocode. | |||
</pre> | |||
Then, it maps the kernel and applies its .dynamic's relocations. | |||
<pre> | |||
// TODO: Fill this out with pseudocode. | |||
</pre> | |||
Then, it calls the kernel's libc .init_array functions. | |||
<pre> | |||
// TODO: Fill this out with pseudocode. | |||
</pre> | |||
Finally, it returns the difference between the kernel's original physical base address and the relocated kaslr'd virtual base address. | |||
<pre> | |||
return final_virtual_kernel_base - original_kernel_base; | |||
</pre> | |||
== KernelLdr_RelocateKernelPhysically == | == KernelLdr_RelocateKernelPhysically == |