This repository has been archived on 2023-09-02. You can view files and clone it, but cannot push or open issues or pull requests.
csh/main.py

86 lines
2.2 KiB
Python
Raw Normal View History

from json import loads
2023-03-30 11:26:52 +02:00
from time import sleep
from pymem import Pymem
from requests import get
2023-03-30 11:26:52 +02:00
from win32api import GetAsyncKeyState
class Hack():
def __init__(self) -> None:
self.running = False
2023-03-30 11:26:52 +02:00
def find_process(self, verbose: bool = False) -> Pymem:
"""Find game process"""
process_found = False
print("Looking for process...") if verbose else None
2023-03-30 11:26:52 +02:00
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
2023-03-30 11:26:52 +02:00
if pm:
return pm
exit(1)
2023-03-30 11:26:52 +02:00
def bhop(self) -> None:
# Offsets
LOCAL_PLAYER = offset["dwLocalPlayer"]
HEALTH = offset["m_iHealth"]
FLAGS = offset["m_fFlags"]
FORCE_JUMP = offset["dwForceJump"]
2023-03-30 11:26:52 +02:00
pm = self.find_process(True)
2023-03-30 11:26:52 +02:00
# Get module address
client = None
for module in list(pm.list_modules()):
if module.name == "client.dll":
client = module.lpBaseOfDll
2023-03-30 11:26:52 +02:00
# Hack loop
self.running = True
while self.running:
# Reduce CPU usage
2023-03-30 11:26:52 +02:00
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)
2023-03-30 11:26:52 +02:00
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()
# Bhop
c.bhop()