private void tmrProcess_Tick(object sender, EventArgs e) { if (gameFound && !SA[0].HasExited) { // Only the base address or multiLevel addresses need to be established first int playerBaseAddress = mem.ReadInt(offsets.baseAddr); // Stores an address which is the base address of the player struct. int XAddress = mem.ReadMultiLevelPointer(offsets.baseAddr, 4, offsets.xPos); // Multi level pointer with 2 offsets is needed to find the address of X position, // then this address can be read as a float. int ZAddress = mem.ReadMultiLevelPointer(offsets.baseAddr, 4, offsets.zPos); int YAddress = mem.ReadMultiLevelPointer(offsets.baseAddr, 4, offsets.yPos); lblX.Text = mem.ReadFloat(XAddress).ToString(); lblZ.Text = mem.ReadFloat(ZAddress).ToString(); lblY.Text = mem.ReadFloat(YAddress).ToString(); lblHealth.Text = mem.ReadFloat(playerBaseAddress + offsets.health).ToString(); int Hotkey = ProcessMemoryReaderApi.GetKeyState(0x74);//F5 if ((Hotkey & 0x8000) != 0) { // Teleport to Grove Street mem.WriteFloat(XAddress, 2495); mem.WriteFloat(ZAddress, -1668); mem.WriteFloat(YAddress, 13); } int Hotkey2 = ProcessMemoryReaderApi.GetKeyState(0x75);//F6 if ((Hotkey2 & 0x8000) != 0) { // Teleport to Dome Stadium Roof mem.WriteFloat(XAddress, 2737); mem.WriteFloat(ZAddress, -1760); mem.WriteFloat(YAddress, 44); } int Hotkey3 = ProcessMemoryReaderApi.GetKeyState(0x76);//F7 if ((Hotkey3 & 0x8000) != 0) { // Teleport to Skyscraper mem.WriteFloat(XAddress, 1544); mem.WriteFloat(ZAddress, -1353); mem.WriteFloat(YAddress, 330); } } else { // Game has ended so stop performing readMemory etc gameFound = false; btnAttach.BackColor = Color.Red; btnAttach.Enabled = true; } }//tmrProcess
private void LoopTMR_Tick(object sender, EventArgs e) { if (attach) { try { // Step2 Value를 찾아서 모니터링 (현재 값이 무엇인지 계속적으로 확인) int step2SturctAddress = mem.ReadMultiLevelPointer(step2Data.baseAddress, 4, step2Data.multiLevel); int step2value = mem.ReadInt(step2SturctAddress + step2Data.offsets.health); Step2ValueLBL.Text = "Step 2 Value: " + step2value; // Step8 Value를 찾아서 모니터링 int step8SturctAddress = mem.ReadMultiLevelPointer(step8Data.baseAddress, 4, step8Data.multiLevel); int step8value = mem.ReadInt(step8SturctAddress + step8Data.offsets.health); Step8ValueLBL.Text = "Step 8 Value: " + step8value; // Step9의 플레이어 데이터를 모니터링 int p1Base = mem.ReadMultiLevelPointer(step9PlayerData.baseAddress, 4, step9PlayerData.step9P1multiLevel); int p2Base = mem.ReadMultiLevelPointer(step9PlayerData.baseAddress, 4, step9PlayerData.step9P2multiLevel); int p3Base = mem.ReadMultiLevelPointer(step9PlayerData.baseAddress, 4, step9PlayerData.step9P3multiLevel); int p4Base = mem.ReadMultiLevelPointer(step9PlayerData.baseAddress, 4, step9PlayerData.step9P4multiLevel); P1LBL.Text = "P1: [" + mem.ReadInt(p1Base + step9PlayerData.teamOffset) + " 팀]" + mem.ReadString(p1Base + step9PlayerData.nameOffset) + ": " + mem.ReadFloat(p1Base + step9PlayerData.healthOffset); P2LBL.Text = "P2: [" + mem.ReadInt(p2Base + step9PlayerData.teamOffset) + " 팀]" + mem.ReadString(p2Base + step9PlayerData.nameOffset) + ": " + mem.ReadFloat(p2Base + step9PlayerData.healthOffset); P3LBL.Text = "P3: [" + mem.ReadInt(p3Base + step9PlayerData.teamOffset) + " 팀]" + mem.ReadString(p3Base + step9PlayerData.nameOffset) + ": " + mem.ReadFloat(p3Base + step9PlayerData.healthOffset); P4LBL.Text = "P4: [" + mem.ReadInt(p4Base + step9PlayerData.teamOffset) + " 팀]" + mem.ReadString(p4Base + step9PlayerData.nameOffset) + ": " + mem.ReadFloat(p4Base + step9PlayerData.healthOffset); // 크랙을 동작시켰을때, 현재 크랙이 값을 수정하도록 만드는 작업 int hotkey = ProcessMemoryReaderApi.GetKeyState(0x02); // 마우스 오른쪽키에 대한 상태 if ((hotkey & 0x8000) != 0) // 키가 눌렸을 경우 { if (crackState == false) // 크랙이 꺼져있는 경우에는 크랙 켜고 크랙 시도! { crackState = true; CrackStatusLBL.Text = "크랙 상태: On"; } else // 크랙이 켜져있는 경우에는 크랙을 끕니다. { crackState = false; CrackStatusLBL.Text = "크랙 상태: Off"; } } if (crackState) { Step2Solve(step2SturctAddress); // step2 Value를 1000으로 수정 Step8Solve(step8SturctAddress); // step2 Value를 1000으로 수정 } } catch (Exception ex) { crackState = false; MessageBox.Show("읽기 쓰기 오류: " + ex.Message); } } }
private void TmrProcess_Tick(object sender, EventArgs e) { if (gameFound && !pro[0].HasExited) { GetCurrentData(); // AIMBOT - right mouse click if ((ProcessMemoryReaderApi.GetKeyState(02) & 0x8000) != 0) { Aimbot(); } // Client sided Health hack - (F5 Key) if ((ProcessMemoryReaderApi.GetKeyState(0x74) & 0x8000) != 0) { mem.WriteInt(player.pointerAddress + player.health, 999); } #region Teleporter // VK_F1 = 0x70, Save Current location as A if ((ProcessMemoryReaderApi.GetKeyState(0x70) & 0x8000) != 0) { SaveCoords(0); } // VK_F2 = 0x71, Save Current location as B if ((ProcessMemoryReaderApi.GetKeyState(0x71) & 0x8000) != 0) { SaveCoords(1); } // VK_F3 = 0x72, Load location A if ((ProcessMemoryReaderApi.GetKeyState(0x72) & 0x8000) != 0) { LoadCoords(0); } // VK_F4 = 0x73, Load location B if ((ProcessMemoryReaderApi.GetKeyState(0x73) & 0x8000) != 0) { LoadCoords(1); } #endregion }//if gamefound else { gameFound = false; btnAttach.BackColor = Color.FromArgb(220, 61, 65); // Red btnAttach.Enabled = true; } }
private void ProcessTMR_Tick(object sender, EventArgs e) { if (GameFound) { mouseXValueLBL.Text = Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.yaw).ToString(); mouseYValueLBL.Text = Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.pitch).ToString(); //DISPLAY OUR XYZ MAIN PLAYER'S POS xPosValueLBL.Text = Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.xPos).ToString(); yPosValueLBL.Text = Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.yPos).ToString(); zPosValueLBL.Text = Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.zPos).ToString(); //SHOW OUR ENEMY VARIABLES HealthMineLBL.Text = Mem.ReadInt(MainPlayer.baseAddress + MainPlayer.offsets.health).ToString(); EnHealthValueLBL.Text = Mem.ReadInt(EnemyAddresses[2].baseAddress + MainPlayer.offsets.health).ToString(); xPosEnValueLBL.Text = Mem.ReadFloat(EnemyAddresses[2].baseAddress + MainPlayer.offsets.xPos).ToString(); yPosEnValueLBL.Text = Mem.ReadFloat(EnemyAddresses[2].baseAddress + MainPlayer.offsets.yPos).ToString(); zPosEnValueLBL.Text = Mem.ReadFloat(EnemyAddresses[2].baseAddress + MainPlayer.offsets.zPos).ToString(); //RIGHT MOUSE int res = ProcessMemoryReaderApi.GetKeyState(02); if ((res & 0x8000) != 0) { //if enemy is holding AIMBOT btn or key we focus on that person until they are dead FocusingOnEnemy = true; AimBot(); } else { //otherwise we stop staring at them and change targets FocusingOnEnemy = false; FocusTarget = -1; } } try { if (MyProcess != null) { if (MyProcess[0].HasExited) { GameFound = false; } } } catch (Exception ex) { MessageBox.Show("There was an error " + ex.Message); } }
private void ProcessTMR_Tick(object sender, EventArgs e) { if (GameFound) { xMouse.Text = "xMouse: " + Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.yaw).ToString(); yMouse.Text = "yMouse: " + Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.pitch).ToString(); xPosLabel.Text = "xPos: " + Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.xPos).ToString(); yPosLabel.Text = "yPos: " + Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.yPos).ToString(); zPosLabel.Text = "zPos: " + Mem.ReadFloat(MainPlayer.baseAddress + MainPlayer.offsets.zPos).ToString(); playerHealth.Text = "Health: " + Mem.ReadInt(MainPlayer.baseAddress + MainPlayer.offsets.health).ToString(); //RIGHT MOUSE int res = ProcessMemoryReaderApi.GetKeyState(02); if ((res & 0x8000) != 0) { FocusingOnEnemy = true; AimBot(); } else { FocusingOnEnemy = false; FocusTarget = -1; } } try { if (MyProcess != null) { if (MyProcess[0].HasExited) { GameFound = false; } } } catch (Exception ex) { MessageBox.Show("Der opstod en fejl, prøv igen:\n " + ex.Message); } }
private void LoopTMR_Tick(object sender, EventArgs e) { if (attach) { try { // step2 value를 찿아서 모니터링 int structAddr = mem.ReadMultiLevelPointer( step2Data.baseAdress, 4, step2Data.multiLevel); ValueLBL.Text = "Step2Value : " + mem.ReadInt(structAddr + step2Data.offsets.step2_health); // 크랙이 값을 수정하는 코드 int hotkey = ProcessMemoryReaderApi.GetKeyState(0x02); // mouse_R button- 0x02 if ((hotkey & 0x8000) != 0) //키가눌렸을 경우 { if (crackState == false) { crackState = true; CrackStatusLBL.Text = "크랙 상태 : ON"; } else { crackState = false; CrackStatusLBL.Text = "크랙 상태 : OFF"; } } if (crackState) { Step2Solve(structAddr); //value 를 1000으로 고정해주는 함수 } } catch (Exception ex) { crackState = false; MessageBox.Show("읽기 쓰기 에러 !!!" + ex.Message); throw; } }//크랙을 동작시켰을때, 현재크랙의 값을 수정 }
private void timer1_Tick(object sender, EventArgs e) { if (ProcessFound) { // Store entities memory addresses int LocalPlayerAddress = Mem.ReadMultiLevelPointer(LocalPlayerBase, 4, LocalPlayerOff); int Enemy1Address = Mem.ReadMultiLevelPointer(Enemy1Base, 4, Enemy1Off); // Read Local PLayer Values int HealthValue = Mem.ReadInt(LocalPlayerAddress + off_health); int RiffleAmmoValue = Mem.ReadInt(LocalPlayerAddress + off_rifle_ammo); // Read Enemy 1 Values int Enemy1HealthValue = Mem.ReadInt(Enemy1Address); float Enemy1XPosValue = Mem.ReadFloat(Enemy1Address - Enemy1XPos); float Enemy1YPosValue = Mem.ReadFloat(Enemy1Address - Enemy1YPos); float Enemy1ZPosValue = Mem.ReadFloat(Enemy1Address - Enemy1ZPos); // Local Player Lables Health.Text = "Health: " + HealthValue.ToString(); RiffleAmmo.Text = "Riffle Ammo: " + RiffleAmmoValue.ToString(); // Enemy 1 Lables enemy1_hp_lable.Text = "Enemy 1 HP: " + Enemy1HealthValue.ToString(); enemy1_xpos_lable.Text = "X-Pos: " + Enemy1XPosValue.ToString(); enemy1_ypos_lable.Text = "Y-Pos: " + Enemy1YPosValue.ToString(); enemy1_zpos_lable.Text = "Z-Pos: " + Enemy1ZPosValue.ToString(); if (RiffleAmmoValue < 5) { // Set Local Player Riffle Ammo to 20 if it less than 5 Mem.WriteInt(LocalPlayerAddress + off_rifle_ammo, 20); // Set Local Player HP to 1000 when ammo is less han 5 Mem.WriteInt(LocalPlayerAddress + off_health, 1000); } // Left mouse button pressed int pressedLeftMouse = ProcessMemoryReaderApi.GetKeyState(01); if ((pressedLeftMouse & 0x8000) != 0) { Mem.WriteInt(LocalPlayerAddress + off_fire, 1); // Remove Y-axin recoil when shooting float Ymouse_pos = Mem.ReadFloat(LocalPlayerAddress + off_Ymouse); Ymouse_pos -= 0.38f; Mem.WriteFloat(LocalPlayerAddress + off_Ymouse, Ymouse_pos); } else { Mem.WriteInt(LocalPlayerAddress + off_fire, 0); } // F1 button pressed int pressedF1 = ProcessMemoryReaderApi.GetKeyState(0x70); if ((pressedF1 & 0x8000) != 0) { Mem.WriteFloat(LocalPlayerAddress + off_XPos, Enemy1XPosValue); Mem.WriteFloat(LocalPlayerAddress + off_YPos, Enemy1YPosValue); Mem.WriteFloat(LocalPlayerAddress + off_ZPos, Enemy1ZPosValue); } } }
private void Timer1_Tick(object sender, EventArgs e) // 0.1초마다 동작 { if (attach) { try { mainPlayer.SetPlayerData(mem); // 데이터 모니터링 if (healthHack) { mainPlayer.hackHealth(mem); } if (ammoHack) { mainPlayer.hackAmmo(mem); } int hotkey = ProcessMemoryReaderApi.GetKeyState(0x02); if (wallHack || (hotkey & 0x8000) != 0) { GetEnemyState(mem); // 원래 에임핵을 쏠 때 쓰려고 하는건데 월핵에서 이걸 받아야하기 때문에 에임핵에 있던 걸 바깥으로 빼준다, 위에 핫키도 마찬가지 } if (wallHack) { overlayForm.hackWall(mainPlayer, enemyPlayer); } // 마우스 오른쪽키에 대한 상태를 확인 // int hotkey = ProcessMemoryReaderApi.GetKeyState(0x02); if ((hotkey & 0x8000) != 0) // 키가 눌려있다면 { // GetEnemyState(mem); 적들에 대한 정보 습득 float min_err = 100000; // 에러를 큰 값으로 초기화 시켜준다 float err = 0; double min_x_angle = 0; double min_y_angle = 0; for (int i = 0; i < 30; i++) { // aim hack algorithm err = mainPlayer.getAimErr(mem, enemyPlayer[i].head_x_angle, enemyPlayer[i].head_y_angle); if (min_err > err) { min_err = err; min_x_angle = enemyPlayer[i].head_x_angle; min_y_angle = enemyPlayer[i].head_y_angle; } } mainPlayer.hackAim(mem, min_x_angle, min_y_angle); } HealthLBL.Text = "Health : " + mainPlayer.health; AmmoLBL.Text = "Ammo : " + mainPlayer.ammo; BulletProofLBL.Text = "BulletProof : " + mainPlayer.bullet_proof; AngleLBL.Text = "Angle : " + mainPlayer.x_angle + " | " + mainPlayer.y_angle; PosLBL.Text = "Position : " + mainPlayer.x_pos + " | " + mainPlayer.y_pos + " | " + mainPlayer.z_pos; } catch { } } }
private void timer1_Tick(object sender, EventArgs e) // 0.001초마다 동작 { if (attach) { try { mainPlayer.SetPlayerData(mem); // 데이터 모니터링 if (healthHack) { mainPlayer.hackHealth(mem); } if (ammoHack) { mainPlayer.hackAmmo(mem); } // 마우스 오른쪽 키에 대한 상태를 확인 int hotkey = ProcessMemoryReaderApi.GetKeyState(0x02); if (wallHack || (hotkey & 0x8000) != 0) { GetEnemyState(mem); // 적들에 대한 정보 습득 } if (wallHack) { overlayForm.hackWall(mainPlayer, enemyPlayer); } if ((hotkey & 0x8000) != 0) // 키가 눌려있다면... { float min_err = 100000; // 에러를 굉장히 큰 값으로 초기화 float err = 0; double min_x_angle = 0; double min_y_angle = 0; for (int i = 0; i < 30; i++) { // aim hack algorithm err = mainPlayer.getAimErr(mem, enemyPlayer[i].head_x_angle, enemyPlayer[i].head_y_angle); if (min_err > err) { min_err = err; min_x_angle = enemyPlayer[i].head_x_angle; min_y_angle = enemyPlayer[i].head_y_angle; } } mainPlayer.hackAim(mem, min_x_angle, min_y_angle); } HealthLBL.Text = "Health: " + mainPlayer.health; // Health: 100 AmmoLBL.Text = "Ammo: " + mainPlayer.ammo; BulletProofLBL.Text = "BulletProof: " + mainPlayer.bullet_proof; AngleLBL.Text = "Angle: " + mainPlayer.x_angle.ToString("#.##") + " | " + mainPlayer.y_angle.ToString("#.##"); PositionLBL.Text = "Pos: " + mainPlayer.x_pos.ToString("#.##") + ", " + mainPlayer.y_pos.ToString("#.##") + "," + mainPlayer.z_pos.ToString("#.##"); } catch { } } }