public override void OnGameAttached(GameState state) { base.OnGameAttached(state); _cmdHandler.Init(state); ProcessModuleWow64Safe server = state.GetModule("server.dll"); var scanner = new SignatureScanner(state.GameProcess, server.BaseAddress, server.ModuleMemorySize); _getGlobalNameFuncPtr = scanner.Scan(new SigScanTarget("55 8B EC 51 FF 75 ?? 8D 45 ??")); _roHandler = new RemoteOpsHandler(state.GameProcess); if (GameMemory.GetBaseEntityMemberOffset("m_iHealth", state.GameProcess, scanner, out _baseEntityHealthOffset)) { Debug.WriteLine("CBaseEntity::m_iHealth offset = 0x" + _baseEntityHealthOffset.ToString("X")); } if (server.ModuleMemorySize < _serverModernModuleSize) { _ebEndCommand.BValue = true; // for mod, eb's final map name is different if (server.ModuleMemorySize <= _serverModModuleSize) { _ebEndMap = "bm_c3a2h"; } } }
public override void OnGameAttached(GameState state) { ProcessModuleWow64Safe server = state.GetModule("server.dll"); var scanner = new SignatureScanner(state.GameProcess, server.BaseAddress, server.ModuleMemorySize); if (GameMemory.GetBaseEntityMemberOffset("m_iHealth", state.GameProcess, scanner, out _baseEntityHealthOffset)) { Debug.WriteLine("CBaseEntity::m_iHealth offset = 0x" + _baseEntityHealthOffset.ToString("X")); } }
public override void OnGameAttached(GameState state) { ProcessModuleWow64Safe server = state.GetModule("server.dll"); var scanner = new SignatureScanner(state.GameProcess, server.BaseAddress, server.ModuleMemorySize); if (GameMemory.GetBaseEntityMemberOffset("m_bSuppressingCrosshair", state.GameProcess, scanner, out _playerSuppressingCrosshairOffset)) { Debug.WriteLine("CPortalPlayer::m_bSuppressingCrosshair offset = 0x" + _playerSuppressingCrosshairOffset.ToString("X")); } }
public override void OnGameAttached(GameState state) { ProcessModuleWow64Safe server = state.GetModule("server.dll"); var scanner = new SignatureScanner(state.GameProcess, server.BaseAddress, server.ModuleMemorySize); if (GameMemory.GetBaseEntityMemberOffset("m_flLaggedMovementValue", state.GameProcess, scanner, out _laggedMovementOffset)) { Debug.WriteLine("CBasePlayer::m_flLaggedMovementValue offset = 0x" + _laggedMovementOffset.ToString("X")); } }
public override void OnGameAttached(GameState state) { ProcessModuleWow64Safe server = state.GameProcess.ModulesWow64Safe().FirstOrDefault(x => x.ModuleName.ToLower() == "server.dll"); Trace.Assert(server != null); var scanner = new SignatureScanner(state.GameProcess, server.BaseAddress, server.ModuleMemorySize); if (GameMemory.GetBaseEntityMemberOffset("m_iHealth", state.GameProcess, scanner, out _baseEntityHealthOffset)) { Debug.WriteLine("CBaseEntity::m_iHealth offset = 0x" + _baseEntityHealthOffset.ToString("X")); } }
public override void OnGameAttached(GameState state) { ProcessModule server = state.GameProcess.Modules.Cast <ProcessModule>().FirstOrDefault(x => x.ModuleName.ToLower() == "server.dll"); Trace.Assert(server != null); var scanner = new SignatureScanner(state.GameProcess, server.BaseAddress, server.ModuleMemorySize); if (GameMemory.GetBaseEntityMemberOffset("m_flLaggedMovementValue", state.GameProcess, scanner, out _basePlayerLaggedMovementOffset)) { Debug.WriteLine("CBasePlayer::m_flLaggedMovementValue offset = 0x" + _basePlayerLaggedMovementOffset.ToString("X")); } }
public override void OnGameAttached(GameState state) { _ccHandler.Init(state); server = state.GetModule("server.dll"); client = state.GetModule("client.dll"); engine = state.GetModule("engine.dll"); var serverScanner = new SignatureScanner(state.GameProcess, server.BaseAddress, server.ModuleMemorySize); if (GameMemory.GetBaseEntityMemberOffset("m_angAbsRotation", state.GameProcess, serverScanner, out _baseEntityAngleOffset)) { Debug.WriteLine("CBaseEntity::m_angAbsRotation offset = 0x" + _baseEntityAngleOffset.ToString("X")); } if (GameMemory.GetBaseEntityMemberOffset("m_vecAngVelocity", state.GameProcess, serverScanner, out _baseEntityAngleVelOffset)) { Debug.WriteLine("CBaseEntity::m_vecAngVelocity offset = 0x" + _baseEntityAngleVelOffset.ToString("X")); } SigScanTarget _latest_Client_Trg = new SigScanTarget(0, Encoding.ASCII.GetBytes("ClientCommand, 0 length string supplied.")); _latest_Client_Trg.OnFound = (proc, scanner, ptr) => { byte[] b = BitConverter.GetBytes(ptr.ToInt32()); var target = new SigScanTarget(2, $"80 3D ?? ?? ?? ?? 00 75 ?? 68 {b[0]:X02} {b[1]:X02} {b[2]:X02} {b[3]:X02}"); // cmp byte ptr [clientcmdptr],00 IntPtr ptrPtr = scanner.Scan(target); if (ptrPtr == IntPtr.Zero) { return(IntPtr.Zero); } IntPtr ret; proc.ReadPointer(ptrPtr, out ret); Debug.WriteLine("CVEngineServer::ClientCommand szOut ptr is 0x" + ret.ToString("X")); return(ret); }; var engineScanner = new SignatureScanner(state.GameProcess, engine.BaseAddress, engine.ModuleMemorySize); _endingsWatcher.ResetAll(); _endingSeriousCount = 0; _latestClientCmd = new StringWatcher(engineScanner.Scan(_latest_Client_Trg), 50); _endingsWatcher.Add(_latestClientCmd); }
public override void OnGameAttached(GameState state) { ProcessModuleWow64Safe server = state.GetModule("server.dll"); ProcessModuleWow64Safe bink = state.GetModule("video_bink.dll"); var scanner = new SignatureScanner(state.GameProcess, server.BaseAddress, server.ModuleMemorySize); if (GameMemory.GetBaseEntityMemberOffset("m_iHealth", state.GameProcess, scanner, out _baseEntityHealthOffset)) { Debug.WriteLine("CBaseEntity::m_iHealth offset = 0x" + _baseEntityHealthOffset.ToString("X")); } if (GameMemory.GetBaseEntityMemberOffset("m_flLaggedMovementValue", state.GameProcess, scanner, out _basePlayerLaggedMovementOffset)) { Debug.WriteLine("CBasePlayer::m_flLaggedMovementValue offset = 0x" + _basePlayerLaggedMovementOffset.ToString("X")); } _watcher.ResetAll(); // i would've sigscanned this but this dll is a 3rd party thing anyways so its unlikely to change between versions // and the game crashes when i try to debug it so oh well... _isInCutscene = new MemoryWatcher <byte>(bink.BaseAddress + 0x1b068); _watcher.Add(_isInCutscene); }