Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд Максимально простой банихоп для кс2 на пайтоне

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2021
Сообщения
3
Реакции
0
Если вы хотели попробовать написать чит на банихоп для кс2, но в гайдах всегда видели только сложные классы хуки и тд, то вот вам версия на питоне которую поймет даже человек начавший учить пайтон 2 дня назад. Для самого чита нам понадобится дампер для получения офсетов, который можно взять на гитхаб
Пожалуйста, авторизуйтесь для просмотра ссылки.
нажимаете release и скачиваете exe файл ( примечание перед использованием положите его в любую папку не оставляйте на рабочем столе) дальше запускаете кс2 и следом когда запустили включаете дампер и получаете все возможные офсеты.
Теперь когда все получено можно переходить к програмированию для питона мы возьмем 3 библиотеки они самые простые и осваиваются за пол часа первая из них pymem вторая keyboard и третья time.
import pymem
import time
import keyboard


дальше когда все импортировали нам нужно подключиться к самой кс2 в pymem это делается одной командой
pm = pymem.Pymem("cs2.exe") - в pm у нас сохраниться процесс
теперь самое главное понять, то что игра при запуске кладется в оперативную память вашего пк в рандомное место поэтому просто читать офсеты мы не можем ведь офсет это расстояние от чего то, сначало надо получить адресс в памяти куда загрузилась сама игра и потом уже скакать от этого места применим все тот же pymem

client = pymem.process.module_from_name(pm.process_handle, "client.dll").lpBaseOfDll - поскольку pm это уже наша игра нам нужно взять от нее handle - если совсем просто то это сам процесс и вторым аргументом идет что от него взять, поскольку все действия с игроком в кс2 находятся в client.dll ее мы и берем но будьте внимательны сама команда pymem.process.module_from_name возращает массив от полученной длл ее имя айди и тд поэтому через точку мы указываем .lpBaseOfDll что нам нужен только адресс длл в памяти.

теперь когда мы получили процесс игры и точку отсчета для всех оффсетов давайте возьмем из дампера все нужные нам оффсеты для этого зайдите в дампер - output - client_dll.hpp и возьмите оттуда офсет m_fFlags (это оффсет который указывает на переменную в кс2 отвечающую за проверку стоит игрок на земле или нет) дальше в дампер - output - offsets.hpp и возьмите dwLocalPlayerPawn (это оффсет указывающий на нашего локального игрока) и последний офсет который нам нужен дампер - output - buttons.hpp возьмите оттуда jump (офсет который отвечает за то нажали вы пробел или нет) вот так это выглядит в коде


jump = 0x204DE30;
dwLocalPlayerPawn = 0x20546A0;
m_fFlags = 0x3F8;


Поздравляю теперь у нас есть все чтобы написать баннихоп для кс2 и это мы щас и сделаем


while(True):
localplayer = pm.read_longlong(client + dwLocalPlayerPawn)
OnGround = pm.read_int(localplayer + m_fFlags)
if(OnGround & 1):
if keyboard.is_pressed("space"):
pm.write_int(client + jump, 65537)
time.sleep(0.5)
pm.write_int(client + jump, 16777472)


теперь объясню вкратце что тут происходит запускается цикл мы ищем для начала нас локального игрока поскольку локальный игрок это не просто переменная с числом мы берем тип даннных 8 бит longlong дальше нужно прочитать переменную отвечающую за то на земле мы или нет OnGround в самом сравнении идет & это битовая маска если кто то не знает что это такое напишите я объясню, дальше проверяем нажат ли пробел и если да то записываем в переменную прыжка число 65537 почему именно такое потому что это сигнал прыжка для кс2 а 16777472 сигнал что кнопка больше не нажата дальше объясню важный нюанс почему между ними стоит sleep сам движок кс2 обрабатывает команды так: нажатие поступило 65537 выполнить и если вы не поставите следом же команду отжатия 16777472 то бхоп будет прыгать очень плохо и с задержкой тк перед командой отжатия ему надо будет обработать 1000 команд нажатия и появиться очередь из команд поэтому лучший вариант для движка нажал выполнил отжал выполнил и задержка 0.5 секунд чтоб движок хотябы успевал понимать что происходит и все идеальный бхоп готов, но учтите это все еще не хук и прям идеальным он не будет тк вы просто спамите в память игры а не меняете саму логику прыжка если надо могу рассказать также как сделать хук для банихопа и напоследок вот код целиком:

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

import pymem
import time
import keyboard
pm = pymem.Pymem("cs2.exe")
client = pymem.process.module_from_name(pm.process_handle, "client.dll").lpBaseOfDll

jump = 0x204DE30;
dwLocalPlayerPawn = 0x20546A0;
m_fFlags = 0x3F8;


while(True):
localplayer = pm.read_longlong(client + dwLocalPlayerPawn)
OnGround = pm.read_int(localplayer + m_fFlags)
if(OnGround & 1):
if keyboard.is_pressed("space"):
pm.write_int(client + jump, 65537)
time.sleep(0.5)
pm.write_int(client + jump, 16777472)

(офсеты могли устареть перепроверяйте дампером!!!!)
 
