// https://prtsc.me/i/d68ef574.png
        // https://prtsc.me/i/f054717d.png
        // [8bytes] movss xmm0,[edi+148] <--- BA X X X X 66 0F 6E
        // [3bytes] xorps xmm7, xmm7 <--- C2 90 90

        public static bool Process(ref byte[] buffer)
        {
            var index = BinScanner.FindPattern(buffer, "F3 0F 10 87 48 01 00 00 0F 57 FF");

            if (index == 0)
            {
                return(false);
            }

            var valueBin = BitConverter.GetBytes(89f);

            buffer[index + 0]  = 0xBA;
            buffer[index + 1]  = valueBin[0];
            buffer[index + 2]  = valueBin[1];
            buffer[index + 3]  = valueBin[2];
            buffer[index + 4]  = valueBin[3];
            buffer[index + 5]  = 0x66;
            buffer[index + 6]  = 0x0F;
            buffer[index + 7]  = 0x6E;
            buffer[index + 8]  = 0xC2;
            buffer[index + 9]  = 0x90;
            buffer[index + 10] = 0x90;

            return(true);
        }
Beispiel #2
0
        // [6bytes] eax,[esi+00000228]
        // [5bytes] xmm0,[eax+28]
        // [2bytes] jmp
        // [8bytes] movss xmm0,[?]
        // [3bytes] comiss xmm1,xmm0 <--- NOP

        public static bool Process(ref byte[] buffer)
        {
            var index = BinScanner.FindPattern(buffer, "8B 86 28 02 00 00 F3 0F 10 40 28 EB 08 F3 0F 10 05 ? ? ? ? 0F 2F C8");

            if (index == 0)
            {
                return(false);
            }

            buffer[index + 21] = 0x90;
            buffer[index + 22] = 0x90;
            buffer[index + 23] = 0x90;

            return(true);
        }
        // #1
        // [2bytes] ja
        // [5bytes] movss xmm0,[eax+24]
        // [4bytes] maxss xmm0,xmm1 <--- MOVSS

        // #2
        // [6bytes] mov eax,[esi+00000228]
        // [5bytes] movss xmm0,[eax+24]
        // [4bytes] maxss xmm0,xmm1 <--- MOVSS

        public static bool Process(ref byte[] buffer)
        {
            var index1 = BinScanner.FindPattern(buffer, "77 09 F3 0F 10 40 24 F3 0F 5F C1");

            if (index1 == 0)
            {
                return(false);
            }

            var index2 = BinScanner.FindPattern(buffer, "8B 86 28 02 00 00 F3 0F 10 40 24 F3 0F 5F C1");

            if (index2 == 0)
            {
                return(false);
            }

            buffer[index1 + 9]  = 0x10;
            buffer[index2 + 13] = 0x10;

            return(true);
        }
        // [2bytes] mov ecx,esi
        // [7bytes] mov [esi+48],0
        // [6bytes] mov eax,[edi+158] <--- B8 X X X X 90

        public static bool Process(ref byte[] buffer)
        {
            var index = BinScanner.FindPattern(buffer, "8B CE C7 46 48 00 00 00 00 8B 87 58 01 00 00");

            if (index == 0)
            {
                return(false);
            }

            var textFrm = new TextForm();

            textFrm.titleLbl.Text = $"FOV Value:{Environment.NewLine}(45 - default)";
            textFrm.ShowDialog();

            if (!textFrm.Success)
            {
                return(false);
            }

            var valueStr = textFrm.valueLbl.Text.Trim();

            if (!float.TryParse(valueStr, out var value))
            {
                return(false);
            }

            var valueBin = BitConverter.GetBytes(value);

            buffer[index + 9]  = 0xB8;
            buffer[index + 10] = valueBin[0];
            buffer[index + 11] = valueBin[1];
            buffer[index + 12] = valueBin[2];
            buffer[index + 13] = valueBin[3];
            buffer[index + 14] = 0x90;

            return(true);
        }
Beispiel #5
0
        // #1
        // [8bytes] movss [esi+0000012C],xmm2 <--- NOP
        // [1byte] ja ..

        // #2
        // [8bytes] movss [esi+00000138],xmm0 <--- NOP
        // [2bytes] jbe ...

        public static bool Process(ref byte[] buffer)
        {
            var index1 = BinScanner.FindPattern(buffer, "F3 0F 11 96 2C 01 00 00 77");

            if (index1 == 0)
            {
                return(false);
            }

            var index2 = BinScanner.FindPattern(buffer, "F3 0F 11 86 34 01 00 00 0F 86");

            if (index2 == 0)
            {
                return(false);
            }

            buffer[index1 + 0] = 0x90;
            buffer[index1 + 1] = 0x90;
            buffer[index1 + 2] = 0x90;
            buffer[index1 + 3] = 0x90;
            buffer[index1 + 4] = 0x90;
            buffer[index1 + 5] = 0x90;
            buffer[index1 + 6] = 0x90;
            buffer[index1 + 7] = 0x90;

            buffer[index2 + 0] = 0x90;
            buffer[index2 + 1] = 0x90;
            buffer[index2 + 2] = 0x90;
            buffer[index2 + 3] = 0x90;
            buffer[index2 + 4] = 0x90;
            buffer[index2 + 5] = 0x90;
            buffer[index2 + 6] = 0x90;
            buffer[index2 + 7] = 0x90;

            return(true);
        }