PatternScanner Class + List

Posts 1–8 of 8 · Page 1 of 1
PatternScanner Class + List
Hi everyone, i release my list of patterns, so you can use them in your own codes...
Note, that i use my own self-made pattern scanner, and it may be different from yours...

So i release the source of it, but its written in C# so you have to convert to C++ if you want to use...

The patterns are created from Cf Eu...

PatternScanner Methods:
Code:
private static unsafe uint FindPattern(int StartAddress, int Length, string bMask, string szMask)
        {
            byte[] ByteMask = new byte[szMask.Length];


            //Creating Byte Array
            int State = 0;
            for (int i = 0; i < bMask.Length; i++)
            {
                if (bMask[i] == 'x')
                {
                    ByteMask[State] = byte.Parse(bMask.Substring(i + 1, 2), System.Globalization.NumberStyles.HexNumber);
                    State++;
                }


            }


            //Searching Byte Pattern
            for (int i = 0; i < Length; i++)
            {
                bool Found = true;
                for (int j = 0; j < ByteMask.Length; j++)
                {
                    Found = Found && ((ByteMask[j] == *(byte*)(StartAddress + i + j)) || szMask[j] == '?');
                }
                if (Found) return (uint)(StartAddress + i); //Found it
            }
            return 0; //Didn't found it
        }


        public static unsafe int[] SequentedOffsetScanner(int StartAddress, int Length, string bMask, string szMask, int OffsetPos)
        {
            List<int> FoundOffsets = new List<int>();


            //Creating Byte Array
            byte[] ByteMask = new byte[szMask.Length];
            int State = 0;
            for (int i = 0; i < bMask.Length; i++)
            {
                if (bMask[i] == 'x')
                {
                    ByteMask[State] = byte.Parse(bMask.Substring(i + 1, 2), System.Globalization.NumberStyles.HexNumber);
                    State++;
                }


            }


            //Searching Byte Pattern
            for (int i = 0; i < Length; i++)
            {
                bool Found = true;
                for (int j = 0; j < ByteMask.Length; j++)
                {
                    Found = Found && ((ByteMask[j] == *(byte*)(StartAddress + i + j)) || szMask[j] == '?');
                }
                if (Found)
                {
                    if (!FoundOffsets.Contains(*(int*)(StartAddress + i + OffsetPos)))
                        FoundOffsets.Add(*(int*)(StartAddress + i + OffsetPos));
                }
            }
            return FoundOffsets.ToArray();
        }


        public static unsafe int[] SequentedByteOffsetScanner(int StartAddress, int Length, string bMask, string szMask, int OffsetPos)
        {
            List<int> FoundOffsets = new List<int>();


            //Creating Byte Array
            byte[] ByteMask = new byte[szMask.Length];
            int State = 0;
            for (int i = 0; i < bMask.Length; i++)
            {
                if (bMask[i] == 'x')
                {
                    ByteMask[State] = byte.Parse(bMask.Substring(i + 1, 2), System.Globalization.NumberStyles.HexNumber);
                    State++;
                }


            }


            //Searching Byte Pattern
            for (int i = 0; i < Length; i++)
            {
                bool Found = true;
                for (int j = 0; j < ByteMask.Length; j++)
                {
                    Found = Found && ((ByteMask[j] == *(byte*)(StartAddress + i + j)) || szMask[j] == '?');
                }
                if (Found)
                {
                    if (!FoundOffsets.Contains((int)(*(byte*)(StartAddress + i + OffsetPos))))
                        FoundOffsets.Add((int)(*(byte*)(StartAddress + i + OffsetPos)));
                }
            }
            return FoundOffsets.ToArray();
        }
Pattern Scannings:
Code:
public static unsafe uint FindWeaponMgr(uint CShell)
        {
            uint WeaponMgr = FindPattern((int)CShell, 0xFFFFFF, @"\x8B\x4F\x04\xA1\x00\x00\x00\x00\x85\xC0\x8B\x51\x04\x8B\x6A\x04", "xxxx????xxxxxxxx");
            WeaponMgr = (*(uint*)(WeaponMgr + 4)) - CShell;
            return WeaponMgr;
        }


        public static unsafe uint FindCShellPointer(uint CShell)
        {
            uint CShell_Pointer = FindPattern((int)CShell, 0xFFFFFF, @"\xc6\x01\x01\x8b\x15\x00\x00\x00\x00\x8b\x82\x00\x00\x00\x00\x8B", "xxxxx????xx????x");
            CShell_Pointer = (*(uint*)(CShell_Pointer + 5)) - CShell;
            return CShell_Pointer;
        }


        public static unsafe uint FindBasicPlayerInfo(uint CShell)
        {
            uint BasicPlayerInfo = FindPattern((int)CShell, 0xFFFFFF, @"\x8B\x0D\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC0\xA8\x00\x00\x00\xD9\x9C\x08\x88\x00\x00\x00\x8B\x4C\x24\x30\x3B\xCB", "xx????xxxxx????xxx????xxx?xx");
            BasicPlayerInfo = (*(uint*)(BasicPlayerInfo + 2)) - CShell;
            return BasicPlayerInfo;
        }
        public static unsafe uint FindPushToConsole(uint CShell)
        {
            uint BasicPlayerInfo = FindPattern((int)CShell, 0xFFFFFF, @"\x68\xB4\xB5\x5B\x10\x68\x28\x27\x4E\x10\xB9\x28\xB6\x5B\x10\xE8\x07\xE4\xB4\xFF\x68\x40\xA1\x4D\x10\xE8\x4A\xDC\xF8\xFF\x59\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\x04\x68\x3C\x27\x4E\x10\x68\x38\x3B\x5A\x10\xB9\x38\xB6\x5B\x10\xE8\xDA\xE4\xB4\xFF\x68\x50\xA1\x4D\x10\xE8\x1D\xDC\xF8\xFF", "x????x????x????x????x????x????xxxxxxxxxxxxxx?x????x????x????x????x????x????");
            BasicPlayerInfo = (*(uint*)(BasicPlayerInfo + 1)) - CShell;
            return BasicPlayerInfo;
        }
        //*****************Offsets
        public static unsafe void BetaOffsetSearch(uint CShell)
        {
            int[] Offsets = SequentedByteOffsetScanner((int)CShell, 0xFFFFFF, @"\xD9\x5C\x24\x24\x8B\x0D\xD4\x52\xF6\x10\xD9\x44\x24\x24\x8B\x15\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC9\xA8\x00\x00\x00\xD9\x5C\x11\x08", "xxx?xx????xxx?xx????xx?xx????xxx?", 32);
            for (int i = 0; i < Offsets.Length; i++)
                Console.WriteLine("Found Offset(C4DefuTimePattern): 0x" + Storage.DecToHex(Offsets[i]));
        }
        //WeaponMgr
        public static unsafe uint FindReloadAnimRatio(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8B\x0D\xA4\xC5\xFC\x10\x53\x8D\x3C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x07\xD9\x98\x3C\x0C\x00\x00\x83\xC4\x04", "xx????xxxxxx????xxx?xxx?xxxx????xx?", 28);
            return (uint)Offsets[1];
        }


        public static unsafe uint FindChangeWeaponAnimRatio(uint CShell)
        {
            uint Value = FindPattern((int)CShell, 0xFFFFFF, @"\x8B\x0D\xA4\xC5\xFC\x10\x53\x8D\x3C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\x8B\x17\xD9\x44\x24\x14\x8B\x3D\xE0\xC4\x4D\x10\xD9\x9A\x40\x0C\x00\x00\x83\xC4\x04", "xx????xxxxxx????xxx?xxxxx?xx????xx????xx?");
            return (*(uint*)(Value + 34));
        }


        public static unsafe uint FindLeftClickAttributes(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x2B\xC1\xC1\xF8\x02\x3B\xF0\x72\x0C\xFF\x15\xE0\xC4\x4D\x10\x8B\x0D\xA4\xC5\xFC\x10\x8B\x04\xB1\x83\x88\xEC\x0A\x00\x00\x01", "xxxx?xxxxxx????xx????xxxxx?????", 26);
            return (uint)Offsets[0];
        }


        public static unsafe uint FindRightClickAttributes(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x2B\xC1\xC1\xF8\x02\x3B\xF0\x72\x0C\xFF\x15\xE0\xC4\x4D\x10\x8B\x0D\xA4\xC5\xFC\x10\x8B\x04\xB1\x83\x88\xEC\x0A\x00\x00\x01", "xxxx?xxxxxx????xx????xxxxx?????", 26);
            return (uint)Offsets[1];
        }


        public static unsafe uint FindZoomAttributes(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x2B\xC1\xC1\xF8\x02\x3B\xF0\x72\x0C\xFF\x15\xE0\xC4\x4D\x10\x8B\x0D\xA4\xC5\xFC\x10\x8B\x04\xB1\x83\x88\xEC\x0A\x00\x00\x01", "xxxx?xxxxxx????xx????xxxxx?????", 26);
            return (uint)Offsets[2];
        }
        public static unsafe uint FindZoomAction(uint CShell)
        {
            uint Value = FindPattern((int)CShell, 0xFFFFFF, @"\x8B\x0D\xA4\xC5\xFC\x10\x55\x8D\x1C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x0B\xD9\x9C\xB9\x20\x39\x00\x00", "xx????xxxxxx????xxx?xxx?xxxxx????");
            return (*(uint*)(Value + 29));
        }
        public static unsafe uint FindRange(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\xD9\x44\x24\x14\x8B\x06\xDC\x0D\x50\xFC\x54\x10\x83\xC4\x04\xD9\x5C\x24\x10\xD9\x44\x24\x10\xD9\x98\x0C\x08\x00\x00", "xxx?xxxx????xx?xxx?xxx?xx????", 25);
            return (uint)Offsets[0];
        }
        public static unsafe uint FindAiModeRange(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\xD9\x44\x24\x14\x8B\x06\xDC\x0D\x50\xFC\x54\x10\x83\xC4\x04\xD9\x5C\x24\x10\xD9\x44\x24\x10\xD9\x98\x0C\x08\x00\x00", "xxx?xxxx????xx?xxx?xxx?xx????", 25);
            return (uint)Offsets[1];
        }
        public static unsafe uint FindDamageVariantionFactor(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8D\x34\xA9\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x16\xD9\x9A\x38\x08\x00\x00", "xxxxx????xxx?xxx?xxxx????", 21);
            return (uint)Offsets[2];
        }
        public static unsafe uint FindAmmoDamage(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8D\x34\xA9\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x06\xD9\x98\x1C\x08\x00\x00", "xxxxx????xxx?xxx?xxxx????", 21);
            return (uint)Offsets[0];
        }




        //BasicPlayerInfo
        public static unsafe uint FindC4DefuseTime(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8B\x15\xD4\x52\xF6\x10\xD9\x44\x24\x24\xA1\xD8\x52\xF6\x10\x83\xC4\x04\x69\xD2\xA8\x00\x00\x00\xD9\x9C\x02\x80\x00\x00\x00", "xx????xxx?x????xx?xx????xxx????", 27);
            return (uint)Offsets[0];
        }
        public static unsafe uint FindCharacterHiddenWalkAlpha(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8B\x15\xD4\x52\xF6\x10\xD9\x44\x24\x24\xA1\xD8\x52\xF6\x10\x83\xC4\x04\x69\xD2\xA8\x00\x00\x00\xD9\x9C\x02\x80\x00\x00\x00", "xx????xxx?x????xx?xx????xxx????", 27);
            return (uint)Offsets[1];
        }
        public static unsafe uint FindCharacterHiddenRunAlpha(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8B\x15\xD4\x52\xF6\x10\xD9\x44\x24\x24\xA1\xD8\x52\xF6\x10\x83\xC4\x04\x69\xD2\xA8\x00\x00\x00\xD9\x9C\x02\x80\x00\x00\x00", "xx????xxx?x????xx?xx????xxx????", 27);
            return (uint)Offsets[1] + 4;
        }
        public static unsafe uint FindMovementWalkRate(uint CShell)
        {
            int[] Offsets = SequentedByteOffsetScanner((int)CShell, 0xFFFFFF, @"\xD9\x5C\x24\x24\x8B\x0D\xD4\x52\xF6\x10\xD9\x44\x24\x24\x8B\x15\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC9\xA8\x00\x00\x00\xD9\x5C\x11\x08", "xxx?xx????xxx?xx????xx?xx????xxx?", 32);
            return (uint)Offsets[0];
        }
