Информация С чего начать изучение игрового хакинга?[GameHacking]

NullPhantom

Участник
Автор темы
20
23
Хай. Я заметил, что на бласте нету инфы как вообще начать изучение игрового хакинга, про написание и читов и т.д, поэтому приходят новички, им приходится объяснять с нуля, каждому каждый раз.
Объясню в данной теме, что вам нужно изучить, дам парочку советов. Статья для полных чайников.

1) Первое - это язык программирования на котором вы будете кодить, написание читов, байпассы и т.п, какой язык выбрать? Самый лучший вариант это С++ потому на нем имеется высокая производительность, также плюсы позволяет писать сложные обфусцированные запутанные софты, поэтому обнаружить античиту их сложнее, также имеется прямой доступ к памяти что очень важно в геймхакинге. | На С тоже можно если вы любите хард уровень

2) Второе - Ассемблер/Реверс-Инжиниринг.
Что такое Ассемблер? Зачем он нужен в геймхакинге? Что такое реверс?


Ассемблер - это низкоуровневый язык программирования, который представляет собой набор инструкций.
Зачем он нужен в геймхакинге? Все просто, дизассемблирование(перевод машинного кода в ассемблированный), грубо говоря, дизассемблирование дает понимание как работает игра, а код там написан на Ассемблере, вы сможете читать код, понимать как он работает


К примеру где хранится хп, патроны, или координаты игрока(чтобы написать какой-то легкий аим)
Или узнать как называется определенная функция, например, функция патронов

А что такое реверс? Реверс - это, грубо говоря, изучение программы, изучения принципа ее работы, поиск уязвимостей и т.п
В официальном стиле это обратное программирование
Еще проще: это разбор игры как черного ящика
Все.

Зачем нужен Реверс в геймхакинге?
Всё просто: в геймхакинге реверс нужен для поиска уязвимостей в античите, анализа кода игры и дальнейшего написания чита

Пример:

Легкая функция на языке с++ ReverserTutCoordinati

function:
void ReverserTutCoordinati() {
    int x = 10;
    int y = 20;
}
Вы уже могли понять что тут хранятся координаты, x, y.

Так, вы запускайте IDA PRO(программа для анализа) и осознаете, что вам нужно найти координаты


asm:
push ebp  ; ТУТ ПРОСТО СОХРАНЯЕТСЯ ЗНАЧЕНИЯ
mov ebp, esp ; mov инструкция для перемещения значений
sub esp, 8              ;  тут реверсер может увидеть цифру 8, предположить что это координат x = 8.
mov dword ptr [ebp-4], 0Ah  ; x = 10 | обращение к ячейке стека (локальная переменная), 0Ah (10) записывается по этому адресу
mov dword ptr [ebp-8], 14h  ; y = 20 | сверху
mov esp, ebp            ; после чего чиститься стек(Структура данных)
pop ebp
ret (вернуть, как return в питоне)

После некого анализа, вы понимаете что это функция отвечает за координаты. Думаю все понятно.


3) После изучения С++ и Ассемблера, можно переходить к изучению WinApi.
Что такое WinApi? Зачем он нужен в геймхакинге?

Грубоговоря, это инструменты от самой винды, чтобы вы могли:
1) Читать/Изменять или писать игры, к примеру, для бесконечной хпшки(для этого нужно найти оффсет, что это расскаызавть не буду)
2) Внедрять свои DLL-ки с самим читом
3) Перехватывать (хукать) клики/нажатия клавиш для аима и т.п

Рассказывать про все виды процессов, объяснять их я не буду, так-как это не статья по винапи.



4) После изучения С++ Ассемблер и WinApi, можно переходить к самому пиздецу)
А именно: Изучение винды на уровне ядра, вы должны прочитать Windows Internals(книга), чтобы понять как работает виндовс на уровне ядра.

Инфа вся ниже!


5) После изучения С++, Ассемблер, WinApi, винды, можно переходить к изучению реверса.
Инфа вся ниже!



Всякие советы/ошибки которые нельзя допускать:
1) Если не знаете алгебру, обязательно изучите ее, вы ее обязаны знать хотя-бы на уровне 9 класса, без алгебры в реверсе вы будете как солдат без автомата на войне. (p.s изучить алгебру с нуля это неделя максимум)
2) Изучите геометрию, базу, там пару дней, хотя-бы изучите на уровне векторов(вектора самое важное) | Типы которые шарят, могут спросить, нахуй геометрия если есть WorldToScreen, но там нужно уметь работать с векторами.
4) Никогда не будьте ЧСВ-шным, ЧСВ-шность губит(проверено на себе)
5) Только Си/С++/Ассемблер, никакое высокоуровневое говно.




Ресурсы для изучения
С++ - Изучение плюсов
Ассемблер - Ассемблер для чайников | ps. не бойтесь что там кодят под другую систему, это для вашего лучшего понимания, просто скачайте DosBOX и установите туда масм.
WinApi - Изучение WinApi
Windows Internals - Винда
Реверс Инжиниринг - Реверс
Геймхакинг от Nick Cano на русском - GameHacking

Всем удачи в развитии. Не стойте на месте, не стопайтесь на сампе(говорю потому-что большинство аудитории БХ кодит под самп на луа).
 
Последнее редактирование:

MrCreepTon

Неизвестный
Всефорумный модератор
2,297
5,238
1) Первое - это язык программирования на котором вы будете кодить, написание читов, байпассы и т.п, какой язык выбрать? Самый лучший вариант это С++ потому на нем имеется высокая производительность, также плюсы позволяет писать сложные обфусцированные запутанные софты, поэтому обнаружить античиту их сложнее.
Нет, производительность тут не первостепенно. Потому что на C/C++ очень легко и гибко работать на низком уровне, что позволяет решать задачи геймхакинга.
понимаете*
для этого нужно найти оффсет, что это расскаызавть не буду
А что тут за тайная информация? Поместится по идее в один абзац примерно объяснение.
Но для этого надо в блоке, где ты показываешь дизассемблированный код пояснить, что это за ptr такой тут:
mov dword ptr [ebp-4], 0Ah ; x = 10
mov dword ptr [ebp-8], 14h ; y = 20
отсюда и будет вытекать оффсет.

В целом норм, но как-то скомкано очень. Лучше подели статью на отдельные блоки по своим темам, где четко и по делу поясняй на примере той же гташки, где че откуда вытекает.
 
  • Нравится
Реакции: CastelloFAM и nourish

NullPhantom

Участник
Автор темы
20
23
А что тут за тайная информация? Поместится по идее в один абзац примерно объяснение.
Но для этого надо в блоке, где ты показываешь дизассемблированный код пояснить, что это за ptr такой тут:
Для этого нужно создавать отдельную тему. Какой смысл объяснять человеку который даже на плюсах не кодил что это такое?
В будущем сам все узнает

В целом норм, но как-то скомкано очень. Лучше подели статью на отдельные блоки по своим темам, где четко и по делу поясняй на примере той же гташки, где че откуда вытекает.
Я отдельную тему реализую где буду более подробно объяснять про это, времени не хватает на данный момент

Нет, производительность тут не первостепенно. Потому что на C/C++ очень легко и гибко работать на низком уровне, что позволяет решать задачи геймхакинга.
Как-раз таки и хотел написать об этом, о том, что есть прямой доступ к памяти. Щас изменю

Но для этого надо в блоке, где ты показываешь дизассемблированный код пояснить, что это за ptr такой тут:
Пояснил
 
Последнее редактирование: