Pastes:96323  Views:1815543 

Languages:

   ASP
   C#
   C++
   HTML
   Java
   PHP
   VB.NET
   Visual Basic 6

more languages available...




3D Game Programming

 

 

 

 

 

 

Here's the requested code from the pastebin:

Wrap Lines   Use Line Numbers
    public static void Interact(IntPtr hProcess, uint obj)
    {
      //this is where we get our pointer as of WoW 2.4.2
      s_curMgrPointer = Memory.ReadUInt(hProcess, Memory.ReadUInt(hProcess, 0xD495B0) + 0x2218);
      //read interact from object vtable
      uint interact = Memory.ReadUInt(hProcess, (Memory.ReadUInt(hProcess, obj) + (34 * 4)));
      //allocate memory
      uint CodeCave = Memory.AllocateMemory(hProcess, 0x1000);
      byte[] bInject = { 0x8B, 0x15, 0xEF, 0xBE, 0xAD, 0xDE, 0x64, 0xA1, 0x2C, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x83, 0xC0, 0x10, 0x89, 0x10, 0x8B, 0x0D, 0xEF, 0xBE, 0xAD, 0xDE, 0xE8, 0, 0, 0, 0, 0xC3};
      //inject memory
      Memory.WriteMemory(hProcess, CodeCave, bInject);
      //patch relatives
      Memory.WriteMemory(hProcess, (CodeCave + 2), s_curMgrPointer);
      Memory.WriteMemory(hProcess, (CodeCave + 21), (CodeCave + 0x100));
      Memory.WriteMemory(hProcess, (CodeCave + 26), (interact - (CodeCave + 30)));
      //write object with which we wish to interact to memory
      Memory.WriteMemory(hProcess, (CodeCave + 0x100), obj);
      //Execute injected code
      IntPtr hThread = Memory.CreateRemoteThread(hProcess, CodeCave, 0);
      //wait for code to execute
      Memory.WaitForSingleObject(hThread);
      //uint ec = Memory.GetExitCodeThread(hThread);
      //clean up
      Memory.CloseHandle(hThread);
      Memory.VirtualFreeEx(hProcess, CodeCave, 0x1000, Memory.MEM_DECOMMIT);
    }
Syntax Highlighting:  



Copyright 2007 - NoMorePasting.com