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

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

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

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

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

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

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

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

Пример:

Легкая функция на языке с++ 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 в питоне)

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

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

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

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

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

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

Всякие советы/ошибки которые нельзя допускать:

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