Changelog:
- Preserved the original case of the
.1337target inside the GUI by keepingOpenFileDialogfilters and error messages in the same casing that users supplied while still comparing in a case-insensitive manner so Windows 10 no longer filters out valid files and the dialog hints match the requested file name exactly. - Centralized the binary patch workflow into the new
PatchEngineclass so both GUI and CLI paths share the samePatchRequest/PatchOutcomeplumbing, careful hex parsing with optional 0xC00 offset correction, pre-flight byte validation, optional timestamped backups, optional ownership elevation, PE certificate cleanup, checksum normalization, and exhaustive failure messages before an output file is written back. - Added a console automation entry point in
Program.Mainplus theConsolePatchParserso-patch/--patchplus-fileoffset,-backup,-takeownership,-schedule,-scheduledrun, and-helpswitches can be used by scripts, with UTF-8 console allocation, usage output, logging helpers, and consistent exit codes that reusePatchEnginefor every patch attempt. - Implemented
ScheduledPatchManager/PatchScheduleDescriptorso-schedulewrites a RunOnce registry entry that replays the exact CLI switches (including backups, offsets, ownership, and the generated-scheduledrunmarker) to run the patch after the next reboot rather than blocking on a locked DLL. - Expanded automated coverage by adding
Win_1337_Patch.Teststo the solution, creating MSTest suites forPatchEngine,ConsolePatchParser,ScheduledPatchManager, and the newPatchTargetResolver, and verifying success paths (backup creation, byte replacement) alongside failure cases (invalid header, name mismatch, byte mismatch, and scheduled command-line building) so the core safety logic stays guarded. - Introduced
PatchTargetResolverto auto-detectnvencodeapi.1337/nvencodeapi64.1337and resolve them to the properSysWOW64/System32DLLs, returning the target path to both the GUI and the CLI so common NVAPI patches no longer require manual browsing. - Enhanced the GUI with a dedicated
Select Exebutton, theTryAutoFillExecutable/SetExecutableTargethelpers, and smarter initial directories so the exe/dll field, tooltip, and layout stay in sync with both auto-detected and manually chosen targets. - Rewrote
README.mdfor the v2.3.0 release, detailing every feature, CLI option (with aliases and exit codes), architecture overview, automation scenarios, testing workflows (Visual Studio, vstest, anddotnet test), and contribution guidelines so the new functionality is fully documented. - Added
docs/screenshots/image.pngand referenced it on the README landing section to give operators an immediate visual confirmation of the GUI state before they download or build the tool. - Added a GPLv3
LICENSEfile and refreshed the main project configuration to keep deterministic builds (GenerateResourceUsePreserializedResources), consistent indentation, and the existingSystem.Resources.Extensionsreference while making the legal posture explicit for the new fork. - Bumped
AssemblyVersion/AssemblyFileVersionto2.3.0.0, removed the persistedurlexe/url1337settings, and initialized the exe/patch text boxes with “Select …” placeholders so every launch starts from a known clean state instead of dragging stale paths into the next session. - Refined the core result/value helper APIs by dropping nullable annotations, renaming
Successfactories toSucceeded, and requiring non-nullAction<string>callbacks soPatchOutcome,FileNormalizationResult,FileOwnershipResult, andScheduledPatchResultalways expose fully populated data regardless of how the operation ends. - Added
System.Memory,System.Buffers,System.Numerics.Vectors, andSystem.Runtime.CompilerServices.Unsafereferences toWin_1337_Patch.csprojalong withRestoreProjectStyle="PackageReference"so the WinForms app inherits modern system package management while keeping the existing resource reference private. - Added the
System.Collections.Immutabledependency toWin_1337_Patch.Testsand introduced the matching binding redirect inWin_1337_Patch.Tests/app.configto satisfy the immutable collection APIs used by the test suites without runtime linkage issues.
MD5 Sum Exe: 2D2B8A995A25107C0B401D88F44F3F7A
Full Changelog: v2.3...v2.3