-
Постов
4 023 -
Зарегистрирован
-
Победитель дней
42
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент Xipho
-
Прежде чем спрашивать, надо немного мозгами пошевелить и зайти в сам файл, если в теме версия не указана. При генерации темы в заголовок версия не попадает.
-
В общем, судя по всему, ты совершенно ничего пока не понимаешь в программировании трейнеров. Ты использовал функцию записи в память. А что это за адреса, в которые ты пишешь? За что они отвечают? Судя по твоему же скрину выше, у тебя должно быть считывает цепочки указателей, и запись в финальный адрес. Но в коде у тебя совершенно другое. В общем, смотри. На твоем скрине я выделил "отправной" адрес, с которого нужно начинать считывать цепочку указателей Алгоритм следующий: 1. Находишь базовый адрес модуля (NFS.exe, или как он там у тебя прописан в том поле ввода, которое я указал). 2. К нему прибавляешь первое смещение (005352B0 на твоем скрине). Это получится базовый статический адрес указателя 3. К базовому статическому указателю прибавляешь первый оффсет (у тебя это 4). Из полученного адреса считываешь значение. 4. К полученному значению прибавляешь следующий оффсет (у тебя он тоже равен четырем). Из полученного адреса снова считываешь значение. 5. К этому значению добавляешь следующей оффсет (у тебя это АС). Из полученного адреса считываешь следующее значение 6. К этому значению добавляешь следующий оффсет (80 в хексе (! это важно) и последний уровень). Из полученного адреса считываешь значение. Это будет твой адрес закиси (нитро) 7. В этот полученный адрес записываешь нужное число (буфер у тебя правильный) с помощью WriteProcessMemory. Все эти шаги нужно, естественно, выполнять в цикле, поскольку ты хочешь заморозить закись, а не заполнить ее один раз. Чтобы запустить этот цикл независимо от основного потока выполнения (а это нужно, иначе будет криво работать) тебе нужно будет написать функцию, и создавать с этой функции поток. Но это уже программирование, и про это тебе придется почитать самостоятельно. Кстати, если посмотреть на твой скрин, то там четко будет видно вычисление всех уровней указателя по тому алгоритму, что я описал (справа от оффсетов показаны цифры вычисления). Действуй, и все у тебя получится
-
Тебе @JustHack в посте выше почти напрямую намекнул. Я же скажу без намеков. while (!GetAsyncKeyState(VK_F7)) { WriteProcessMemory(handle, (LPVOID)0x00692A96, lpBuffer, sizeof(lpBuffer), NULL); WriteProcessMemory(handle, (LPVOID)0x00692AFA, lpBuffer, sizeof(lpBuffer), NULL); } В этом куске кода логика следующая: Выполнять запись в два адреса, пока не будет нажата клавиша F7. То есть, после запуска, у тебя постоянно будет идти запись в вышеуказанные адреса. Но как только ты нажмешь F7, сразу произойдет выход из цикла и больше ничего писаться не будет. Ошибку в логике видишь?
-
Если тебе нужно готовое решение, то тебе в раздел "Платные запросы". Но за 100р вряд ли кто-то возьмется.
-
Ты либо не смотрел, либо не захотел понять видео. 1. Можно протрассировать код, и посмотреть, где инструкции расходятся для твоего игрока, и для врага. 2. Расхождение будет однозначно, потому что для игрока нужно вывести здоровье на экран, а для врагов в этом нет необходимости. 3. Есть вариант найти все виды урона, и всех их протрассировать и найти, где код разветвляется. 4. Можно пойти по тому пути, по которому часто идет @Garik66 в своих видео, а именно - сделать многоступенчатый фильтр. Как его делать - смотри в его видео.
-
Таким образом ты найдешь адрес ячейки инвентаря. И, соответственно, когда будешь экспериментировать с идентификаторами предметов, они буду меняться именно в этой ячейке. Но после перезапуска игры придется адрес ячейки искать заново.
-
Это потому, что в СЕ нужно задать полный диапазон адресов, и можно убрать выравнивание по 4-байтной границе. Артемон делает поиск без выравнивания, потому в эмуляторах находит лучше. Менять предметы в какой-то ячейке инвентаря, и искать неизвестное, изменилось/не изменилось. Таким образом выйдешь на память, отвечающую за ячейку инвентаря. Ну и там можно экспериментировать с разными значениями, или поискать в интернете ID предметов для данной игры.
-
@SerVick трейнеры нужно публиковать в файловый архив. Поинтересуйся у @LIRW, как это правильно делать. Ps: Да да да... пиши мне, всё расскажу и покажу. (Женька) ?
- 3 ответа
-
- 1
-
-
Это просто какая-то жесть. Мои глаза отказываются это читать, а мой мозг отказывается это воспринимать...
-
Все зависит от количества уровней указателя. Чем больше уровней - тем дольше поиск.
-
Ни в одном из уроков я не создавал переменные в адресном пространстве СЕ. Я создавал переменные в адресном пространстве игры, только с помощью автоассемблера СЕ я делал ссылки на этот адрес в таблице.
-
Начнем с вопроса наводящего. В каком адресном пространстве ты хочешь создать этот адрес? В адресном пространстве игры? В адресном пространстве СЕ?
-
Я, если честно, не понял вопроса. Но одобрю, посмотрим, как будет развиваться эта тема.
-
У нас на канале вот такая картина:
-
Нельзя. Во-первых, указатель, скорее всего, перестанет работать, как только ты переустановишь систему. Во-вторых, если указатель заработает на другом компе - это если очень сильно повезет. В-третьих, для написания скрипта используются прыжки с оригинальных инструкций кода игры на свой написанный код. Без знания этих инструкций, с одними только указателями, скрипт написать невозможно. Можно написать только что-то вроде замораживалки адреса, но работать она будет, скорее всего, весьма нестабильно. Так что, если ты не указываешь, что за игра, помочь мы вряд ли чем-то сможем. И еще, я помню, в группе Вконтакте ты настаивал, что вопрос не относится к какой-либо игре, и вопрос больше сферический. А теперь оказывается, что все-таки относится к какой-то конкретной игре. Посему тему закрываю, создавай новую с указанием игры, чтобы тебе могли помочь. Ну а если не хочешь указывать игру, возись сам, помочь мы вряд ли сможем.
-
Новое видео обязательно будет, но не раньше воскресенья. В субботу у сынишки ДР, не до записи видео будет )
-
Вот опять. Почему тема создана в нарушение правил? Как заголовок темы отображает краткую суть вопроса? Название темы должно было быть что-то вроде "Нет доступа в раздел Трейнеры". Или еще что-то в этом духе. А за "безобразие" я начну выдавать преды. Достали, блин.
-
Сначала игру запустить, затем трейнер.
-
Хоспаде, ну почему вы, не зная абсолютно ничего во взломе игры и программировании на С++, лезете в исходники? Ну не сможете вы в них разобраться без знаний. Не сможете. И любой ответ на вышеуказанный вопрос повлечет за собой шквал дополнительных вопросов. Поймите вы уже наконец, что наличие исходника чита никак не поможет этот самый чит создать, если вы не разбираетесь, как это делается. ЗЫ. И да, знания русского языка тоже лишними не будут, а то плакал кровавыми слезами, пока читал.