Releases: FunkyFr3sh/petool
v2024.12.28
Instructions
- Drag and drop an .exe/.dll on top of petool to create a new patching project
Example project for extending a executable with genprj: https://github.com/andrews05/EV-Nova-CE
Example projects for proxy dlls made with genproxy: https://github.com/FunkyFr3sh/cnc-ddraw/releases/latest/download/proxy-dlls.zip
Changelog
- Improved
genpatchcommand - does now print more details about unknown bytes - Fixed a crash in the generated proxy dll project in MSVC builds (
genproxy) - Removed C++ code in
genproxyprojects to reduce the chances for AV false positives - Proxy dlls do now require at least Windows Vista (
genproxy) - Exports are now working in
genprjprojects - A few other minor improvements
v2024.11.02
Instructions
- Drag and drop an .exe/.dll on top of petool to create a new patching project
- (.exe only) Check readme.md in the project folder for build instructions
Here's a newly made project that's using petool (Just to show an example): https://github.com/andrews05/EV-Nova-CE
Changelog
- New genproxy command - generate proxy dll project directory (Supports drag and drop of 1 dll) - Examples
- Improved genpatch command - does now print more details about unknown bytes
- Shows now proper error messages when a unsupported file is passed (e.g. x64 or .NET assemblies)
- Does not terminate anymore when a error occurred while using drag and drop on windows
- Added license into header files (BSD0)
v2024.10.23
Instructions
- Drag and drop an .exe on top of petool to create a new patching project
- Check readme.md in the project folder for more details
Here's a newly made project that's using petool (Just to show an example): https://github.com/andrews05/EV-Nova-CE
Changelog
- Added new macros: SETFLOAT, SETDOUBLE
- Removed old macros: LJMP_NOP, LJMP_INT
- New genpatch command - compares 2 executables and generates patch macros (Supports drag and drop)
- Added a workaround for a bug in binutils that could cause some data loss on strip
- A few minor bug fixes and improvements
v2024.07.26
Instructions
- Drag and drop an .exe on top of petool to create a new patching project
- Check readme.md in the project folder for more details
Here's a newly made project that's using petool (Just to show an example): https://github.com/andrews05/EV-Nova-CE
Changelog
- Does now warn about empty patches and duplicate hooks / conflicting patches
- Added additional error checking to macros
- Ported
@PATCHand@ENDPATCHmacros to GAS - Renamed winmain.c to winmain.cpp and sym.c to sym.cpp
Note: w64devkit-mini-for-patching.zip / .7z were updated after the release (Download links in readme point to petool/releases/latest, so I have to keep them up-to-date)
w64devkit-mini-for-patching source
v2024.07.09
Instructions
- Drag and drop an .exe on top of petool to create a new patching project
- Check readme.md in the project folder for more details
Here's a newly made project that's using petool (Just to show an example): https://github.com/andrews05/EV-Nova-CE
Changelog
- Added new
DETOURmacro (patch.h) - Added new
TRAMPOLINEmacro (setsym.h) - Improved support for the watcom register calling convention
__watcall:
CALLmacro does now support__watcallto__cdecltranslationCALL_NOPmacro does now support__watcallto__cdecltranslation- New
DETOURmacro with support for__watcallto__cdecltranslation - New
TRAMPOLINEmacro with support for__cdeclto__watcalltranslation SETCGLOBmacro does now support__cdeclto__watcalltranslation
v2024.04.28
Instructions
- Drag and drop an .exe on top of petool to create a new patching project
- Check readme.md in the project folder for more details
Here's a newly made project that's using petool (Just to show an example): https://github.com/andrews05/EV-Nova-CE
Changelog
- Added new "setts" command to set TimeDateStamp in FileHeader
- Added new macros for arrays to NASM / GAS datatypes.inc/s
- Readme now contains link to the small .7z file as well
- Fixed a bug with console applications (using correct startup function now, _mainCRTStartup)
- Minor bug fixes and improvements
v2024.04.15
Instructions
- Drag and drop an .exe on top of petool to create a new patching project
- Check readme.md in the project folder for more details
Here's a newly made project that's using petool (Just to show an example): https://github.com/andrews05/EV-Nova-CE
Changelog
- Added partial port of NASM datatypes.inc to GAS (macros/datatypes.s)
- Added new macro
SETWATGLOBand macros/watcall.asm for applications built with watcom compiler (See Readme) - Minor bug fixes and improvements
v2024.04.10
Instructions
- Drag and drop an .exe on top of petool to create a new patching project
- Check readme.md in the project folder for more details
Here's a newly made project that's using petool (Just to show an example): https://github.com/andrews05/EV-Nova-CE
Changelog
- Added new macros (See Readme):
LJMP_NOP,LJMP_INT - Improved debug output of
dump - Several bug fixes and improvements that allow petool to work with more applications
v2024.04.07
Instructions
- Drag and drop an .exe on top of petool to create a new patching project
- Check readme.md in the project folder for more details
Here's a newly made project that's using petool (Just to show an example): https://github.com/andrews05/EV-Nova-CE
Changelog
- Does have full C++ support now without any manual tweaks
- Several bug fixes and improvements that allow petool to work with more applications
- Added new macros for C/C++ (See Readme):
SETINST,SETBYTES,HOOK,CLEAR_NOP,CLEAR_INT - Added new macros for GNU AS:
@SET,@CLEAR,@SJMP.@LJMP,@CALL,@CALL_NOP,@HOOK,@CLEAR_INT,@CLEAR_NOP - Removed the NASM dependency (sym.asm is now sym.c)
v2024.04.01
Instructions
- Drag and drop an .exe on top of petool to create a new patching project
- Check readme.md in the project folder for more details
Here's a newly made project that's using petool (Just to show an example): https://github.com/andrews05/EV-Nova-CE
Changelog
- Improved makefile for better compatibility with tool kits other than w64devkit
- Should build on macOS with zero-config now as well
- Several bug fixes and improvements that allow petool to work with more applications
Note: To have C++ fully working you'll have to hook WinMain manually, a template for it can be found in start.c