Skip to content

Latest commit

 

History

History

halos-gate

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Shellcode Loader

Access the Windows API via direct syscall with neighbor-based SSN inference (Halo's Gate).

Overview

Halo's Gate memperluas Hell's Gate untuk menangani kasus di mana stub target telah di-hook. Strategi Halo's Gate sederhana, SSN dihitung dari stub fungsi NT yang bertetangga dan masih bersih.

Prinsipnya: SSN ditetapkan secara sekuensial sesuai urutan alamat stub Nt* di ntdll. Jika fungsi pada posisi i di-hook, dan fungsi pada posisi i+k memiliki SSN N, maka SSN target adalah N - k.

sorted Nt* stubs by address:
  [i-2]  NtAdjustPrivileges      SSN = X-2   (clean)
  [i-1]  NtAlertResumeThread     SSN = X-1   (clean)
  [i]    NtAllocateVirtualMemory SSN = X     (HOOKED)
  [i+1]  NtAlpcAcceptConnectPort SSN = X+1   (clean) → infer X = (X+1) - 1

Trampoline statis (x64 only, Windows 10+):

  1. HalosGate(ssn) — menyimpan SSN ke variabel global wSystemCall (.data)
  2. HaloDescent(...) — stub di .text yang mengeksekusi syscall:
mov r10, rcx
mov eax, wSystemCall
syscall
ret

Compile

ml64.exe /nologo /c halosgate.asm
cl.exe /nologo /Ox /MT /W0 /GS- /DNDEBUG /Tpcode.cpp halosgate.obj

Memerlukan x64 Developer Command Prompt.

Note

  • Sample ini x64 only (layout stub ntdll Win10+, pola 4C 8B D1 B8).
  • Syscall dieksekusi lewat HalosGate / HaloDescent di image modul (bukan alokasi heap RWX per-SSN).

Reference