Nota de última hora:
Al ver el código, subí una versión en la que comenté una línea para hacer pruebas, se debe "descomentar" para ganar algo de velocidad. Esta es la parte del código:
Código Delphi
[-]
if WriteProcessMemory(hProc, pointer(mbi.BaseAddress + i), NewStr, Size, PDWORD(0)^) then
begin
Result:= Result or true;
end;
Debe quedar así:
Código Delphi
[-]
if WriteProcessMemory(hProc, pointer(mbi.BaseAddress + i), NewStr, Size, PDWORD(0)^) then
begin
i:= i + Size - 1;
Result:= Result or true;
end;
Saludos.