Releases: FunkyFr3sh/petool
v2024.12.28
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
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
genpatch
command - 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
genproxy
projects to reduce the chances for AV false positives - Proxy dlls do now require at least Windows Vista (
genproxy
) - Exports are now working in
genprj
projects - 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
@PATCH
and@ENDPATCH
macros 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
DETOUR
macro (patch.h) - Added new
TRAMPOLINE
macro (setsym.h) - Improved support for the watcom register calling convention
__watcall
:
CALL
macro does now support__watcall
to__cdecl
translationCALL_NOP
macro does now support__watcall
to__cdecl
translation- New
DETOUR
macro with support for__watcall
to__cdecl
translation - New
TRAMPOLINE
macro with support for__cdecl
to__watcall
translation SETCGLOB
macro does now support__cdecl
to__watcall
translation
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
SETWATGLOB
and 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