This Rust program demonstrates a technique for dynamically resolving and calling Windows API functions without directly linking to them at compile time. Instead, it manually finds these functions in memory at runtime by,
- Locating the base address of loaded DLLs
kernel32.dll
anduser32.dll
using the Process Enviroinment Block (PEB). - Parsing the export tables of these DLLs to find the memory address of specfic functions.
- Calling those functions to load a library.
Ofcourse without them it would not be possible to achieve this: