diff --git a/main.py b/main.py index 504998c..168f432 100644 --- a/main.py +++ b/main.py @@ -1,47 +1,85 @@ +from json import loads from time import sleep from pymem import Pymem +from requests import get from win32api import GetAsyncKeyState -# offsets -LOCAL_PLAYER = 14596452 -FORCE_JUMP = 86756784 -HEALTH = 256 -FLAGS = 260 +class Hack(): + def __init__(self) -> None: + self.running = False -def bhop() -> None: - pm = Pymem("csgo.exe") + def find_process(self, verbose: bool = False) -> Pymem: + """Find game process""" + process_found = False + print("Looking for process...") if verbose else None - # Get module address - for module in list(pm.list_modules()): - if module.name == "client.dll": - client = module.lpBaseOfDll + 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 - # Hack loop - while True: - # Reduce CPU usage - sleep(0.01) + if pm: + return pm + exit(1) - # Space bar detection - if not GetAsyncKeyState(ord(" ")): - continue + def bhop(self) -> None: + # Offsets + LOCAL_PLAYER = offset["dwLocalPlayer"] + HEALTH = offset["m_iHealth"] + FLAGS = offset["m_fFlags"] + FORCE_JUMP = offset["dwForceJump"] - # Get local player - local_player: int = pm.read_uint(client + LOCAL_PLAYER) - if not local_player: - continue + pm = self.find_process(True) - # Check if player is alive - if not pm.read_int(local_player + HEALTH): - continue + # Get module address + client = None + for module in list(pm.list_modules()): + if module.name == "client.dll": + client = module.lpBaseOfDll - # Check if player on ground - if pm.read_uint(local_player+FLAGS) & 1 << 0: - pm.write_uint(client + FORCE_JUMP, 6) + # Hack loop + self.running = True + while self.running: + # Reduce CPU usage sleep(0.01) - pm.write_uint(client + FORCE_JUMP, 4) + + # 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__": - bhop() + # 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() + + # Bhop + c.bhop() diff --git a/requirements.txt b/requirements.txt index ef0268d..5595b38 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ Pymem==1.10.0 pywin32==306 +requests==2.28.2