/// <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(); } }
/// <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); }
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(); }
/// <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); }
private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) { _ctmDetour.Apply(); } else { _ctmDetour.Remove(); } }
public static void Disable() { if (_memStreamReadDetour != null) { _memStreamReadDetour.Remove(); } if (_memStreamWriteDetour != null) { _memStreamWriteDetour.Remove(); } }
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)); }
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)); }
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)); }
private IntPtr IsSceneEndHook(IntPtr unk) { EndSceneVTablePtr = unk.Add(0x38A8).ReadAs <IntPtr>().ReadAs <IntPtr>().Add(0xa8); _isSceneEndHook.Remove(); return(_iSceneEndDelegate(unk)); }