Stealthy Shellcode Injection: Bypassing Memory Protections with Windows Forking


Abusing Windows fork API and OneDrive.exe process to inject the malicious shellcode without allocating new RWX memory region. This technique is finding RWX region in already running processes in this case OneDrive.exe and Writing the shellcode into that region and executing it without calling VirtualProtect, VirtualAllocEx, VirtualAlloc.


  • Find the OneDrive.exe in running processes.
  • Get the handle of OneDrive.exe.
  • Query remote process memory information.
  • look for RWX memory regions.
  • Write shellcode into found region of OneDrive.exe
  • Fork OneDrive.exe into a new process.
  • Set the forked process’s start address to the cloned shellcode.
  • Terminate the cloned process after execution.


This technique will work with ntdll based shellcode which is not dependent on any section. I used windows_x64_shellcode_template to generate my shellcode.

Shellcode Creation

  • Edit the shellcode template file function ‘shellcode_template’ according to instructions given on windows_x64_shellcode_template
  • Compile the code and open .EXE file in any hex editor (HxD)
  • Extract the .text section and use that in a given project file.
  • To extract the shellcode there are other methods also explained in the repository.


Copyright (c) 2024 Usman Sikander