github ramhaidar/Win_1337_Apply_Patch v2.3

15 hours ago

Changelog:

  • Preserved the original case of the .1337 target inside the GUI by keeping OpenFileDialog filters 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 PatchEngine class so both GUI and CLI paths share the same PatchRequest/PatchOutcome plumbing, 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.Main plus the ConsolePatchParser so -patch/--patch plus -fileoffset, -backup, -takeownership, -schedule, -scheduledrun, and -help switches can be used by scripts, with UTF-8 console allocation, usage output, logging helpers, and consistent exit codes that reuse PatchEngine for every patch attempt.
  • Implemented ScheduledPatchManager/PatchScheduleDescriptor so -schedule writes a RunOnce registry entry that replays the exact CLI switches (including backups, offsets, ownership, and the generated -scheduledrun marker) to run the patch after the next reboot rather than blocking on a locked DLL.
  • Expanded automated coverage by adding Win_1337_Patch.Tests to the solution, creating MSTest suites for PatchEngine, ConsolePatchParser, ScheduledPatchManager, and the new PatchTargetResolver, 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 PatchTargetResolver to auto-detect nvencodeapi.1337/nvencodeapi64.1337 and resolve them to the proper SysWOW64/System32 DLLs, 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 Exe button, the TryAutoFillExecutable/SetExecutableTarget helpers, 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.md for the v2.3.0 release, detailing every feature, CLI option (with aliases and exit codes), architecture overview, automation scenarios, testing workflows (Visual Studio, vstest, and dotnet test), and contribution guidelines so the new functionality is fully documented.
  • Added docs/screenshots/image.png and 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 LICENSE file and refreshed the main project configuration to keep deterministic builds (GenerateResourceUsePreserializedResources), consistent indentation, and the existing System.Resources.Extensions reference while making the legal posture explicit for the new fork.
  • Bumped AssemblyVersion/AssemblyFileVersion to 2.3.0.0, removed the persisted urlexe/url1337 settings, 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 Success factories to Succeeded, and requiring non-null Action<string> callbacks so PatchOutcome, FileNormalizationResult, FileOwnershipResult, and ScheduledPatchResult always expose fully populated data regardless of how the operation ends.
  • Added System.Memory, System.Buffers, System.Numerics.Vectors, and System.Runtime.CompilerServices.Unsafe references to Win_1337_Patch.csproj along with RestoreProjectStyle="PackageReference" so the WinForms app inherits modern system package management while keeping the existing resource reference private.
  • Added the System.Collections.Immutable dependency to Win_1337_Patch.Tests and introduced the matching binding redirect in Win_1337_Patch.Tests/app.config to satisfy the immutable collection APIs used by the test suites without runtime linkage issues.

MD5 Sum Exe: 2D2B8A995A25107C0B401D88F44F3F7A

Full Changelog: v2.3...v2.3

Don't miss a new Win_1337_Apply_Patch release

NewReleases is sending notifications on new releases.