And the Templates project:
Code:
//***************************
CShell_Pointer(5)
\xc6\x01\x01\x8b\x15\x00\x00\x00\x00\x8b\x82\x00\x00\x00\x00\x8B
xxxxx????xx????x


//***************************
WeaponMgr(4)
\x8B\x4F\x04\xA1\x00\x00\x00\x00\x85\xC0\x8B\x51\x04\x8B\x6A\x04
xxxx????xxxxxxxx


//***************************
BasicPlayerInfo(2)
\x8B\x0D\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC0\xA8\x00\x00\x00\xD9\x9C\x08\x88\x00\x00\x00\x8B\x4C\x24\x30\x3B\xCB
xx????xx?xx????xxx????xxx?xx


//***************************
0: LeftClickAttributes(26), 1: RightClickAttributes(26), 2: ZoomAttributes(26), 3: ReloadAttributes(26)
\x2B\xC1\xC1\xF8\x02\x3B\xF0\x72\x0C\xFF\x15\xE0\xC4\x4D\x10\x8B\x0D\xA4\xC5\xFC\x10\x8B\x04\xB1\x83\x88\xEC\x0A\x00\x00\x01
xxxx?xxxxxx????xx????xxxxx?????


//***************************
PushToConsole(1)
\x68\xB4\xB5\x5B\x10\x68\x28\x27\x4E\x10\xB9\x28\xB6\x5B\x10\xE8\x07\xE4\xB4\xFF\x68\x40\xA1\x4D\x10\xE8\x4A\xDC\xF8\xFF\x59\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\x04\x68\x3C\x27\x4E\x10\x68\x38\x3B\x5A\x10\xB9\x38\xB6\x5B\x10\xE8\xDA\xE4\xB4\xFF\x68\x50\xA1\x4D\x10\xE8\x1D\xDC\xF8\xFF
x????x????x????x????x????x????xxxxxxxxxxxxxx?x????x????x????x????x????x????


//***************************
0: Unknown(28), 1: ReloadAnimRatio(28), 2: UnKnown(28)
\x8B\x0D\xA4\xC5\xFC\x10\x53\x8D\x3C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x07\xD9\x98\x3C\x0C\x00\x00\x83\xC4\x04
xx????xxxxxx????xxx?xxx?xxxx????xx?


//***************************
ChangeWeaponAnimRatio(34)
\x8B\x0D\xA4\xC5\xFC\x10\x53\x8D\x3C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\x8B\x17\xD9\x44\x24\x14\x8B\x3D\xE0\xC4\x4D\x10\xD9\x9A\x40\x0C\x00\x00\x83\xC4\x04
xx????xxxxxx????xxx?xxxxx?xx????xx????xx?


//***************************
ZoomAction(29)
\x8B\x0D\xA4\xC5\xFC\x10\x55\x8D\x1C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x0B\xD9\x9C\xB9\x20\x39\x00\x00
xx????xxxxxx????xxx?xxx?xxxxx????


//***************************
0:Range(25), 1:AiModeRange(25)
\xD9\x44\x24\x14\x8B\x06\xDC\x0D\x50\xFC\x54\x10\x83\xC4\x04\xD9\x5C\x24\x10\xD9\x44\x24\x10\xD9\x98\x0C\x08\x00\x00
xxx?xxxx????xx?xxx?xxx?xx????


//***************************
0: AIModeDamageFactorByDistance(21), 1: DamageFactorByDistance(21), 2: DamageVariantionFactor(21), 3: BoomDuration(21)
\x8D\x34\xA9\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x16\xD9\x9A\x38\x08\x00\x00
xxxxx????xxx?xxx?xxxx????


//***************************
0:AmmoDamage(21), 1: ReloadAnimRatio(21)
\x8D\x34\xA9\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x06\xD9\x98\x1C\x08\x00\x00
xxxxx????xxx?xxx?xxxx????


//***************************
0: C4DefuseTime(27), 1: CharacterHiddenWalkAlpha(27), 2: UnKnown(27)
\x8B\x15\xD4\x52\xF6\x10\xD9\x44\x24\x24\xA1\xD8\x52\xF6\x10\x83\xC4\x04\x69\xD2\xA8\x00\x00\x00\xD9\x9C\x02\x80\x00\x00\x00
xx????xxx?x????xx?xx????xxx????


//***************************
0: MovementWalkRate(32), 1: UnKnown(32), 2: UnKnown(32), 3: UnKnown(32), 4: UnKnwon(32)
\xD9\x5C\x24\x24\x8B\x0D\xD4\x52\xF6\x10\xD9\x44\x24\x24\x8B\x15\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC9\xA8\x00\x00\x00\xD9\x5C\x11\x08
xxx?xx????xxx?xx????xx?xx????xxx?
Quote Originally Posted by rabir007 View Post
Hi everyone, i release my list of patterns, so you can use them in your own codes...
Note, that i use my own self-made pattern scanner, and it may be different from yours...

So i release the source of it, but its written in C# so you have to convert to C++ if you want to use...

The patterns are created from Cf Eu...

