Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Здравствуйте, у меня вопрос, как научиться писать читы для игр, с чего нужно начать обучение в первую очередь, я умею работать с cheat engine, может вы посоветуете что нибудь для того чтоб было понятно как писать читы, я искал уже информацию по поводу создание читов, но там для меня все запутанно, по этому прошу подсказать, с чего начать, и как двигаться дальше.
Здравствуйте, у меня вопрос, как научиться писать читы для игр, с чего нужно начать обучение в первую очередь, я умею работать с cheat engine, может вы посоветуете что нибудь для того чтоб было понятно как писать читы, я искал уже информацию по поводу создание читов, но там для меня все запутанно, по этому прошу подсказать, с чего начать, и как двигаться дальше.
Никогда не поймешь и не узнаешь, это даётся только с рождения. Те кто пишут что просто учи язык и перенаправляют тебя на сайт learn cpp - сами ничего не знают, поскольку писать чит это не только изучить язык, который в последуйщем на практике в читах выглядит не похож сам на себя. Единственное что тебе поможет - это подучить язык, узнать его основы. Все остальное - это просмотр готовых продуктов. Но скажу тебе одно - это очень трудно, игру нужно понимать как и что ты пишешь. Просто смотришь готовые сурсы, спрашиваешь все у ИИ что не понятное и так со временем начинаешь что-то запоминать, что-то записываешь и вот так будет успех
Кроме того, нету понятия как писать читы. Каждый пишет их как ему удобно. Это скорее не обучение, я вечная практика и исправление своих ошибок. Тебе никто не даст готовый материал с конкретными инструкциями пока ты сам его себе не напишешь и не построишь в голове
Никогда не поймешь и не узнаешь, это даётся только с рождения. Те кто пишут что просто учи язык и перенаправляют тебя на сайт learn cpp - сами ничего не знают, поскольку писать чит это не только изучить язык, который в последуйщем на практике в читах выглядит не похож сам на себя. Единственное что тебе поможет - это подучить язык, узнать его основы. Все остальное - это просмотр готовых продуктов. Но скажу тебе одно - это очень трудно, игру нужно понимать как и что ты пишешь. Просто смотришь готовые сурсы, спрашиваешь все у ИИ что не понятное и так со временем начинаешь что-то запоминать, что-то записываешь и вот так будет успех
Кроме того, нету понятия как писать читы. Каждый пишет их как ему удобно. Это скорее не обучение, я вечная практика и исправление своих ошибок. Тебе никто не даст готовый материал с конкретными инструкциями пока ты сам его себе не напишешь и не построишь в голове
Никогда не поймешь и не узнаешь, это даётся только с рождения. Те кто пишут что просто учи язык и перенаправляют тебя на сайт learn cpp - сами ничего не знают, поскольку писать чит это не только изучить язык, который в последуйщем на практике в читах выглядит не похож сам на себя. Единственное что тебе поможет - это подучить язык, узнать его основы. Все остальное - это просмотр готовых продуктов. Но скажу тебе одно - это очень трудно, игру нужно понимать как и что ты пишешь. Просто смотришь готовые сурсы, спрашиваешь все у ИИ что не понятное и так со временем начинаешь что-то запоминать, что-то записываешь и вот так будет успех
Кроме того, нету понятия как писать читы. Каждый пишет их как ему удобно. Это скорее не обучение, я вечная практика и исправление своих ошибок. Тебе никто не даст готовый материал с конкретными инструкциями пока ты сам его себе не напишешь и не построишь в голове
Ну, основы С++ для создания читов Это iostream и windows.h? ты написал что все пишут читы как удобно, получается я могу написать читы на одной библиотеке iostream?
Ну, основы С++ для создания читов Это iostream и windows.h? ты написал что все пишут читы как удобно, получается я могу написать читы на одной библиотеке iostream?
если ты знаешь как это сделать и ты заранее расчитываешь что функционал не будет слишком высоким, то пиши сколько тебе влезет, кроме того я не имел ввиду совершенно другое. А по поводу основ можно сказать что да, ведь что еще то нужно? Все остальные знания автоматически будут накапливаться, единственное это работа с памятью но не более. Смотреть сурсы и все
если ты знаешь как это сделать и ты заранее расчитываешь что функционал не будет слишком высоким, то пиши сколько тебе влезет, кроме того я не имел ввиду совершенно другое. А по поводу основ можно сказать что да, ведь что еще то нужно? Все остальные знания автоматически будут накапливаться, единственное это работа с памятью но не более. Смотреть сурсы и все
Лучшее начало - learncpp. Это правда. Ты не сможешь сделать ничего нормального без знаний. Дальше идёт устройство windows. Память, assembler. Даже понимание того, как работает та или иная механика в игре сможет дать тебе больше, чем ты думаешь. Не все люди идут смотреть почему именно так написано в коде, если они не понимают этого. Так он просто научится пастить...
Лучшее начало - learncpp. Это правда. Ты не сможешь сделать ничего нормального без знаний. Дальше идёт устройство windows. Память, assembler. Даже понимание того, как работает та или иная механика в игре сможет дать тебе больше, чем ты думаешь. Не все люди идут смотреть почему именно так написано в коде, если они не понимают этого. Так он просто научится пастить...
Я посмотрел что это за сайт learncpp, а есть похожий сайт но с изучением только WinAPI, почему я вообще интересуюсь WinAPI, потому что в чужих сурсов, используется WinAPI, но я не понял в чем конкретно он используется ( в чтения памяти, или для рендеринга вх если это как то вообще относится или может я вообще не правильно думаю) вот это бы еще понять для чего нужен WinAPI, он там взаимодействует вроде как с офф сетами
но если ты думаешь что можно пойти и сразу учить WinAPI ничего не понимая в C++, то это не так. это будет не кодинг и не написание читов, а простой "пастинг". свой код ты без знаний C++ не напишешь, это база, ты не будешь способен понять какое-либо API без понимания языка который используешь.
но я не понял в чем конкретно он используется ( в чтения памяти, или для рендеринга вх если это как то вообще относится или может я вообще не правильно думаю) вот это бы еще понять для чего нужен WinAPI, он там взаимодействует вроде как с офф сетами
игра на которую ты будешь писать чит будет являться процессом, процессы создаёт операционная система (в этом случае Windows), у Windows имеется своё API для разработчиков и именно это API ты и будешь использовать. WinAPI предоставляет тебе абсолютно всё что нужно для работы с системой в целом, в него входит и тот функционал что ты описал - чтение памяти любых процессов (
нет, работа с оффсетами не относится напрямую к WinAPI. оффсет, если объяснять на пальцах, это смещение определённого поля или элемента данных внутри блока памяти. держи пример:
C++:
namespace offsets
{
namespace player
{
constexpr int bullets_shot = 0x0;
constexpr int health = 0x4;
constexpr int max_health = 0x8;
}
}
struct Player // `блок памяти` Player который содержит `элементы`
{
// Размер `int` составляет 4 байта
int bullets_shot = 12; // оффсет 0 (0x0) (начало структуры, первая переменная имеет 0 оффсет.)
int health = 136; // оффсет 4 (0x4) (прибавился размер типа предыдущей переменной `bullets_shot` в байтах)
int max_health = 200; // оффсет 8 (0x8) (прибавился размер типа предыдущей переменной `health` в байтах)
};
int main()
{
Player player;
// Эта часть может показаться трудной, но ты легко в ней разберешься
// после того как поймёшь устройство работы с указателями.
int* health_ptr = reinterpret_cast<int*>(reinterpret_cast<char*>(&player) + offsets::player::health);
int player_health = *health_ptr;
std::cout << "Health: " << player_health << std::endl; // Health: 136
}
и на всякий случай держи интересную для новичка (имхо) аналогию:
у тебя есть книга на 500 страниц, ты начинаешь читать книгу с первой страницы. представь, что ты почитал и остановился на 200-й странице. если бы книга была структурой данных в памяти, то "начало книги" - это начальный адрес этой структуры, а "200-я страница" - это как раз оффсет который поможет тебе быстро найти нужную страницу на которой ты остановился.
одна глава книги занимает в среднем 4 страницы, так же бывают и долгие главы по 8 страниц, а иногда даже больше (пользовательские типы и классы), имея начальную страницу книги (1-я страница) и зная кол-во страниц каждой главы (размер типа в байтах), а так же кол-во глав (кол-во переменных) мы можем найти различные главы книги, то есть: Базовый адрес объекта + оффсет = итоговый элемент
надеюсь достаточно доступно объяснил, удачи в обучении!
Вот в том то и дело. Выучив половину самого реально нужного на learncpp, на деле в сурсах чита ты встречается с совершенно будто бы другим языком. Так или иначе, выучив или нет язык тебе придётся смотреть сурсы. А тем более когда уже есть чат джпт которые сверху объяснит что к чему это еще легче
но если ты думаешь что можно пойти и сразу учить WinAPI ничего не понимая в C++, то это не так. это будет не кодинг и не написание читов, а простой "пастинг". свой код ты без знаний C++ не напишешь, это база, ты не будешь способен понять какое-либо API без понимания языка который используешь.
игра на которую ты будешь писать чит будет являться процессом, процессы создаёт операционная система (в этом случае Windows), у Windows имеется своё API для разработчиков и именно это API ты и будешь использовать. WinAPI предоставляет тебе абсолютно всё что нужно для работы с системой в целом, в него входит и тот функционал что ты описал - чтение памяти любых процессов (
), рендеринг так же можно сделать на основе WinAPI (wingdi).
нет, работа с оффсетами не относится напрямую к WinAPI. оффсет, если объяснять на пальцах, это смещение определённого поля или элемента данных внутри блока памяти. держи пример:
C++:
namespace offsets
{
namespace player
{
constexpr int bullets_shot = 0x0;
constexpr int health = 0x4;
constexpr int max_health = 0x8;
}
}
struct Player // `блок памяти` Player который содержит `элементы`
{
// Размер `int` составляет 4 байта
int bullets_shot = 12; // оффсет 0 (0x0) (начало структуры, первая переменная имеет 0 оффсет.)
int health = 136; // оффсет 4 (0x4) (прибавился размер типа предыдущей переменной `bullets_shot` в байтах)
int max_health = 200; // оффсет 8 (0x8) (прибавился размер типа предыдущей переменной `health` в байтах)
};
int main()
{
Player player;
// Эта часть может показаться трудной, но ты легко в ней разберешься
// после того как поймёшь устройство работы с указателями.
int* health_ptr = reinterpret_cast<int*>(reinterpret_cast<char*>(&player) + offsets::player::health);
int player_health = *health_ptr;
std::cout << "Health: " << player_health << std::endl; // Health: 136
}
и на всякий случай держи интересную для новичка (имхо) аналогию:
у тебя есть книга на 500 страниц, ты начинаешь читать книгу с первой страницы. представь, что самая интересная глава начинается на 200-й странице. если бы книга была структурой данных в памяти, то "начало книги" — это начальный адрес этой структуры, а "200-я страница" - это как раз оффсет который поможет тебе быстро найти нужную страницу при этом не перелистывая всю книгу с первой
надеюсь достаточно доступно объяснил, удачи в обучении!