Résolu Comment utiliser BO2RPC (C#)

Statut
N'est pas ouverte pour d'autres réponses.

Krytøx | RG

Premium
Inscription
23 Mai 2012
Messages
1 930
Réactions
850
Points
18 063
Bonsoir à tous !

Voilà jusqu'à présent j'ai fais un petit tool sur BO2 1.16, entre temps j'ai lâcher un peu l'affaire, après je me suis concentrer sur le PSN Account Generator ( voir dans ma signature ), j'aimerais reprendre un peu mon tool BO2, et je souhaiterais inclure un RPC, j'ai trouver un code sur NGU :

Code:
public static class RPC
    {
        private static uint function_address = 0x7AA1E0;
        public static uint Call(uint func_address, params object[] parameters)
        {
            int length = parameters.Length;
            for (uint i = 0; i < length; i++)
            {
                if (parameters[i] is int)
                {
                    byte[] array = BitConverter.GetBytes((int)parameters[i]);
                    Array.Reverse(array);
                    SetMemory(0x10050008 + (i * 4), array);
                }
                else if (parameters[i] is uint)
                {
                    byte[] buffer2 = BitConverter.GetBytes((uint)parameters[i]);
                    Array.Reverse(buffer2);
                    SetMemory(0x10050008 + (i * 4), buffer2);
                }
                else if (parameters[i] is string)
                {
                    byte[] buffer3 = Encoding.UTF8.GetBytes(Convert.ToString(parameters[i]) + "\0");
                    SetMemory(0x1005002c + (i * 0x150), buffer3);
                    uint num3 = 0x1005002c + (i * 0x150);
                    byte[] buffer4 = BitConverter.GetBytes(num3);
                    Array.Reverse(buffer4);
                    SetMemory(0x10050008 + (i * 4), buffer4);
                }
            }
            for (int j = 9 - length; j <= 9; j++)
            {
                SetMemory((uint)(0x10050008 + (j * 4)), new byte[4]);
            }
            byte[] bytes = BitConverter.GetBytes(func_address);
            Array.Reverse(bytes);
            SetMemory(0x10050000, bytes);
            System.Threading.Thread.Sleep(20);
            byte[] GetX = new byte[4];
            byte[] memory = GetMemory(0x10050004, 4);
            Array.Reverse(memory);
            return BitConverter.ToUInt32(memory, 0);
        }

        public static void Enable_RPC()
        {
            byte[] CheckRPC = new byte[1];
            if (CheckRPC[0] == 0x4e)
            {

            }
            else
            {
                SetMemory(function_address, new byte[] { 0x4e, 0x80, 0, 0x20 });
                byte[] memory = new byte[] {
                0x7c, 8, 2, 0xa6, 0xf8, 1, 0, 0xd0, 0xdb, 0x21, 0, 0x88, 0xdb, 0x41, 0, 0x90,
                0xdb, 0x61, 0, 0x98, 0xdb, 0x81, 0, 160, 0xdb, 0xa1, 0, 0xa8, 0xdb, 0xc1, 0, 0xb0,
                0xdb, 0xe1, 0, 0xb8, 0xfb, 0xa1, 0, 0x70, 0xfb, 0xc1, 0, 120, 0xfb, 0xe1, 0, 0x80,
                0x3d, 0x60, 0x10, 5, 0x80, 0x6b, 0, 0, 0x2c, 3, 0, 0, 0x41, 130, 0, 60,
                0x80, 0x6b, 0, 8, 0x80, 0x8b, 0, 12, 0x80, 0xab, 0, 0x10, 0x80, 0xcb, 0, 20,
                0x80, 0xeb, 0, 0x18, 0x81, 11, 0, 0x1c, 0x81, 0x2b, 0, 0x20, 0x81, 0x4b, 0, 0x24,
                0x81, 0x6b, 0, 40, 0x48, 0, 0, 0x4d, 60, 0x80, 0x10, 5, 0x80, 100, 0, 4,
                0x38, 160, 0, 0, 0x90, 0xa4, 0, 0, 0xe8, 1, 0, 0xd0, 0x7c, 8, 3, 0xa6,
                0xcb, 0x21, 0, 0x88, 0xcb, 0x41, 0, 0x90, 0xcb, 0x61, 0, 0x98, 0xcb, 0x81, 0, 160,
                0xcb, 0xa1, 0, 0xa8, 0xcb, 0xc1, 0, 0xb0, 0xcb, 0xe1, 0, 0xb8, 0xeb, 0xa1, 0, 0x70,
                0xeb, 0xc1, 0, 120, 0xeb, 0xe1, 0, 0x80, 0x38, 0x21, 0, 0xc0, 0x4e, 0x80, 0, 0x20,
                0x3d, 0x80, 0x10, 5, 0x81, 140, 0, 0, 0x7c, 8, 2, 0xa6, 0xf8, 1, 0, 0x20,
                0x7d, 0x89, 3, 0xa6, 0x4e, 0x80, 4, 0x21, 0xe8, 1, 0, 0x20, 0x7c, 8, 3, 0xa6,
                0x4e, 0x80, 0, 0x20, 0x60, 0, 0, 0 };

                SetMemory(function_address + 4, memory);
                SetMemory(0x10050000, new byte[0xaac]);
                SetMemory(function_address, new byte[] { 0xf8, 0x21, 0xff, 0x41 });
             }
        }
        public static byte[] GetMemory(uint address, int length)
        {
            byte[] buffer = new byte[length];
            PS3.GetMemory(address, length);
            return buffer;
        }
        public static void SetMemory(uint Address, byte[] Bytes)
        {
            PS3.SetMemory(Address, Bytes);
        }
    }

Il ne m'affiche aucune erreur sur celui ci mais je ne sais pas comment l'utiliser exactement, c'est la première fois que j'utilise un RPC si quelqu'un peux m'éclairer ça serait cool :p

PS : j'ai bien télécharger la DLL : BO2RPC
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut