Esempio n. 1
0
        /// <summary>
        ///     Detour for Module32Next
        /// </summary>
        internal static bool Module32NextDetour(IntPtr snapshot, ref WinImports.MODULEENTRY32 module)
        {
            _module32NextHook.Remove();
            var ret = WinImports.Module32Next(snapshot, ref module);

            _module32NextHook.Apply();
            while (!modules.Contains(module.szModule.ToLower()) && ret)
            {
                _module32NextHook.Remove();
                ret = WinImports.Module32Next(snapshot, ref module);
                _module32NextHook.Apply();
            }
            if (!ret)
            {
                if (!modules.Contains(module.szModule.ToLower()))
                {
                    module = new WinImports.MODULEENTRY32 {
                        dwSize = 548
                    };
                }
                WinImports.SetLastError(18);
            }


            return(ret);
        }
 internal static void Remove()
 {
     if (_OnRightClickUnitHook != null && _OnRightClickUnitHook.IsApplied)
     {
         _OnRightClickUnitHook.Remove();
     }
 }
Esempio n. 3
0
        /// <summary>
        ///     Detour for Module32Next
        /// </summary>
        internal bool Module32NextDetour(IntPtr snapshot, ref WinImports.MODULEENTRY32 module)
        {
            _module32NextHook.Remove();
            var ret = WinImports.Module32Next(snapshot, ref module);

            _module32NextHook.Apply();
            while (!modules.Contains(module.szModule.ToLower()) && ret)
            {
                if (!_protectedItems.Contains(module.szModule.ToLower()))
                {
                    _protectedItems.Add(module.szModule.ToLower());
                    File.WriteAllText("C:\\Logs\\myDll.txt", _protectedItems.Aggregate("", (s, s1) => s + "\r\n" + s1));
                }
                _module32NextHook.Remove();
                ret = WinImports.Module32Next(snapshot, ref module);
                _module32NextHook.Apply();
            }
            if (!ret)
            {
                if (!modules.Contains(module.szModule.ToLower()))
                {
                    module = new WinImports.MODULEENTRY32 {
                        dwSize = 548
                    }
                }
                ;
                WinImports.SetLastError(18);
            }
            return(ret);
        }
Esempio n. 4
0
        private static void NetClientSendDetour(IntPtr parClientConn, int parDataStore)
        {
            Memory.Reader.Write <int>((IntPtr)parDataStore, 0x7FF9E4);

            ////Console.WriteLine();
            DataStoreStruct ds = Memory.Reader.Read <DataStoreStruct>((IntPtr)parDataStore);
            ////Console.WriteLine("vTable: " + ds.vTable.ToString("X"));
            ////Console.WriteLine("Buffer: " + ds.buffer.ToString("X"));
            ////Console.WriteLine("Base: " + ds._base);
            ////Console.WriteLine("Size: " + ds.size);
            ////Console.WriteLine("Read: " + ds.read);

            int    opCode     = Memory.Reader.Read <int>((IntPtr)ds.buffer);
            string opCodeName = Enum.GetName(typeof(Offsets.OpCodes), opCode);

            //Console.WriteLine("OpCode: " + opCodeName);

            //Console.WriteLine();


            //int basePtr = Memory.Reader.Read<int>((IntPtr)parDataStore + 4);
            //int opCode = Memory.Reader.Read<int>((IntPtr)basePtr);
            //string opCodeName = Enum.GetName(typeof(Offsets.OpCodes), opCode);

            ////Console.WriteLine(opCodeName
            //);



            _NetClientSend.Remove();
            NetClientSendDelegate(parClientConn, parDataStore);
            _NetClientSend.Apply();
        }
Esempio n. 5
0
        /// <summary>
        ///     Detour for Module32First
        /// </summary>
        internal static bool Module32FirstDetour(IntPtr snapshot, ref WinImports.MODULEENTRY32 module)
        {
            _module32FirstHook.Remove();
            var ret = WinImports.Module32First(snapshot, ref module);

            _module32FirstHook.Apply();
            return(ret);
        }
Esempio n. 6
0
 private void checkBox1_CheckedChanged(object sender, EventArgs e)
 {
     if (checkBox1.Checked)
     {
         _ctmDetour.Apply();
     }
     else
     {
         _ctmDetour.Remove();
     }
 }
Esempio n. 7
0
 public static void Disable()
 {
     if (_memStreamReadDetour != null)
     {
         _memStreamReadDetour.Remove();
     }
     if (_memStreamWriteDetour != null)
     {
         _memStreamWriteDetour.Remove();
     }
 }
Esempio n. 8
0
        private static IntPtr IsSceneEndHook(IntPtr device)
        {
            //[[ESI+38A8]]+A8
            var ptr1 = device.Add((int)funcs.EndScenePtr1).ReadAs <IntPtr>();
            var ptr2 = ptr1.ReadAs <IntPtr>();
            var ptr3 = ptr2.Add((int)funcs.EndScenePtr2).ReadAs <IntPtr>();

            EndScenePtr = ptr3;

            _isSceneEndHook.Remove();
            return(_isSceneEndDelegate(device));
        }
Esempio n. 9
0
        private IntPtr IsSceneEndHook(IntPtr device)
        {
            //[[ESI+38A8]]+A8
            var ptr1 = Memory.Reader.Read <IntPtr>(IntPtr.Add(device, 0x38a8));
            var ptr2 = Memory.Reader.Read <IntPtr>(ptr1);
            var ptr3 = Memory.Reader.Read <IntPtr>(IntPtr.Add(ptr2, 0xa8));

            EndScenePtr = ptr3;

            _isSceneEndHook.Remove();
            return(_isSceneEndDelegate(device));
        }
Esempio n. 10
0
        private static int EndSceneHook(IntPtr parDevice)
        {
            //Console.WriteLine("EndScene" + frameCounter);
            //_endSceneHook.Remove();
            //return _endSceneDelegate(parDevice);

            if (!RemoveHook)
            {
                IsIngame = ObjectManager.EnumObjects();
                if (EndSceneExecuteOnce.Count > 0)
                {
                    ((Run)EndSceneExecuteOnce.Dequeue())(ref frameCounter, IsIngame);
                }
                else if (IsIngame && EndSceneExecuteOnceIngame.Count > 0)
                {
                    ((Run)EndSceneExecuteOnceIngame.Dequeue())(ref frameCounter, IsIngame);
                }
                else
                {
                    _Run(ref frameCounter, IsIngame);
                }
            }
            else
            {
                _endSceneHook.Remove();
                return(_endSceneDelegate(parDevice));
            }
            frameCounter = frameCounter % 1800 + 1;
            if (LastFrameTick != 0)
            {
                TimeBetweenFrame = Environment.TickCount - LastFrameTick;
                if (TimeBetweenFrame < 15)
                {
                    WaitTilNextFrame = Environment.TickCount + (15 - TimeBetweenFrame);
                    while (Environment.TickCount < WaitTilNextFrame)
                    {
                    }
                }
            }
            LastFrameTick = Environment.TickCount;
            return((int)_endSceneHook.CallOriginal(parDevice));
        }
Esempio n. 11
0
 private IntPtr IsSceneEndHook(IntPtr unk)
 {
     EndSceneVTablePtr = unk.Add(0x38A8).ReadAs <IntPtr>().ReadAs <IntPtr>().Add(0xa8);
     _isSceneEndHook.Remove();
     return(_iSceneEndDelegate(unk));
 }