Patch2

MTKCLient
 avatar
unknown
csharp
a year ago
3.7 kB
4
Indexable
        public static byte[] Patch2(byte[] daBuff)
        {
            byte[] array = new byte[daBuff.Length];
            Array.Copy(daBuff, array, array.Length);
            using (MemoryStream memoryStream = new MemoryStream(array))
            {
                int? num = FindBinary(array, new byte[8] { 1, 35, 3, 96, 0, 32, 112, 71 });
                if (num.HasValue)
                {
                    memoryStream.Seek(num.Value, SeekOrigin.Begin);
                    memoryStream.Write(new byte[2] { 0, 35 });
                }
                int? num2 = FindBinary(array, new byte[4] { 4, 0, 7, 192 });
                if (!num2.HasValue)
                {
                    num2 = FindBinary(array, new byte[8] { 79, 240, 4, 9, 204, 242, 7, 9 });
                    if (!num2.HasValue)
                    {
                        num2 = FindBinary(
                            array,
                            new byte[14] { 79, 240, 4, 9, 50, 70, 1, 152, 3, 153, 204, 242, 7, 9 }
                        );
                        if (num2.HasValue)
                        {
                            memoryStream.Seek(num2.Value, SeekOrigin.Begin);
                            memoryStream.Write(
                                new byte[14]
                                {
                                    79,
                                    240,
                                    0,
                                    9,
                                    50,
                                    70,
                                    1,
                                    152,
                                    3,
                                    153,
                                    79,
                                    240,
                                    0,
                                    9
                                }
                            );
                        }
                    }
                    else
                    {
                        memoryStream.Seek(num2.Value, SeekOrigin.Begin);
                        memoryStream.Write(new byte[8] { 79, 240, 0, 9, 79, 240, 0, 9 });
                    }
                }
                else
                {
                    memoryStream.Seek(num2.Value, SeekOrigin.Begin);
                    memoryStream.Write(new byte[4]);
                }
                int num3 = 0;
                while (num3 != -1)
                {
                    num3 = array.Find(new byte[8] { 55, 181, 0, 35, 4, 70, 2, 168 });
                    if (num3 != -1)
                    {
                        memoryStream.Seek(num3, SeekOrigin.Begin);
                        memoryStream.Write(new byte[8] { 55, 181, 0, 32, 3, 176, 48, 189 });
                        continue;
                    }
                    num3 = array.Find(new byte[6] { 12, 35, 204, 242, 2, 3 });
                    if (num3 != -1)
                    {
                        memoryStream.Seek(num3, SeekOrigin.Begin);
                        memoryStream.Write(new byte[6] { 0, 35, 0, 35, 0, 35 });
                        int num4 = array.Find(new byte[6] { 42, 35, 204, 242, 2, 3 });
                        if (num4 != -1)
                        {
                            memoryStream.Seek(num4, SeekOrigin.Begin);
                            memoryStream.Write(new byte[6] { 0, 35, 0, 35, 0, 35 });
                        }
                    }
                }
                return memoryStream.ToArray();
            }
        }
Editor is loading...