Последнее редактирование:
Если вы хотели попробовать написать чит на банихоп для кс2, но в гайдах всегда видели только сложные классы хуки и тд, то вот вам версия на питоне которую поймет даже человек начавший учить пайтон 2 дня назад. Для самого чита нам понадобится дампер для получения офсетов, который можно взять на гитхаб
Пожалуйста, авторизуйтесь для просмотра ссылки.
нажимаете release и скачиваете exe файл ( примечание перед использованием положите его в любую папку не оставляйте на рабочем столе) дальше запускаете кс2 и следом когда запустили включаете дампер и получаете все возможные офсеты.
Теперь когда все получено можно переходить к програмированию для питона мы возьмем 3 библиотеки они самые простые и осваиваются за пол часа первая из них pymem вторая keyboard и третья time.
import pymem
import time
import keyboard


дальше когда все импортировали нам нужно подключиться к самой кс2 в pymem это делается одной командой
pm = pymem.Pymem("cs2.exe") - в pm у нас сохраниться процесс
теперь самое главное понять, то что игра при запуске кладется в оперативную память вашего пк в рандомное место поэтому просто читать офсеты мы не можем ведь офсет это расстояние от чего то, сначало надо получить адресс в памяти куда загрузилась сама игра и потом уже скакать от этого места применим все тот же pymem

client = pymem.process.module_from_name(pm.process_handle, "client.dll").lpBaseOfDll - поскольку pm это уже наша игра нам нужно взять от нее handle - если совсем просто то это сам процесс и вторым аргументом идет что от него взять, поскольку все действия с игроком в кс2 находятся в client.dll ее мы и берем но будьте внимательны сама команда pymem.process.module_from_name возращает массив от полученной длл ее имя айди и тд поэтому через точку мы указываем .lpBaseOfDll что нам нужен только адресс длл в памяти.

теперь когда мы получили процесс игры и точку отсчета для всех оффсетов давайте возьмем из дампера все нужные нам оффсеты для этого зайдите в дампер - output - client_dll.hpp и возьмите оттуда офсет m_fFlags (это оффсет который указывает на переменную в кс2 отвечающую за проверку стоит игрок на земле или нет) дальше в дампер - output - offsets.hpp и возьмите dwLocalPlayerPawn (это оффсет указывающий на нашего локального игрока) и последний офсет который нам нужен дампер - output - buttons.hpp возьмите оттуда jump (офсет который отвечает за то нажали вы пробел или нет) вот так это выглядит в коде


jump = 0x204DE30;
dwLocalPlayerPawn = 0x20546A0;
m_fFlags = 0x3F8;


Поздравляю теперь у нас есть все чтобы написать баннихоп для кс2 и это мы щас и сделаем


while(True):
localplayer = pm.read_longlong(client + dwLocalPlayerPawn)
OnGround = pm.read_int(localplayer + m_fFlags)
if(OnGround & 1):
if keyboard.is_pressed("space"):
pm.write_int(client + jump, 65537)
time.sleep(0.5)
pm.write_int(client + jump, 16777472)


теперь объясню вкратце что тут происходит запускается цикл мы ищем для начала нас локального игрока поскольку локальный игрок это не просто переменная с числом мы берем тип даннных 8 бит longlong дальше нужно прочитать переменную отвечающую за то на земле мы или нет OnGround в самом сравнении идет & это битовая маска если кто то не знает что это такое напишите я объясню, дальше проверяем нажат ли пробел и если да то записываем в переменную прыжка число 65537 почему именно такое потому что это сигнал прыжка для кс2 а 16777472 сигнал что кнопка больше не нажата дальше объясню важный нюанс почему между ними стоит sleep сам движок кс2 обрабатывает команды так: нажатие поступило 65537 выполнить и если вы не поставите следом же команду отжатия 16777472 то бхоп будет прыгать очень плохо и с задержкой тк перед командой отжатия ему надо будет обработать 1000 команд нажатия и появиться очередь из команд поэтому лучший вариант для движка нажал выполнил отжал выполнил и задержка 0.5 секунд чтоб движок хотябы успевал понимать что происходит и все идеальный бхоп готов, но учтите это все еще не хук и прям идеальным он не будет тк вы просто спамите в память игры а не меняете саму логику прыжка если надо могу рассказать также как сделать хук для банихопа и напоследок вот код целиком:

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

import pymem
import time
import keyboard
pm = pymem.Pymem("cs2.exe")
client = pymem.process.module_from_name(pm.process_handle, "client.dll").lpBaseOfDll

jump = 0x204DE30;
dwLocalPlayerPawn = 0x20546A0;
m_fFlags = 0x3F8;


while(True):
localplayer = pm.read_longlong(client + dwLocalPlayerPawn)
OnGround = pm.read_int(localplayer + m_fFlags)
if(OnGround & 1):
if keyboard.is_pressed("space"):
pm.write_int(client + jump, 65537)
time.sleep(0.5)
pm.write_int(client + jump, 16777472)

(офсеты могли устареть перепроверяйте дампером!!!!)
зачем вы это делаете??? вам нужен андетект? так в контре и других играх валв с декабря не работает античит, а от ваклайва хоть на ассемблере уефи бхоп пиши ему похуй
 
зачем вы это делаете??? вам нужен андетект? так в контре и других играх валв с декабря не работает античит, а от ваклайва хоть на ассемблере уефи бхоп пиши ему похуй
это тип еще год назад на ют писал код
 
Назад
Сверху Снизу