from json import loads from time import sleep from pymem import Pymem from requests import get from win32api import GetAsyncKeyState class Hack(): def __init__(self) -> None: self.running = False self.cheats_list = [func for func in dir(self) # Function if callable(getattr(self, func)) # User defined if not (func.startswith("__") and func.endswith("__")) # Blacklist if func not in ["find_process"]] def find_process(self, verbose: bool = False) -> Pymem: """Find game process""" process_found = False print("Looking for process...") if verbose else None pm = None while not process_found: try: pm = Pymem("csgo.exe") except: # Timeout sleep(.5) else: print("Process found!") if verbose else None process_found = True if pm: return pm exit(1) def bhop(self) -> None: # Offsets LOCAL_PLAYER = offset["dwLocalPlayer"] HEALTH = offset["m_iHealth"] FLAGS = offset["m_fFlags"] FORCE_JUMP = offset["dwForceJump"] pm = self.find_process(True) # Get module address client = None for module in list(pm.list_modules()): if module.name == "client.dll": client = module.lpBaseOfDll # Hack loop self.running = True while self.running: # Reduce CPU usage sleep(0.01) # Space bar detection if not GetAsyncKeyState(ord(" ")): continue # Get local player local_player = pm.read_uint(client + LOCAL_PLAYER) if not local_player: continue # Check if player is alive if not pm.read_int(local_player + HEALTH): continue # Check if player on ground if pm.read_uint(local_player+FLAGS) & (1 << 0): pm.write_uint(client + FORCE_JUMP, 5) sleep(0.01) pm.write_uint(client + FORCE_JUMP, 4) if __name__ == "__main__": # Loading offsets hazedumper_data = get( "https://raw.githubusercontent.com/frk1/hazedumper/master/csgo.min.json") serial_data = loads(hazedumper_data.text) offset = serial_data["signatures"] | serial_data["netvars"] # Cheat c = Hack() print("Enter 0 to exit.") print("Available cheats:") for idx, cheat in enumerate(c.cheats_list): print(f"#{idx + 1} - {cheat}") # Select cheat c_id = None while c_id == None: try: match int(input("Enter ID: #")): case 0: exit(0) case i if i > len(c.cheats_list): raise IndexError case _ as i: c_id = i - 1 except: print("Invalid ID.") pass # Run cheat getattr(c, c.cheats_list[c_id])()