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.
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.Syscalldengan alamat shellcode sebagai entry point. - nim:
cast[proc(){.nimcall.}]pada buffer yang sudah di-VirtualProtect. - python:
ctypes.CFUNCTYPEuntuk membungkus alamat memori menjadi callable Python. - rust:
mem::transmutekefn()pada buffer RWX/RX yang dialokasikan via cratemmap.
- execution/asm-jmp: lompatan assembly langsung ke alamat shellcode tanpa cast function pointer.