Shellcode Loader

June 9, 2026 ยท View on GitHub

Overview

Eksekusi shellcode dengan cast shellcode sebagai function/procedur dan memanggil shellcode secara langsung. Shellcode akan dieksekusi pada thread yang sama dengan thread pemanggil.

Teknik invoke adalah satu primitif eksekusi berupa transfer kontrol langsung ke alamat shellcode. Implementasi teknik bergantung pada masing-masing bahasa, dimana pointer ke shellcode akan dianggap sebagai sebuah fungsi untuk kemudian dipanggil. Perbedaan utama terletak pada sintaks cast/delegate, mekanisme FFI, dan penanganan memori executable.

Katalog ini mencantumkan bahasa pemrograman yang didukung, bukan variasi API Windows.

Catalog

Bahasa pemrograman

  • c++: cast void* ke function pointer (int (*)()) lalu panggil langsung.
  • c#: Marshal.GetDelegateForFunctionPointer<T> setelah alokasi dan proteksi via P/Invoke.
  • go: syscall.Syscall dengan alamat shellcode sebagai entry point.
  • nim: cast[proc(){.nimcall.}] pada buffer yang sudah di-VirtualProtect.
  • python: ctypes.CFUNCTYPE untuk membungkus alamat memori menjadi callable Python.
  • rust: mem::transmute ke fn() pada buffer RWX/RX yang dialokasikan via crate mmap.
  • execution/asm-jmp: lompatan assembly langsung ke alamat shellcode tanpa cast function pointer.