PatternScanner Methods:
Code:
private static unsafe uint FindPattern(int StartAddress, int Length, string bMask, string szMask)
        {
            byte[] ByteMask = new byte[szMask.Length];


            //Creating Byte Array
            int State = 0;
            for (int i = 0; i < bMask.Length; i++)
            {
                if (bMask[i] == 'x')
                {
                    ByteMask[State] = byte.Parse(bMask.Substring(i + 1, 2), System.Globalization.NumberStyles.HexNumber);
                    State++;
                }


            }


            //Searching Byte Pattern
            for (int i = 0; i < Length; i++)
            {
                bool Found = true;
                for (int j = 0; j < ByteMask.Length; j++)
                {
                    Found = Found && ((ByteMask[j] == *(byte*)(StartAddress + i + j)) || szMask[j] == '?');
                }
                if (Found) return (uint)(StartAddress + i); //Found it
            }
            return 0; //Didn't found it
        }


        public static unsafe int[] SequentedOffsetScanner(int StartAddress, int Length, string bMask, string szMask, int OffsetPos)
        {
            List<int> FoundOffsets = new List<int>();


            //Creating Byte Array
            byte[] ByteMask = new byte[szMask.Length];
            int State = 0;
            for (int i = 0; i < bMask.Length; i++)
            {
                if (bMask[i] == 'x')
                {
                    ByteMask[State] = byte.Parse(bMask.Substring(i + 1, 2), System.Globalization.NumberStyles.HexNumber);
                    State++;
                }


            }


            //Searching Byte Pattern
            for (int i = 0; i < Length; i++)
            {
                bool Found = true;
                for (int j = 0; j < ByteMask.Length; j++)
                {
                    Found = Found && ((ByteMask[j] == *(byte*)(StartAddress + i + j)) || szMask[j] == '?');
                }
                if (Found)
                {
                    if (!FoundOffsets.Contains(*(int*)(StartAddress + i + OffsetPos)))
                        FoundOffsets.Add(*(int*)(StartAddress + i + OffsetPos));
                }
            }
            return FoundOffsets.ToArray();
        }


        public static unsafe int[] SequentedByteOffsetScanner(int StartAddress, int Length, string bMask, string szMask, int OffsetPos)
        {
            List<int> FoundOffsets = new List<int>();


            //Creating Byte Array
            byte[] ByteMask = new byte[szMask.Length];
            int State = 0;
            for (int i = 0; i < bMask.Length; i++)
            {
                if (bMask[i] == 'x')
                {
                    ByteMask[State] = byte.Parse(bMask.Substring(i + 1, 2), System.Globalization.NumberStyles.HexNumber);
                    State++;
                }


            }


            //Searching Byte Pattern
            for (int i = 0; i < Length; i++)
            {
                bool Found = true;
                for (int j = 0; j < ByteMask.Length; j++)
                {
                    Found = Found && ((ByteMask[j] == *(byte*)(StartAddress + i + j)) || szMask[j] == '?');
                }
                if (Found)
                {
                    if (!FoundOffsets.Contains((int)(*(byte*)(StartAddress + i + OffsetPos))))
                        FoundOffsets.Add((int)(*(byte*)(StartAddress + i + OffsetPos)));
                }
            }
            return FoundOffsets.ToArray();
        }
