public Dictionary <OffsetsName, long> DoPatternScans(IMemory m) { var array = m.FindPatterns(FileRootPattern, AreaChangePattern, GameStatePattern); var result = new Dictionary <OffsetsName, long>(); // System.Console.WriteLine("Base Pattern: " + (m.AddressOfProcess + array[0]).ToString("x8")); var index = 0; var baseAddress = m.Process.MainModule.BaseAddress.ToInt64(); FileRoot = m.Read <int>(baseAddress + array[index] + 6) + array[index] + 10; index++; //FileRoot = 0x362CCC0; 3.11.0c AreaChangeCount = m.Read <int>(baseAddress + array[index] + 0xC) + array[index] + 0x10; index++; //AreaChangeCount = 0x336AA88; 3.11.0f GameStateOffset = m.Read <int>(baseAddress + array[index] + 29) + array[index] + 33; result.Add(OffsetsName.FileRoot, FileRoot); result.Add(OffsetsName.AreaChangeCount, AreaChangeCount); result.Add(OffsetsName.GameStateOffset, GameStateOffset); return(result); }
public Dictionary <OffsetsName, long> DoPatternScans(IMemory m) { var result = new Dictionary <OffsetsName, long>(); var addresses = m.FindPatterns(FileRootPattern, AreaChangePattern, GameStatePattern); var baseAddress = m.Process.MainModule.BaseAddress.ToInt64(); var fileRoot = m.Read <int>(baseAddress + addresses[0] + 6) + addresses[0] + 10; var areaChangeCount = m.Read <int>(baseAddress + addresses[1] + 7) + addresses[1] + 11; var gameStateOffset = m.Read <int>(baseAddress + addresses[2] + 16) + addresses[2] + 20; result.Add(OffsetsName.FileRoot, fileRoot); result.Add(OffsetsName.AreaChangeCount, areaChangeCount); result.Add(OffsetsName.GameStateOffset, gameStateOffset); return(result); }
public Dictionary <OffsetsName, long> DoPatternScans(IMemory m) { var array = m.FindPatterns( /*basePtrPattern,*/ fileRootPattern, areaChangePattern, /* isLoadingScreenPattern,*/ GameStatePattern); var result = new Dictionary <OffsetsName, long>(); // System.Console.WriteLine("Base Pattern: " + (m.AddressOfProcess + array[0]).ToString("x8")); var index = 0; var baseAddress = m.Process.MainModule.BaseAddress.ToInt64(); // Base = m.Read<int>(baseAddress + array[index] + 0xF) + array[index] + 0x13; index++; // System.Console.WriteLine("Base Address: " + (Base + m.AddressOfProcess).ToString("x8")); // long InGameState = m.Read<long>(Base + BaseAddress, 0x8, 0xF8, 0x38); // System.Console.WriteLine("InGameState: " + InGameState.ToString("x8")); FileRoot = m.Read <int>(baseAddress + array[index] + 0x3) + array[index] + 0x7; index++; // System.Console.WriteLine("FileRoot Pointer: " + (FileRoot + m.AddressOfProcess).ToString("x8")); AreaChangeCount = m.Read <int>(baseAddress + array[index] + 0xC) + array[index] + 0x10; index++; // System.Console.WriteLine("AreaChangeCount: " + m.ReadInt(AreaChangeCount + m.AddressOfProcess).ToString()); // isLoadingScreenOffset = m.Read<int>(baseAddress + array[index] + 0x03) + array[index] + 0x07; //index++; // System.Console.WriteLine("Is Loading Screen Offset:" + (isLoadingScreenOffset + m.AddressOfProcess).ToString("x8")); GameStateOffset = m.Read <int>(baseAddress + array[index] + 29) + array[index] + 33; // System.Console.WriteLine("Game State Offset:" + (GameStateOffset + m.AddressOfProcess).ToString("x8")); // result.Add(OffsetsName.Base,Base); result.Add(OffsetsName.FileRoot, FileRoot); result.Add(OffsetsName.AreaChangeCount, AreaChangeCount); // result.Add(OffsetsName.IsLoadingScreenOffset,isLoadingScreenOffset); result.Add(OffsetsName.GameStateOffset, GameStateOffset); return(result); }
public Dictionary <OffsetsName, long> DoPatternScans(IMemory m) { var array = m.FindPatterns(FileRootPattern, AreaChangePattern, GameStatePattern); var result = new Dictionary <OffsetsName, long>(); var index = 0; var baseAddress = m.Process.MainModule.BaseAddress.ToInt64(); FileRoot = m.Read <int>(baseAddress + array[index] + 0x6) + array[index] + 0xA; index++; AreaChangeCount = m.Read <int>(baseAddress + array[index] + 0xD) + array[index] + 0x11; index++; GameStateOffset = m.Read <int>(baseAddress + array[index] + 0x8) + array[index] + 0xC; result.Add(OffsetsName.FileRoot, FileRoot); result.Add(OffsetsName.AreaChangeCount, AreaChangeCount); result.Add(OffsetsName.GameStateOffset, GameStateOffset); return(result); }