Shellcode Loader
June 9, 2026 ยท View on GitHub
Overview
Eksekusi shellcode berdasarkan event tertentu.
Teknik event menunda atau memicu eksekusi shellcode melalui mekanisme penjadwalan Windows: APC (Asynchronous Procedure Call), timer, thread pool, atau wait pada handle sinkronisasi. Shellcode dijalankan sebagai callback/routine yang terpicu saat kondisi event terpenuhi โ bukan melalui pemanggilan langsung dari alur utama program.
Variasi dikelompokkan berdasarkan primitif pemicu: antrian APC, timer, thread pool, dan wait handle.
Catalog
APC (Asynchronous Procedure Call)
- QueueUserAPC: antrikan shellcode sebagai user APC pada thread target; picu dengan
NtTestAlertatau state alertable. - NtQueueApcThread: varian native
NtQueueApcThreaduntuk mengantri APC ke thread. - NtQueueApcThreadEx: varian extended native APC dengan opsi
USER_APC_OPTION.
Timer
- SetTimer: timer berbasis HWND; callback
TIMERPROCsaat interval habis. - CreateTimerQueueTimer: timer queue legacy; callback
WAITORTIMERCALLBACKpada antrian timer. - SetWaitableTimer: waitable timer dengan completion routine APC; thread harus alertable (
SleepEx). - timeSetEvent: multimedia timer (obsolete); callback periodik via
winmm.dll.
Thread pool
- CreateThreadpoolTimer: timer thread pool Vista+; callback
PTP_TIMER_CALLBACKpada worker pool. - CreateThreadpoolWait: wait thread pool; callback saat handle sinkronisasi ter-signal.
Wait handle
- RegisterWaitForSingleObject: daftarkan callback yang berjalan saat object (event, process, dll.) ter-signal.
Related
- execution/callback: eksekusi implisit melalui callback API lain.
- execution/thread: eksekusi shellcode sebagai thread baru, bukan callback event.