Перейти к содержанию

не могу содать тренер


Рекомендуемые сообщения

Здраствуйте хотел спросить создаю тренер пашет ну стоит игру закрыть и тренер, запустить игру и тренер уже не работает тренер в игре как сделать чтоб работало ????

еще хотел спросить как можно открыть dll файл и минять там ?

Ссылка на комментарий
Поделиться на другие сайты

FLS смотри я закрыл игру и тренер полностю запускаю занова игру потом тренер и тренер в игре уже не работает как я узнавал чтот с адресом так както динамический адрес вроде

а на щет dll де можно найти отладчик ?

Ссылка на комментарий
Поделиться на другие сайты

Тогда ясно, пиши скрипт.Отладчик тут можно скачать.

а как написать скрипт ??? и потом из него можно будет создать тренер ? у тебя скайп есть ?

Ссылка на комментарий
Поделиться на другие сайты

В отладчике нажимаешь-инструменты-автоассемблер-внедрение кода, и пишешь значение (денег, здоровья, патронов и т.д.). А вообще есть хорошие туториалы http://forum.gamehacklab.ru/forum/15-видео-обмана-игр-всех-категорий/

Ссылка на комментарий
Поделиться на другие сайты

ниче не понял что и как сделать чтоб тренер работал после перезапуска игры какторый создан на читэненжи

Твой вопрос - вопрос новичка,а новичкам стоит читать форум,прежде чем задавать вопросы.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Так как ты не описал свои действия точно и не привёл ни названия игры ни исходников трейнера, буду тыкать пальцем в небо:

Итак, первое:

Игра хранит все нужные ей для работы значения (патроны, жизни, уровень здоровья и вообще всё) в переменных. Эти переменные хранятся в оперативной памяти. Представь себе вот такую картинку:

0x1: 10
0x2: 200
0x3: 150
0x4: lalala
0x5: tratata

Левая колонка - это адреса, приставка "0х" означает, что они записываются в шестнадцатеричной системе счисления. Правая колонка - значения переменных - жизни, патроны или что угодно ещё. Например, по адресу 0x2 игра хранит 200 жизней игрока.

В программе поиска (Artmoney, Cheat Engine, TSearch, MHS - не важно) ты находишь нужный тебе адрес, что ты уже успешно и сделал, как я понимаю. Создаёшь трейнер, который будет писать, скажем, в адрес 0х2 1000 жизней. Дальше ты игру перезагружаешь. И смотри, что происходит:

Было так:

0x1: 10
0x2: 200 <- адрес жизней
0x3: 150
0x4: lalala
0x5: tratata

Стало так:

0x7: 10
0x8: 200 <- [b]новый[/b] адрес жизней
0x9: 150
0x10: lalala
0x11: tratata

Адрес жизней изменился после перезапуска игры и, соответственно, по старому адресу, куда трейнер пытается писать, теперь может находиться любое другое значение.

Почему это происходит? А происходит это из-за гадкой и противной штуковины под именем Dynamic Memory Allocation, она же DMA, она же - Динамическое Распределение Памяти, если у тебя туговато с техническим английским. Её краткий смысл в том, что операционная система (в нашем случае - MS Windows) при запуске каждого нового приложения выдаёт ему кусок памяти, начинающийся со случайного адреса. Проще говоря, каждый запуск игры адреса всего и вся в ней будут меняться.

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

Вот тебе пара полезных ссылок: Раз и Два.

Ссылка на комментарий
Поделиться на другие сайты

вот ты как щяс написал так оно и есть я гляну 2 урок что ты кинул там есть ришения проблемы этой ?

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

Ссылка на комментарий
Поделиться на другие сайты

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

спасибо гляну добавь меня в скайп если можно там если что спрошу

Ссылка на комментарий
Поделиться на другие сайты

keng глянул и первый урок там ты нажимал в туториал на change value и у тебя там появилося в другом окне 2 значения просто mov и mov eax вот у меня только нашло mov а mov eax не нашло вопще что может быть ?

скрин в лс кинул

Ссылка на комментарий
Поделиться на другие сайты

keng глянул и первый урок там ты нажимал в туториал на change value и у тебя там появилося в другом окне 2 значения просто mov и mov eax вот у меня только нашло mov а mov eax не нашло вопще что может быть ?

скрин в лс кинул

Я честно не помню, что там конкретно было в моём видео, но давай судить по твоему скриншоту:

7c9284a71eca.jpg

1. Ты внимательно прочитал текст, который в окне обучалочки написан? Если не очень, то попробую освежить:

Слово "указатель" нужно понимать буквально. В самом простом случае он выглядит примерно вот так:

0x123 + 0x15

Где первый адрес называется базовым адресом, а второй - смещением относительно базового адреса. Логика тут в том, что операционная система при загрузке игры выдаёт ей вместе с куском памяти первый адрес этого куска, а дальше игра уже распределяет все свои переменные в этом куске относительно этого начала (базового адреса).

При поиске указателя происходит обратный процесс - надо найти адреса, которые ссылаются на этот и их смещения. Прелесть указателей в том, что после перезапуска они меняться не будут.

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

У тебя твой адрес читается вот такой инструкцией:

mov [ebx+18], edi

Чуть ниже СЕ тебе подсказывает, что адрес указателя (по мнению СЕ) лежит в регистре ebx и равен 0х00973830. Ты пишешь на бумажку этот адрес, пишешь рядом смещение (+18), делаешь новый поиск hex-значения (нужно поставить галочку рядом с окном ввода в СЕ). Ищешь "00973830", целое 4 байта. Он тебе выдаст список адресов, хранящих этот. Фиг знает, как без тавтологии объяснить. Дальше нужно нажать кнопку "Add address manually", вписать там адрес, хранящий найденный указатель, поставить галочку "Pointer" и рядом с введённым адресом ввести смещение (18). Эта штуковина и будет указателем 1-го уровня.

Посмотри видео внимательно и так же внимательно почитай текст в обучающей программе - там всё достаточно просто описано, я так не умею.

Изменено пользователем Kvazimado
Для скринов есть такая фишка - спойлер. Впредь, прошу скрывать скрины под данную фишку.
Ссылка на комментарий
Поделиться на другие сайты

keng смотрел видео до средины а потом звук начал спешить ты еще одно делаешь а звук уже другое половину не понял у тебя тоже такое ??

Да, в первых уроках был небольшой косяк с синхронизацией аудио- и видеопотоков, потом я это исправил. Первые уроки придётся смотреть так, увы.

Ссылка на комментарий
Поделиться на другие сайты

Да, в первых уроках был небольшой косяк с синхронизацией аудио- и видеопотоков, потом я это исправил. Первые уроки придётся смотреть так, увы.

кинь на норм видео со звуком которое ты исправил

Ссылка на комментарий
Поделиться на другие сайты

Так. boss задает слишком много вопросов, которые свойственны не просто новичку, а совсем зеленому юнцу. Ему следует читать темы форума, также следует для начала приобрести хотя бы элементарные навыки геймхакинга, которых у него точно нет, если он даже не знает о том, что такое DMA (ДМА). Тема закрыта. При открытии еще одной подобной темы уровень предупреждений топикстартера будет повышен. О том, чем грозит повышение уровня предупреждений, можно прочитать в правилах нашего форума. Да, и еще, хоть это не запрещено правилами форума (думаю внести данную поправку), но вопиющая безграмотность и отсутствие каких-либо знаков препинания сильно затрудняют чтение и осмысление постов. Поэтому, boss, потрудитесь хотя бы включить проверку орфографии в своем браузере.

Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.