diff --git a/LoadBinaryPluginExt.cs b/LoadBinaryPluginExt.cs index d791260..acc2407 100644 --- a/LoadBinaryPluginExt.cs +++ b/LoadBinaryPluginExt.cs @@ -153,7 +153,18 @@ public bool ReadRemoteMemory(IntPtr process, IntPtr address, ref byte[] buffer, { try { - using (var stream = info.File.CreateViewStream(address.ToInt64(), size)) + /* + * This ensures that addresses larger than 0x7FFF_FFFF are not negative after calling + * ToInt64 by removing low side from long address from IntPtr (which seems to be casted + * from int to long non-bitwise). Same problem applies to addresses that are larger than + * 0x7FFF_FFFF_FFFF_FFFF, however CreateViewStream only accepts long parameter. + */ + long addressInt64 = address.ToInt64(); + if (addressInt64 < 0) + { + addressInt64 &= 0xFFFF_FFFF; + } + using (var stream = info.File.CreateViewStream(addressInt64, size)) { stream.Read(buffer, 0, size); pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy