Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }