Каким образом создатели неофициальных мультиплееров к играм (Возьмём пример как GTA V, но вообще можно и Rust) ищут адреса в памяти которые выполняют какой-то процесс? Как сменить HP и дать денег это легко, через отсеивание значений. А вот как например отловить то, что игрок кого-то ударил, сел в машину или как отключить NPC по городу, чекпоины, спавн актера, состояния дверей в машине. Более того, куда интереснее как найти данные в памяти игры о GUI сервера. Это уже через отсеивание значений не пройдет, те же NPC это 0/1, а 0/1 может много к чему принадлежать.
Желательно с++, если он вообще тут нужен.
Я предполагаю, что надо думать в сторону дебагера, но я не уверен.
Причем тут поиск адресов памяти?
Если вы пользовались каким-нить cheatengine или Artmoney исключительно поиском по значению, и понятия не имеете как программы пишутся и что такое языки программирования, то да, дело именно в отладчиках.
Берется отладчик, декомпилируется код, подменяется своей, когда станет понятно как ее подменить.
Да, нужны навыки хорошего разработчика, с опытом реверс инженеринга, и не одного, такие вещи при отсутствии исходного кода это много человекочасов некоторой коммуны, редко одиночки.
Не совсем понял что значит "открываешь меню сервера".
Но большой опыт разработки, отладки и реверс инжинеринга позволяет разобраться в чужом продукте и найти необходимые функции, в которые можно внести свои изменения через dll-injection или даже полную подмену исполняемых файлов и библиотек.
блин, да не работают при отладке с адресами памяти.
Перехватывают обращения к стандартным функциям - отрисовка GUI же не велосипедом делается. Можно попробовать поставить брейкпоинты на разных стандартных вызовах.
Или после декомпиляции разобрать по коду функции, которые вроде выполняют нужные вещи, и ставить брейкпоинты на них, и так находить что за какой функционал отвечает. Потом уже можно функциям дать адекватные названия и работать.
Также игра может идти с расширенными библиотеками, где и имена сохранились, и тогда еще проще.
В общем сложные вещи реверсинженерятся через декомпиляцию и отладку, а не через поиск адресов.
Saboteur, извините, что пишу сюда, но у меня лимит по вопросам, странно, но я вроде писал только этот.
Я пытаюсь сохранить Png на диск, но по какой-то причине не сохраняется.
Я сохранял в буфер и всё было хорошо, картинка действительно была такой,,какой нужно.