TCodeRedirect is a class that allow to patch method defined Delphi classes or procedures.
It provide runtime patch without modifying the original source code or redistibuted libraries (.bpl, .dcu).
The class shall works in both Win32 and Win64 platform only.
The example attempt to patch `CurrentYear` method in unit `System.SystUtils.pas`.uses
System.SysUtils,
CodeRedirect;
function CurrentYear_Patch: Word;
begin
Result := 1999;
end;
begin
WriteLn('Before patch: ', CurrentYear);
var o := TCodeRedirect.CreateWithMethod(@CurrentYear, @CurrentYear_Patch);
WriteLn('After patch: ', CurrentYear);
o.Free;
WriteLn('Remove patch: ', CurrentYear);
end.
Output Result
Before patch: 2021
After patch: 1999
Remove patch: 2021