Skip to content

A C Implementation for using a new method to invoke undetectable indirect syscalls

License

Notifications You must be signed in to change notification settings

CNMrSunshine/GalaxyGate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GalaxyGate 是一个结合硬件断点与 VEH(异常处理机制)的创新项目,旨在实现调用堆栈合法且完整的情况下,执行任意系统调用。

详情请前往 菜叶片的博客

工作原理

GalaxyGate 通过以下步骤实现其功能:

  1. 参数传递:利用全局变量 SFParams 向 VEH 传递真实的调用参数,包括 Syswhisper3 函数哈希值和参数数量。
  2. 触发异常:制造内存访问冲突,使执行流进入 VEH,从而在无需调用额外 Windows API(如 SetThreadContext)的情况下修改调试寄存器。
  3. 系统调用解析:项目引用了经过修改的 Syswhisper3,用于解析系统调用地址和系统调用号。
  4. 高层傀儡函数调用:通过调用高层傀儡函数,间接触发目标 Nt* 函数的 Syscall 指令码位置,从而激活硬件断点。
  5. VEH 参数填充:执行流进入 VEH 后,根据 Fastcall 调用约定填充真实调用参数。
  6. 清理调试寄存器:在操作完成后清除调试寄存器,避免内核态检测到异常。
  7. 伪装合法性:由于高层函数自带错误处理机制,真实调用完成后,高层傀儡函数能够正常返回,进一步触发更多 EDR Hook,增强调用的合法性。

项目模式

GalaxyGate 提供两种操作模式:

  • NextGen 模式:通过 Ghidra 反编译,定位间接调用目标底层函数的高层傀儡函数进行操作。
  • Legacy 模式:调用高层傀儡函数 GetFileAttributesW,拦截其下游函数 NtQueryAttributesFile,并通过修改系统调用号完成操作。

灵感来源

GalaxyGate 的灵感来源于 SilentMoonWalk 调用堆栈欺骗项目。与其使用伪造的调用堆栈以假乱真,GalaxyGate 选择直接利用真实的函数调用堆栈,从而提升隐蔽性和自然性。

与类似项目比较

在首个版本发布两个月后,在 Github 发现一个类似项目(Grok3找到的):LayeredSyscall

与 LayeredSyscall 的比较

特性 GalaxyGate LayeredSyscall
傀儡函数 可选择多种高层函数 固定为 MessageBoxW
拦截方式 拦截 Syscall 指令码 拦截 Syscall ret 指令码
副作用 无明显副作用 未拦截 ret 会导致消息框弹出
调试寄存器清理 在系统调用前清零,避免内核态检测 未在系统调用前清零,可能留下痕迹
调用堆栈自然性 高度自然,符合函数调用逻辑 不自然,Nt* 函数与 MessageBoxW 无直接关联

About

A C Implementation for using a new method to invoke undetectable indirect syscalls

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published