SyringeEx is a DLL injection and runtime hooking loader that launches a target executable and injects one or more hook DLLs into it.
This fork extends and modernizes the original Syringe while maintaining compatibility with existing tooling and mods.
The entire program is licensed under LGPLv3.
See LICENSE for details.
The file Syringe.h is explicitly designated as an API header, and may be used under the LGPLv3 interface rules.
Syringe was originally created by Patrick "pd" Dinklage, based partially on work by Jan Newger, and later maintained by contributors from the Ares project.
The original discussion thread is available here.
The first argument not starting with - is treated as the executable to launch:
syringe.exe game.exe
Use --args="..." to provide arguments for the launched process:
syringe.exe game.exe --args="-CD. -SPAWN"
By default, Syringe injects all compatible DLLs found in the directory.
To load only specific DLLs, use one or more instances of:
-i=<dllname.dll>
Example:
syringe.exe game.exe -i=ExtensionA.dll -i=ExtensionB.dll
When at least one -i= option is present, only the specified DLLs are injected.
By default, Syringe detaches its debugger automatically once all hooks have been placed, allowing the target process to continue execution normally.
This behavior can be modified using the following flags:
-
--nodetach
Keeps the debugger attached after injection instead of detaching automatically. -
--nowait
Causes Syringe to exit immediately after detaching, without waiting for the target process to terminate.
By default (without --nowait), Syringe remains running after detaching and waits until the target process exits.
Example:
syringe.exe game.exe --nodetach
syringe.exe game.exe --nowait
These options can be combined to precisely control debugger lifetime and process synchronization behavior.