Releases: Phobos-developers/SyringeEx
Releases · Phobos-developers/SyringeEx
Release list
v0.1.0.2
v0.1.0.1
- Made
--nodetachdefault (conforms to Syringe behavior); to use automatic detach add--detachto arguments - Fixed
--nodetachfreezing the target app on exit
v0.1.0.0
This is the first release of SyringeEx, a true community continuation of Syringe, licensed under LGPL. The public Syringe source code was missing some critical changes, so we reimplemented them and added some fixes on top.
Added
- Injected DLL whitelist via
-i=<dllname.dll>flag; only specified DLLs are injected when at least one-i=option is present, in the declaration order (*wildcard allowed, defaults to-i="*.dll") - ESP modification support (
ESPModificationfeature flag), allowing DLLs to change the stack pointer across hooks for different stack depth at exit- Currently, only decreasing stack depth changes are fully safe; if you increase stack depth - you overlap the stack-allocated
REGISTERS* R, so be wary!
- Currently, only decreasing stack depth changes are fully safe; if you increase stack depth - you overlap the stack-allocated
- Zero flag preservation (
ZFPreservationfeature flag) so conditional instructions (e.g.JZ) can be safely hooked without clobberingZF - Relative address instruction fixup (
ReladdrInstructionFixupfeature flag) relocatingJMP/CALL/Jccoffsets in trampoline stubs to prevent stale-relative-offset crashes - Feature flags API via exported
SyringeFeatures::*booleans inSyringe.hfor runtime capability detection by injected DLLs - Automatic debugger detach after all hooks are placed;
--nodetachkeeps the debugger attached,--nowaitexits SyringeEx immediately after detaching
Changed
- Command-line syntax changed to facilitate easier expansion: first non-flag argument selects the target executable,
--args="..."passes through arguments,"..."are no longer required for the target EXE.- To migrate command-line, before:
After:
Syringe.exe "gamemd.exe" -SPAWN -CD -LOGSyringe.exe gamemd.exe --args="-SPAWN -CD -LOG" - To migrate XNA CnCNet Client, in
Resources/ClientDefinitions.ini->[Settings](don't forget to modify Unix compat. script as well), before:After:GameExecutableNames=gamemd.exe GameLauncherExecutableName=Syringe.exe ExtraCommandLineParams=-SPAWN -CD -LOG
GameExecutableNames=Syringe.exe ExtraCommandLineParams=gamemd.exe --args="-SPAWN -CD -LOG"
- To migrate command-line, before:
Fixed
- Multithreaded hook support using
FS:[0x14]thread-local storage instead ofDSsegment for reliable breakpoint dispatch in multi-threaded targets (similar to AlexB's private Syringe releases; thanks to @lhmouse and others for research help!) - Handshakes are now optional: handshake failures on the Steam version of Yuri's Revenge no longer prevent DLL loading (similar to AlexB's private Syringe releases)
Credits
Brought to you by yours truly, @Metadorius and @ZivDero.
Includes vendored Zydis /w Zycore-C under MIT license.