revert only the required length of bytes

This commit is contained in:
Raymond 2021-09-06 22:08:59 -04:00
parent 85bcf3c30f
commit 1d9d383348

View file

@ -169,15 +169,14 @@ namespace Dalamud.Hooking.Internal
break;
}
var snippet = originalBytes[0..i];
if (i > 0)
{
Log.Verbose($"Reverting hook at 0x{address.ToInt64():X}");
fixed (byte* original = originalBytes)
{
MemoryHelper.ChangePermission(address, i, MemoryProtection.ExecuteReadWrite, out var oldPermissions);
MemoryHelper.WriteRaw(address, originalBytes);
MemoryHelper.ChangePermission(address, i, oldPermissions);
}
Log.Verbose($"Reverting hook at 0x{address.ToInt64():X} ({snippet.Length} bytes)");
MemoryHelper.ChangePermission(address, i, MemoryProtection.ExecuteReadWrite, out var oldPermissions);
MemoryHelper.WriteRaw(address, snippet);
MemoryHelper.ChangePermission(address, i, oldPermissions);
}
}
}