private void _searchTimer_Tick(object sender, EventArgs e) { distanceUpDown.Visibility = Visibility.Hidden; fovUpDown.Visibility = Visibility.Hidden; rangeCheckbox.Visibility = Visibility.Hidden; Process[] processes = Process.GetProcessesByName("dota"); if (processes.Length == 0) { return; } _processMemory.OpenProcess(processes[0]); _playerResourceAddress = _processMemory.FindPattern(new byte[] { 0xC6, 0x40, 0x10, 0x02, 0x8B, 0x35, 0xFF, 0xFF, 0xFF, 0xFF, 0x85, 0xF6 }, "xxxxxx????xx", _processMemory.GetModuleBaseAddress("client.dll"), 0xffffff); _playerResourceAddress = _processMemory.ReadInt32Ptr(_playerResourceAddress + 6); _dotaPlayerAddress = _processMemory.FindPattern(new byte[] { 0xA1, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xEC, 0x10, 0x53, 0x57 }, "x????xxxxx", _processMemory.GetModuleBaseAddress("client.dll"), 0xffffff); _dotaPlayerAddress = _processMemory.ReadInt32Ptr(_dotaPlayerAddress + 1); _playersListAddress = _processMemory.FindPattern(new byte[] { // dota_players_list 0x7c, 0x71, 0xBB, 0xFF, 0xFF, 0xFF, 0xFF }, "xxx????", _processMemory.GetModuleBaseAddress("client.dll"), 0xffffff); _playersListAddress = _processMemory.ReadInt32Ptr(_playersListAddress + 3); _engineAddress = _processMemory.FindPattern(new byte[] { // hero_npc_list 0xC1, 0xEB, 0x10, 0x81, 0xC2, 0xFF, 0xFF, 0xFF, 0xFF }, "xxxxx????", _processMemory.GetModuleBaseAddress("client.dll"), 0xffffff); _engineAddress = _processMemory.ReadInt32Ptr(_engineAddress + 5); IntPtr offsetAddress = _processMemory.FindPattern(new byte[] { 0x8B, 0x0D, 0xFF, 0xFF, 0xFF, 0xFF, 0x8B, 0x40, 0x08, 0x66, 0x0F, 0xD6, 0x44, 0x24, 0xFF }, "xx????xxxxxxxx?", _processMemory.GetModuleBaseAddress("client.dll"), 0xffffff); _distanceAddress = _processMemory.ReadInt32Ptr(offsetAddress + 2) + 0x14; _fovAddress = _processMemory.FindPattern(new byte[] { 0x74, 0x08, 0x8B, 0xCE, 0x5E, 0xE9, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x05 }, "xxxxxx????xx", _processMemory.GetModuleBaseAddress("client.dll"), 0xffffff); _fovAddress = _processMemory.ReadInt32Ptr(_fovAddress + 12); _rangeAddress = _processMemory.FindPattern(new byte[] { 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0x33, 0xC9 }, "x????xx", _processMemory.GetModuleBaseAddress("client.dll"), 0xffffff); _rangeAddress = _processMemory.ReadInt32Ptr(_rangeAddress + 1); _searchTimer.Stop(); _checkTimer.Start(); distanceUpDown.Value = Settings.Default.distance; fovUpDown.Value = Settings.Default.fov; distanceUpDown.Visibility = Visibility.Visible; fovUpDown.Visibility = Visibility.Visible; rangeCheckbox.Visibility = Visibility.Visible; }