Pattern Scannings:
Code:
public static unsafe uint FindWeaponMgr(uint CShell)
        {
            uint WeaponMgr = FindPattern((int)CShell, 0xFFFFFF, @"\x8B\x4F\x04\xA1\x00\x00\x00\x00\x85\xC0\x8B\x51\x04\x8B\x6A\x04", "xxxx????xxxxxxxx");
            WeaponMgr = (*(uint*)(WeaponMgr + 4)) - CShell;
            return WeaponMgr;
        }


        public static unsafe uint FindCShellPointer(uint CShell)
        {
            uint CShell_Pointer = FindPattern((int)CShell, 0xFFFFFF, @"\xc6\x01\x01\x8b\x15\x00\x00\x00\x00\x8b\x82\x00\x00\x00\x00\x8B", "xxxxx????xx????x");
            CShell_Pointer = (*(uint*)(CShell_Pointer + 5)) - CShell;
            return CShell_Pointer;
        }


        public static unsafe uint FindBasicPlayerInfo(uint CShell)
        {
            uint BasicPlayerInfo = FindPattern((int)CShell, 0xFFFFFF, @"\x8B\x0D\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC0\xA8\x00\x00\x00\xD9\x9C\x08\x88\x00\x00\x00\x8B\x4C\x24\x30\x3B\xCB", "xx????xxxxx????xxx????xxx?xx");
            BasicPlayerInfo = (*(uint*)(BasicPlayerInfo + 2)) - CShell;
            return BasicPlayerInfo;
        }
        public static unsafe uint FindPushToConsole(uint CShell)
        {
            uint BasicPlayerInfo = FindPattern((int)CShell, 0xFFFFFF, @"\x68\xB4\xB5\x5B\x10\x68\x28\x27\x4E\x10\xB9\x28\xB6\x5B\x10\xE8\x07\xE4\xB4\xFF\x68\x40\xA1\x4D\x10\xE8\x4A\xDC\xF8\xFF\x59\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\x04\x68\x3C\x27\x4E\x10\x68\x38\x3B\x5A\x10\xB9\x38\xB6\x5B\x10\xE8\xDA\xE4\xB4\xFF\x68\x50\xA1\x4D\x10\xE8\x1D\xDC\xF8\xFF", "x????x????x????x????x????x????xxxxxxxxxxxxxx?x????x????x????x????x????x????");
            BasicPlayerInfo = (*(uint*)(BasicPlayerInfo + 1)) - CShell;
            return BasicPlayerInfo;
        }
        //*****************Offsets
        public static unsafe void BetaOffsetSearch(uint CShell)
        {
            int[] Offsets = SequentedByteOffsetScanner((int)CShell, 0xFFFFFF, @"\xD9\x5C\x24\x24\x8B\x0D\xD4\x52\xF6\x10\xD9\x44\x24\x24\x8B\x15\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC9\xA8\x00\x00\x00\xD9\x5C\x11\x08", "xxx?xx????xxx?xx????xx?xx????xxx?", 32);
            for (int i = 0; i < Offsets.Length; i++)
                Console.WriteLine("Found Offset(C4DefuTimePattern): 0x" + Storage.DecToHex(Offsets[i]));
        }
        //WeaponMgr
        public static unsafe uint FindReloadAnimRatio(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8B\x0D\xA4\xC5\xFC\x10\x53\x8D\x3C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x07\xD9\x98\x3C\x0C\x00\x00\x83\xC4\x04", "xx????xxxxxx????xxx?xxx?xxxx????xx?", 28);
            return (uint)Offsets[1];
        }


        public static unsafe uint FindChangeWeaponAnimRatio(uint CShell)
        {
            uint Value = FindPattern((int)CShell, 0xFFFFFF, @"\x8B\x0D\xA4\xC5\xFC\x10\x53\x8D\x3C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\x8B\x17\xD9\x44\x24\x14\x8B\x3D\xE0\xC4\x4D\x10\xD9\x9A\x40\x0C\x00\x00\x83\xC4\x04", "xx????xxxxxx????xxx?xxxxx?xx????xx????xx?");
            return (*(uint*)(Value + 34));
        }


        public static unsafe uint FindLeftClickAttributes(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x2B\xC1\xC1\xF8\x02\x3B\xF0\x72\x0C\xFF\x15\xE0\xC4\x4D\x10\x8B\x0D\xA4\xC5\xFC\x10\x8B\x04\xB1\x83\x88\xEC\x0A\x00\x00\x01", "xxxx?xxxxxx????xx????xxxxx?????", 26);
            return (uint)Offsets[0];
        }


        public static unsafe uint FindRightClickAttributes(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x2B\xC1\xC1\xF8\x02\x3B\xF0\x72\x0C\xFF\x15\xE0\xC4\x4D\x10\x8B\x0D\xA4\xC5\xFC\x10\x8B\x04\xB1\x83\x88\xEC\x0A\x00\x00\x01", "xxxx?xxxxxx????xx????xxxxx?????", 26);
            return (uint)Offsets[1];
        }


        public static unsafe uint FindZoomAttributes(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x2B\xC1\xC1\xF8\x02\x3B\xF0\x72\x0C\xFF\x15\xE0\xC4\x4D\x10\x8B\x0D\xA4\xC5\xFC\x10\x8B\x04\xB1\x83\x88\xEC\x0A\x00\x00\x01", "xxxx?xxxxxx????xx????xxxxx?????", 26);
            return (uint)Offsets[2];
        }
        public static unsafe uint FindZoomAction(uint CShell)
        {
            uint Value = FindPattern((int)CShell, 0xFFFFFF, @"\x8B\x0D\xA4\xC5\xFC\x10\x55\x8D\x1C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x0B\xD9\x9C\xB9\x20\x39\x00\x00", "xx????xxxxxx????xxx?xxx?xxxxx????");
            return (*(uint*)(Value + 29));
        }
        public static unsafe uint FindRange(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\xD9\x44\x24\x14\x8B\x06\xDC\x0D\x50\xFC\x54\x10\x83\xC4\x04\xD9\x5C\x24\x10\xD9\x44\x24\x10\xD9\x98\x0C\x08\x00\x00", "xxx?xxxx????xx?xxx?xxx?xx????", 25);
            return (uint)Offsets[0];
        }
        public static unsafe uint FindAiModeRange(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\xD9\x44\x24\x14\x8B\x06\xDC\x0D\x50\xFC\x54\x10\x83\xC4\x04\xD9\x5C\x24\x10\xD9\x44\x24\x10\xD9\x98\x0C\x08\x00\x00", "xxx?xxxx????xx?xxx?xxx?xx????", 25);
            return (uint)Offsets[1];
        }
        public static unsafe uint FindDamageVariantionFactor(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8D\x34\xA9\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x16\xD9\x9A\x38\x08\x00\x00", "xxxxx????xxx?xxx?xxxx????", 21);
            return (uint)Offsets[2];
        }
        public static unsafe uint FindAmmoDamage(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8D\x34\xA9\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x06\xD9\x98\x1C\x08\x00\x00", "xxxxx????xxx?xxx?xxxx????", 21);
            return (uint)Offsets[0];
        }




        //BasicPlayerInfo
        public static unsafe uint FindC4DefuseTime(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8B\x15\xD4\x52\xF6\x10\xD9\x44\x24\x24\xA1\xD8\x52\xF6\x10\x83\xC4\x04\x69\xD2\xA8\x00\x00\x00\xD9\x9C\x02\x80\x00\x00\x00", "xx????xxx?x????xx?xx????xxx????", 27);
            return (uint)Offsets[0];
        }
        public static unsafe uint FindCharacterHiddenWalkAlpha(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8B\x15\xD4\x52\xF6\x10\xD9\x44\x24\x24\xA1\xD8\x52\xF6\x10\x83\xC4\x04\x69\xD2\xA8\x00\x00\x00\xD9\x9C\x02\x80\x00\x00\x00", "xx????xxx?x????xx?xx????xxx????", 27);
            return (uint)Offsets[1];
        }
        public static unsafe uint FindCharacterHiddenRunAlpha(uint CShell)
        {
            int[] Offsets = SequentedOffsetScanner((int)CShell, 0xFFFFFF, @"\x8B\x15\xD4\x52\xF6\x10\xD9\x44\x24\x24\xA1\xD8\x52\xF6\x10\x83\xC4\x04\x69\xD2\xA8\x00\x00\x00\xD9\x9C\x02\x80\x00\x00\x00", "xx????xxx?x????xx?xx????xxx????", 27);
            return (uint)Offsets[1] + 4;
        }
        public static unsafe uint FindMovementWalkRate(uint CShell)
        {
            int[] Offsets = SequentedByteOffsetScanner((int)CShell, 0xFFFFFF, @"\xD9\x5C\x24\x24\x8B\x0D\xD4\x52\xF6\x10\xD9\x44\x24\x24\x8B\x15\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC9\xA8\x00\x00\x00\xD9\x5C\x11\x08", "xxx?xx????xxx?xx????xx?xx????xxx?", 32);
            return (uint)Offsets[0];
        }
