- HalosGate+ provides an abstraction layer for eaiser usage
- Simple Caching Added
- Ready to use
- Provides all ntdll function hashes
- just type
hashFunctionNamefor example:
hashNtAllocateVirtualMemoryhashNtAllocateVirtualMemoryExNtCreateFile, etc
#include "HalosGatePlus.h"GateCallCtx* ctx = GateNewCtx();Creates a new HalosGate+ contextGateInitCall(ctx, hashFuncName)GateSyscall(args...)
- Example:
#include <stdio.h>
#include "HalosGatePlus.h"
int main() {
GateCallCtx* ctx = GateNewCtx();
if (ctx == NULL) {
printf("[!] Gate Init Error\n");
return -1;
}
SIZE_T RegionSize = 0x140;
PVOID baseAddress1 = NULL;
PVOID baseAddress2 = NULL;
GateInitCall(ctx, hashNtAllocateVirtualMemory);
NTSTATUS status = GateSyscall((HANDLE)-1, &baseAddress1, 0, &RegionSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
status = GateSyscall((HANDLE)-1, &baseAddress2, 0, &RegionSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
printf("[+] Allocated 1: %p %d\n", baseAddress1, status);
printf("[+] Allocated 2: %p %d\n", baseAddress2,status);
return 0;
}[+] Allocated 1: 0000024104710000 0
[+] Allocated 2: 0000024104980000 0
H:\HalosGate+\HalosGate+\x64\Release\HalosGate+.exe (process 1216) exited with code 0 (0x0).
Press any key to close this window . . .- if you want to change fnva hash,prime base:
- use apihash.py dllname
- replace NtdllHash.h with new one
- change fnva hash,prime in
HalosGate+.c
@boku7 impelementation of Halos Gate
Reenz0h from @SEKTOR7net (Creator of the HalosGate technique )
@smelly__vx & @am0nsec ( Creators/Publishers of the Hells Gate technique )