private bool HandleCryptDecrypt(IntPtr hKey, IntPtr hHash, bool final, uint dwFlags, IntPtr pbData, IntPtr pdwLength) { var result = (bool)_cryptDecryptDetour.CallOriginal(hKey, hHash, final, dwFlags, pbData, pdwLength); if (!result) { return(false); } var length = Utility.Magic.Read <int>(pdwLength); if (length <= 0) { return(true); } var dataBuffer = new byte[length]; if (pbData == IntPtr.Zero) { return(true); } Marshal.Copy(pbData, dataBuffer, 0, length); if (dataBuffer[0] == 0x78) { dataBuffer = Utility.Decompress(dataBuffer); } return(true); }
private bool HandleVerify(IntPtr hash, IntPtr signature, int siglen, IntPtr pubkey, IntPtr description, int flags) { // we need to call the original, it might do important stuff var ret = _cryptVerifyDetour.CallOriginal(hash, signature, siglen, pubkey, description, flags); return(true); }
private static int ResetHook(IntPtr device, Direct3DAPI.PresentParameters pp) { #if SLIMDX Device = null; #endif return((int)_resetHook.CallOriginal(device, pp)); }
private static int HandleWrite(IntPtr stream, IntPtr buffer, int size) { var ret = (int)_memStreamWriteDetour.CallOriginal(stream, buffer, size); var buf = new byte[ret]; Marshal.Copy(buffer, buf, 0, ret); //Core.Log(LogSeverity.Minor, "write " + size + ":\r\n" + Utility.HexDump(buf)); return(ret); }
private static int EndSceneHook(IntPtr device) { try { if (FrameCount == -1) { if (OnLastFrame != null) { OnLastFrame(null, new EventArgs()); } Device = null; } else { if (Device == null) { Device = Device.FromPointer(device); } if (FrameCount == 0) { if (OnFirstFrame != null) { OnFirstFrame(null, new EventArgs()); } } if (!Rendering.IsInitialized) { Rendering.Initialize(device); } Rendering.Pulse(); PrepareRenderState(); CallbackManager.Invoke(); // TEMP SOLUTION // TODO: FIX THIS IceFlake.Client.Scripts.ScriptManager.Pulse(); } } catch (Exception e) { Log.WriteLine("Error: " + e.ToLongString()); } if (FrameCount != -1) { FrameCount += 1; } return((int)_endSceneHook.CallOriginal(device)); }
private static int HandleRead(IntPtr stream, IntPtr buffer, int size) { var ret = (int)_memStreamReadDetour.CallOriginal(stream, buffer, size); var buf = new byte[ret]; Marshal.Copy(buffer, buf, 0, ret); var hints = DataHints(buf); Core.Log(LogSeverity.Minor, "read " + size + ", got " + ret + ":\r\n" + Utility.HexDump(buf) + (hints.Length > 0 ? "\r\n" + hints : "")); return(ret); }
private bool HandleCryptEncrypt(IntPtr hKey, IntPtr hHash, bool final, uint dwFlags, IntPtr pbData, IntPtr pdwLength, uint dwBufLen) { var length = Utility.Magic.Read <int>(pdwLength); if (length > 0 && pbData != IntPtr.Zero) { var dataBuffer = new byte[length]; Marshal.Copy(pbData, dataBuffer, 0, length); } return((bool)_cryptEncryptDetour.CallOriginal(hKey, hHash, final, dwFlags, pbData, pdwLength, dwBufLen)); }
private static int EndSceneHook(IntPtr device) { try { if (FrameCount == -1) { Log.WriteLine("[D] OnLastFrame"); if (OnLastFrame != null) { OnLastFrame(null, new EventArgs()); } #if SLIMDX Device = null; #endif } else { #if SLIMDX if (Device == null) { Device = Device.FromPointer(device); } #endif if (FrameCount == 0) { if (OnFirstFrame != null) { OnFirstFrame(null, new EventArgs()); } } PrepareRenderState(); foreach (IPulsable pulsable in _pulsables) { pulsable.Direct3D_EndScene(); } } } catch (Exception e) { Log.LogException(e); } if (FrameCount != -1) { FrameCount += 1; } return((int)_endSceneHook.CallOriginal(device)); }
private static int Callback(uint ebp8, uint ebpC, uint eax, uint ebp) { FrameXMLEvents eventCode = (FrameXMLEvents)ebp8; if (_eventHandler.ContainsKey(eventCode)) { uint ArgsFormatPtr = ebpC; string ArgsFormat = GeneralHelper.Memory.ReadString(ArgsFormatPtr, new UTF8Encoding()); HandleEvent(eventCode, ArgsFormat, eax); } return((int)_WoWEventInternalHook.CallOriginal(ebp8, ebpC, eax, ebp)); }
private int HandleClickToMove(IntPtr thisPointer, int clickType, ref ulong interactGuid, ref Location clickLocation, float precision) { if (Teleporter.Destination != null) { return(0); } if (clickType == 4) { Teleporter.SetDestination(clickLocation); return(0); } return((int)_ctmDetour.CallOriginal(thisPointer, clickType, interactGuid, clickLocation, precision)); }
private static int EndSceneHook(IntPtr device) { lock (_frameLock) { Manager.Pulse(); Events.Pulse(); if (OnFrame != null) { OnFrame(null, new EventArgs()); } } return((int)_endSceneHook.CallOriginal(device)); }
private static uint HandleSendMovementPacket(IntPtr instance, uint timestamp, uint opcode, uint zero, uint zero2, uint zero3, uint zero4, uint ff) { var result = (uint) _sendMovementPacketDetour.CallOriginal(new object[] { instance, timestamp + _timeAdvance, opcode, zero, zero2, zero3, zero4, ff }); if (instance == Manager.LocalPlayer.Pointer) { Manager.SetHeartbeatTime(timestamp + 500); } return(result); }
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 int EndSceneHook(IntPtr parDevice) { if (FirstRun == 1) { if (ObjectManager.EnumObjects()) { FirstRun = 0; Lua.Welcome(); } } // run our delegate _Run(ref frameCounter); // reset the framecounter frameCounter = frameCounter % 180 + 1; if (frameCounter == 1) { Memory.Reader.Write <int>((IntPtr)Offsets.Functions.LastHardwareAction, Environment.TickCount); } return((int)_endSceneHook.CallOriginal(parDevice)); }
private static int HandleVictimCall(IntPtr luaState) { int top = LuaInterface.GetTop(luaState); if (top > 0) { var args = new List <string>(top); for (int i = 1; i <= top; i++) { args.Add(LuaInterface.StackObjectToString(luaState, i)); } LuaInterface.Pop(luaState, top); HandleEvent(args); } else { // legal call return((int)_eventDetour.CallOriginal(luaState)); } return(0); }
private int HookedPCall(IntPtr pLuaState, int nargs, int nresults, int errfunc) { if (globalLuaState == IntPtr.Zero) { ArcheAPI.Instance.Lua.GetGlobal(pLuaState, "X2Chat"); if (!ArcheAPI.Instance.Lua.IsNil(pLuaState, -1)) { globalLuaState = pLuaState; } ArcheAPI.Instance.Lua.Pop(pLuaState, 1); } if (ArcheAPI.Instance.Lua.auctionLuaState == IntPtr.Zero) { ArcheAPI.Instance.Lua.GetGlobal(pLuaState, "X2Auction"); if (!ArcheAPI.Instance.Lua.IsNil(pLuaState, -1)) { ArcheAPI.Instance.Lua.auctionLuaState = pLuaState; } ArcheAPI.Instance.Lua.Pop(pLuaState, 1); } if (pLuaState == globalLuaState) { lock (luaQueue) { foreach (var action in luaQueue) { action(); } luaQueue.Clear(); } } return((int)oPCall.CallOriginal(pLuaState, nargs, nresults, errfunc)); // return ArcheAPI.Instance.Native.Lua.PCall(pLuaState, nargs, nresults, errfunc); }
private static int EndSceneHook(IntPtr device) { lock (_frameLock) { if (!Rendering.IsInitialized) { Rendering.Initialize(device); //Camera.ScreenHeight = WoWScript.Execute<int>("GetScreenHeight()", 0); //Camera.ScreenWidth = WoWScript.Execute<int>("GetScreenWidth()", 0); } Manager.Pulse(); Events.Pulse(); Rendering.Pulse(); if (OnFrame != null) { OnFrame(null, new EventArgs()); } } return((int)_endSceneHook.CallOriginal(device)); }
private IntPtr HandleGetModuleCode(IntPtr importer, string fullname, IntPtr ppackage, IntPtr pmodpath) { var ret = (IntPtr)_getModuleCodeDetour.CallOriginal(importer, fullname, ppackage, pmodpath); return(ret); }
private static void HandleSendSplineMoveDone(IntPtr instance, uint timestamp, uint unknown) { _sendSplineMoveDoneDetour.CallOriginal(new object[] { instance, timestamp + _timeAdvance, unknown }); }
private static int ResetHook(IntPtr device, PresentParameters pp) { Device = null; return((int)_resetHook.CallOriginal(device, pp)); }
private int Unregister() { ObjectManager.Instance.DcKillswitch(); return((int)_unloadWorldHook.CallOriginal()); }
private static int ResetHook(IntPtr device, Direct3DAPI.PresentParameters pp) { return((int)_resetHook.CallOriginal(device, pp)); }
private int Callback(IntPtr swapChainPtr, int syncInterval, PresentFlags flags) { RaiseEvent(); return((int)_presentHook.CallOriginal(swapChainPtr, syncInterval, flags)); }
/* private int ResetHook(IntPtr device, Required.PresentParameters pp) * { * base.ResetDrawingObjects(); * return (int)_resetHook.CallOriginal(device, pp); * }*/ private int Callback(IntPtr device) { DevicePointer = device; RaiseEvent(); return((int)_endSceneHook.CallOriginal(device)); }
private int HandleGetModuleInfo(IntPtr importer, string module) { int ret = (int)_getModuleInfoDetour.CallOriginal(importer, module); return(ret); }