And the Templates project:
Code:
//***************************
CShell_Pointer(5)
\xc6\x01\x01\x8b\x15\x00\x00\x00\x00\x8b\x82\x00\x00\x00\x00\x8B
xxxxx????xx????x


//***************************
WeaponMgr(4)
\x8B\x4F\x04\xA1\x00\x00\x00\x00\x85\xC0\x8B\x51\x04\x8B\x6A\x04
xxxx????xxxxxxxx


//***************************
BasicPlayerInfo(2)
\x8B\x0D\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC0\xA8\x00\x00\x00\xD9\x9C\x08\x88\x00\x00\x00\x8B\x4C\x24\x30\x3B\xCB
xx????xx?xx????xxx????xxx?xx


//***************************
0: LeftClickAttributes(26), 1: RightClickAttributes(26), 2: ZoomAttributes(26), 3: ReloadAttributes(26)
\x2B\xC1\xC1\xF8\x02\x3B\xF0\x72\x0C\xFF\x15\xE0\xC4\x4D\x10\x8B\x0D\xA4\xC5\xFC\x10\x8B\x04\xB1\x83\x88\xEC\x0A\x00\x00\x01
xxxx?xxxxxx????xx????xxxxx?????


//***************************
PushToConsole(1)
\x68\xB4\xB5\x5B\x10\x68\x28\x27\x4E\x10\xB9\x28\xB6\x5B\x10\xE8\x07\xE4\xB4\xFF\x68\x40\xA1\x4D\x10\xE8\x4A\xDC\xF8\xFF\x59\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\x04\x68\x3C\x27\x4E\x10\x68\x38\x3B\x5A\x10\xB9\x38\xB6\x5B\x10\xE8\xDA\xE4\xB4\xFF\x68\x50\xA1\x4D\x10\xE8\x1D\xDC\xF8\xFF
x????x????x????x????x????x????xxxxxxxxxxxxxx?x????x????x????x????x????x????


