Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class ClientServices
- {
- public static uint cave;
- public static void Send2(byte[] bytes)
- {
- cave = Globals.Magic.AllocateMemory(0x100);
- uint caveDataStore = Globals.Magic.AllocateMemory(0x18);
- uint cavePacketData = Globals.Magic.AllocateMemory(bytes.Length);
- DataStore dataStore = new DataStore();
- dataStore.VTable = Offsets.CDataStore.DataStore;
- dataStore.Buffer = cavePacketData;
- dataStore.BufferType = 0x100;
- dataStore.BufferLength = (uint) bytes.Length;
- Globals.Magic.WriteObject(caveDataStore, dataStore, typeof(DataStore));
- Globals.Magic.WriteBytes(cavePacketData, bytes);
- Globals.Magic.Asm.AddLine("push {0}", caveDataStore);
- Globals.Magic.Asm.AddLine("call {0}", Offsets.ClientServices.Send2);
- Globals.Magic.Asm.AddLine("add esp, 4");
- Globals.Magic.Asm.AddLine("retn");
- bool detoured = NetClient.Send2.IsDetoured;
- if (detoured)
- NetClient.Send2.RemoveDetour();
- Globals.Magic.Asm.InjectAndExecute(cave);
- Globals.Magic.Asm.Clear();
- Globals.Magic.FreeMemory(cave);
- Globals.Magic.FreeMemory(caveDataStore);
- Globals.Magic.FreeMemory(cavePacketData);
- if (detoured)
- NetClient.Send2.Detour();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement