This is a simple and clean Array Of Bytes Memory Scan helpful to make Memory hack programs.
// Initialize the library
AobScan ascan = new AobScan(AobScan.GetProcessID("explorer"));
Example 1:
byte[] pattern = Encoding.ASCII.GetBytes(@"C:\Users\mavmarong");
byte[] buffer = Encoding.ASCII.GetBytes(@"Hello!");
// With this you can easly find the addresses of the string "C:\Users\mavmarong" in the memory of the indicated process id.
ascan.ReadMemory(pattern);
// Automatically replace all the string containing "C:\Users\mavmarong" with "Hello!"
ascan.WriteMemory(buffer);
// or
ascan.WriteMemory(buffer, (uint) pattern.Length);
//^^ if you want to replace the whole string "C:\Users\mavmarong" put the pattern length in the second parameter of the WriteMemory function
Example 2:
string pattern = "C:\\Users\\mavmarong";
string buffer = "Hello!";
ascan.ReadMemory(pattern);
// From now on you can also change the start address and end address.
ascan.ReadMemory(pattern, 0xFE8, 0x100000);
ascan.WriteMemory(buffer);
// or
ascan.WriteMemory(buffer, (uint) AobScan.GetBytes(pattern).Length);
// You can see all the addresses that got found after the process got readed
foreach ( IntPtr address in ascan.GetAddresses( ) )
Console.WriteLine( $"0x{address.ToString( "X" )}" );
- Start the ReadMemory function in a thread to make it faster and with more performances.
- (If you are making a string scan) It won't search all the strings in the process, i recommend you to make a byte scan with UTF8 and ASCII Encoding instead of using default string scan (like in the Example 1).