//***************************
0: Unknown(28), 1: ReloadAnimRatio(28), 2: UnKnown(28)
\x8B\x0D\xA4\xC5\xFC\x10\x53\x8D\x3C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x07\xD9\x98\x3C\x0C\x00\x00\x83\xC4\x04
xx????xxxxxx????xxx?xxx?xxxx????xx?


//***************************
ChangeWeaponAnimRatio(34)
\x8B\x0D\xA4\xC5\xFC\x10\x53\x8D\x3C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\x8B\x17\xD9\x44\x24\x14\x8B\x3D\xE0\xC4\x4D\x10\xD9\x9A\x40\x0C\x00\x00\x83\xC4\x04
xx????xxxxxx????xxx?xxxxx?xx????xx????xx?


//***************************
ZoomAction(29)
\x8B\x0D\xA4\xC5\xFC\x10\x55\x8D\x1C\xB1\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x0B\xD9\x9C\xB9\x20\x39\x00\x00
xx????xxxxxx????xxx?xxx?xxxxx????


//***************************
0:Range(25), 1:AiModeRange(25)
\xD9\x44\x24\x14\x8B\x06\xDC\x0D\x50\xFC\x54\x10\x83\xC4\x04\xD9\x5C\x24\x10\xD9\x44\x24\x10\xD9\x98\x0C\x08\x00\x00
xxx?xxxx????xx?xxx?xxx?xx????


//***************************
0: AIModeDamageFactorByDistance(21), 1: DamageFactorByDistance(21), 2: DamageVariantionFactor(21), 3: BoomDuration(21)
\x8D\x34\xA9\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x16\xD9\x9A\x38\x08\x00\x00
xxxxx????xxx?xxx?xxxx????


//***************************
0:AmmoDamage(21), 1: ReloadAnimRatio(21)
\x8D\x34\xA9\xFF\x15\x54\xC4\x4D\x10\xD9\x5C\x24\x14\xD9\x44\x24\x14\x8B\x06\xD9\x98\x1C\x08\x00\x00
xxxxx????xxx?xxx?xxxx????


//***************************
0: C4DefuseTime(27), 1: CharacterHiddenWalkAlpha(27), 2: UnKnown(27)
\x8B\x15\xD4\x52\xF6\x10\xD9\x44\x24\x24\xA1\xD8\x52\xF6\x10\x83\xC4\x04\x69\xD2\xA8\x00\x00\x00\xD9\x9C\x02\x80\x00\x00\x00
xx????xxx?x????xx?xx????xxx????


//***************************
0: MovementWalkRate(32), 1: UnKnown(32), 2: UnKnown(32), 3: UnKnown(32), 4: UnKnwon(32)
\xD9\x5C\x24\x24\x8B\x0D\xD4\x52\xF6\x10\xD9\x44\x24\x24\x8B\x15\xD8\x52\xF6\x10\x83\xC4\x04\x69\xC9\xA8\x00\x00\x00\xD9\x5C\x11\x08
xxx?xx????xxx?xx????xx?xx????xxx?




for Make Looger?
Quote Originally Posted by Astr3Lune View Post
for Make Looger?
Yeah.. But i use them to make self-update hack...
Good Job!
Quote Originally Posted by rabir007 View Post


Yeah.. But i use them to make self-update hack...
Quote Originally Posted by rabir007 View Post


Yeah.. But i use them to make self-update hack...




How To Combine source Logger plz ?
Quote Originally Posted by Astr3Lune View Post
How To Combine source Logger plz ?
I don't think you even know, how to code...
Quote Originally Posted by rabir007 View Post


I don't think you even know, how to code...

how to use Logger soutce code?
Posts 1–8 of 8 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us