Гайд Самый простой вх на питоне (Python)

Начинающий
Статус
Оффлайн
Регистрация
2 Ноя 2020
Сообщения
25
Реакции[?]
1
Поинты[?]
0
а как это все запустить? чтобы играть с этим вх, я вообще еще печень в питоне, изучил только функции, цикл for, списки (list), типы данных и операторы
Пожалуйста, авторизуйтесь для просмотра ссылки.
скомпилить,в exe либо через cmd запускать
 
олд
Начинающий
Статус
Оффлайн
Регистрация
10 Мар 2018
Сообщения
44
Реакции[?]
6
Поинты[?]
0
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,435
Реакции[?]
669
Поинты[?]
28K
Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2017
Сообщения
52
Реакции[?]
6
Поинты[?]
0
Ты их выучил не запуская код?
Тоже интересно это. Либо он просто читал, но это получается он просто проебал время своё.
что по детекту кста?
Должно быть в детекте
А почему паста-то ? Тут пастить - то нечего , дефолт глов.
Потому что нет главных объяснений. Доебаться можно много до чего, но как минимум автор не сказал, что ентити хранятся в некой коллеции (массиве и тд).
По вот этой строке нет важного описания
Python:
entity = mem.read_int(client.lpBaseOfDll + 0x4DA215C + 0x10 * i)
Автор сказал, что 0x4DA215C это адрес (хотя это нихуя не адрес, а смещение), но вот что такое 0x10 * i он не сказал, а это важная часть.
Так как все сущности находятся в памяти друг за другом, то мы можем перечислить их таким образом.
i - номер нашей сущности. А вот что такое 0x10 (16) он не говорит (может он сам не знает), но исходя из логики можно понять, что это размер структуры сущности.
То есть у нас каждая сущность занимает по 16 байт в памяти. client.lpBaseOfDll + 0x4DA215C + i * 16 = смещение до сущности i от начала массива сущностей.

В целом автор не отличает понятия адреса и смещения. Не знаю, как он смог написать этот код без понимания такой базовой информации.
А если автор этого не понимает, то код был спащен == паста.

А ведь это я еще не доебался до структуры glow (про вот такие строки glow_manager + glow_id * 0x38 + 0x8).

Автор, если ты делаешь это для новичков, то удосужься делать нормальный темы с частью про реверс.
Новички нихуя из этого не поймут.
 
Начинающий
Статус
Оффлайн
Регистрация
1 Фев 2020
Сообщения
48
Реакции[?]
1
Поинты[?]
0
зная вак - нет, да и почему должно детектится?
Ага, нахуй им заниматься каким-то external безопасным по большей степени софтом. Можно же internal задетектив и всо, делов та
 
Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2017
Сообщения
52
Реакции[?]
6
Поинты[?]
0
зная вак - нет, да и почему должно детектится?
Вроде вак уже как год детектит открытые хэндлы на запись/чтение к процессу.
По крайней мере у меня была своя паста, которая изменяла память из юзермода - отлетела через полгода.
Потом грубо говоря эту же пасту переписал под чтение/запись из кернел мода и больше никогда не отлетал
 
Начинающий
Статус
Оффлайн
Регистрация
24 Июл 2021
Сообщения
22
Реакции[?]
1
Поинты[?]
0
Гайд для новичков как сделать вх на питоне всего в 14 строк


вот код:
Python:
import pymem
import keyboard
mem = pymem.Pymem("csgo.exe")
client = pymem.process.module_from_name(mem.process_handle, "client.dll")
while not keyboard.is_pressed("end"):
    for i in range(32):
        entity = mem.read_int(client.lpBaseOfDll + 0x4DA215C + 0x10 * i)
        if entity == 0:
            continue
        glow_manager = mem.read_int(client.lpBaseOfDll + 0x52EA5D0)
        glow_id = mem.read_int(entity + 0xA438)
        mem.write_float(glow_manager + glow_id * 0x38 + 0x4, 255.0)
        mem.write_float(glow_manager + glow_id * 0x38 + 0x10, 255.0)
        mem.write_int(glow_manager + glow_id * 0x38 + 0x24, 1)
а теперь разберемся что к чему

import pymem - модуль для работы с памятью (запись, чтение и тд)
если нет - устанавливаем (pip install pymem в консоль виндовс)

import keyboard - нужно чтобы по нажатию на end чит можно было выключить (можно любую другую кнопку)
если нет - устанавливаем (pip install keyboard в консоль виндовс)

mem = pymem.Pymem("csgo.exe") - открываем процесс csgo для работы с ним

client = pymem.process.module_from_name(mem.process_handle, "client.dll") - получаем адрес модуля client.dll где хранится вся информация об игроках

while not keyboard.is_pressed("end"): - цикл для работы вх keyboard.is_keypressed("любая кнопка") для того чтобы можно было остановить по нажатию кнопки

for i in range(32): - цикл для перебора ентити, игроки хранятся в самом начале списка ентити так что можно цикл ограничить 10 игроками (если для мм)

entity = mem.read_int(client.lpBaseOfDll + 0x4DA215C + 0x10 * i) - получаем адрес ентити где
client.lpBaseOfDll - адрес модуля
0x4DA215C - адрес списка ентити, после каждого обновления игры меняется, актуальный
Пожалуйста, авторизуйтесь для просмотра ссылки.
(dwEntityList)

if entity == 0: continue - проверяем чтобы адрес не был нулевым

glow_manager = mem.read_int(client.lpBaseOfDll + 0x52EA5D0) - получаем менеджер подсветки
0x52EA5D0 - адрес менеджера, тоже меняется после каждого обновления игры, актуальный
Пожалуйста, авторизуйтесь для просмотра ссылки.
(dwGlowObjectManager)

glow_id = mem.read_int(entity + 0xA438) - получаем индекс игрока в списке менеджера подсветки

mem.write_float(glow_manager + glow_id * 0x38 + 0x4, 255.0) - записываем цвет подсветки в данном случае 255 для красного канала
для зеленого адрес будет glow_manager + glow_id * 0x38 + 0x8
для синего - glow_manager + glow_id * 0x38 + 0xC
прозрачность - glow_manager + glow_id * 0x38 + 0x10

mem.write_int(glow_manager + glow_id * 0x38 + 0x24, 1) - сама магия, включаем подсветку!

все, вх готов, можно еще добавить проверку на тиммейта, ее нужно вставить после проверки entity == 0:
Python:
localplayer = mem.read_int(client.lpBaseOfDll + 0xD892CC) # 0xD892CC тоже обнавляется после обновления игры(dwLocalPlayer)
if mem.read_int(localplayer + 0xF4) == mem.read_int(entity + 0xF4):
    continue
можно сделать чтобы подсвечивалось оружие и бомба так же
 
Сверху Снизу