Shellcode Loader

June 9, 2026 ยท View on GitHub

Overview

Eksekusi shellcode sebagai fiber.

Fiber merupakan unit eksekusi bersifat cooperative-multitasking. Serupa dengan thread, fiber berbagi ruang memory dengan thread/fiber lain dalam satu process.

Secara garis besar, shellcode yang telah diekstrak akan disalin ke ruang memory yang telah dialokasikan. Alamat shellcode kemudian menjadi fungsi entrypoint bagi fiber.

Variasi dikelompokkan berdasarkan cara fiber dibuat atau dipicu: API pembuatan fiber Win32, callback FLS, dan entry internal loader.

Catalog

Pembuatan fiber (Win32)

  • CreateFiber: buat fiber baru dengan CreateFiber; alamat shellcode sebagai LPFIBER_START_ROUTINE.
  • CreateFiberEx: varian extended dengan kontrol commit/reserve stack terpisah.

Callback FLS

  • FlsAlloc: alokasikan indeks FLS (Fiber Local Storage); shellcode sebagai PFLS_CALLBACK_FUNCTION yang dipanggil saat fiber dihancurkan.

Internal loader

  • RtlUserFiberStart: entry point internal ntdll untuk memulai eksekusi fiber via manipulasi TEB/TIB (undocumented).