Перейти к содержанию
БабаЯГА

Не могу найти значение (значение могу менять в исходниках игры)

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

Всем привет!

Помогите, пожалуйста.

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

 

orientation    = -1, -2, -3                                                           ; не найдены (тип данных - неизвестен, не могу найти)
position    = -0.5555552, -0.5555552, -0.5555552     ; найдены(float, не базовые адреса) 1C7CF3B4 1C7CF3B8 1C7CF3BC
zoom_rotate_x    = -0.666                                                     ; найдены(float, не базовые адреса)  1C7CF430
zoom_rotate_y    = -0.777                                                     ; найдены(float, не базовые адреса)  1C7CF434
zoom_offset    = -0.888, -0.888, -0.888                           ; найдены(float, не базовые адреса)  1C7CF438 1C7CF43C 1C7CF440

 

всё нашёл кроме параметра orientation. Для orientation пробовал все типы данных.

Подозреваю, что это возможно структура, но визуально в редакторе памяти не увидел ...

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

Помогите, подскажите. Заранее благодарен. 

Изменено пользователем БабаЯГА

Поделиться сообщением


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

Из сказанного тобой не понятно, лежит ли orientation рядом с position. Если в исходниках он лежит рядом, то и в памяти тоже будет лежать рядом. Следовательно, тебе достаточно в памяти найти position, и рядом будет лежать orientation.

  • Понравилось 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, Xipho сказал:

Из сказанного тобой не понятно, лежит ли orientation рядом с position...

Спойлер

 

В исходниках именно так как я и писал, вот так идут значения:

   

   orientation    = 1, 2, 3
   position    = 0.1, 0.2, 0.3
   zoom_rotate_x    = 0.1
   zoom_rotate_y    = 0.1
   zoom_offset    = 0.1, 0.2, 0.3

 

в таком же порядке они идут и в памяти.

 

 

 

5 часов назад, Xipho сказал:

Если в исходниках он лежит рядом, то и в памяти тоже будет лежать рядом. Следовательно, тебе достаточно в памяти найти position, и рядом будет лежать orientation.

 

Спойлер

Так и есть, все эти значения рядом. Т.к. я вообще не силён в CE то я так и искал -> поменял значение в position в исходнике на уникальное и нашёл в памяти, потом другое и т.д. Но вот с orientacion - проблема. Я менял значения orientation, а потом просто делал скриншёты памяти рядом со значением position - сверху и снизу, сравнивал картинки и смотрел что изменилось... Наверное это тупо, но по другому я не умею :(  Так вот, вчера я таким способом нашёл orientation, оказалось, что там каждому значению в исходнике соответствует два значения в памяти, более того, одно (+) другое минус, более того, значение в памяти в радианах, а значение в исходниках - в градусах. Например, если в orientation первое значение =2 то в памяти это будет  =0.03  и  =-0.03 , через CE я наверное не нашёл бы orientation никогда ... Но  ведь должно же быть значение в памяти, как и в исходнике? Или я ошибаюсь? Плюс, значения которые я понаходил - это не базовые адреса, они меняются при каждой перезагрузке игры. Как найти базовые в данной игре и в данном случае - не могу понять, т.к., как можно отсеять значение в CE которое постоянное и не изменяется ни при каких обстоятельствах? Посмотрел на вашем ютуб-канале много видео, особенно про автоматический поиск указателей, нашёл конечных 42 шт. адресов, вроде бы базовые, все добавил в таблицу, пару раз перезашёл на уровни, пару раз в игру и всё слетело, ни один адрес не оказался базовым, хотя ставил 5 уровней указателей. Кстати, автоматический поиск указателей не работает на версиях CE новее чем 6.4 - перепробовал все, заработал только на 6.4 (может это только у меня так, я не знаю).

А вообще, конечно, было бы хорошо, если бы мне кто-нибудь помог в поисках. Я вот понимаю, что эти данные - это 99% - структура, но как найти её в памяти? 

 

Для чего мне всё это надо?

Я пишу программу для настройки HUD-а оружия в игре, эту программу я потом раздам мододелам игры на всех доступных форумах, чтобы пользовались, потому-как такой функции в игре нет, а она очень нужна. На данный момент мододелы убивают на настройку одного ствола примерно от суток до двух, с моей программой это будет занимать не больше 3-5 минут времени.

Игра:   S.T.A.L.K.E.R. - Тень Чернобыля.

 

Итак, на данный момент все адреса найдены - но мне нужны базовые адреса (зелёные), чтобы каждый раз не приходилось искать адрес, а потом подставлять его в программу. Сейчас, т.к. адреса не базовые, мне приходится каждый раз в исходнике менять одно значение на уникальное, находить его, потом подставлять в свою программу, а программа от этого найденного адреса - находит уже все остальные адреса, и так каждый раз :( Если бы у меня были базовые адреса, то CE бы больше не понадобился, программа бы сама всё делала и находила.

 

Уверен, что для знающих людей в CE - это проще пареной репы :)

Были бы деньги - я бы даже заплатил за это, но у меня их нет :(

Помогите пожалуйста найти базовые адреса.

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

 

 

Изменено пользователем БабаЯГА

Поделиться сообщением


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

Поскольку ты знаешь смещение от position, то в своей программе ты можешь искать позишн, и от полученного адреса отнимать или прибавлять смещение (раз ориентейшн выше, то, скорее всего, нужно отнимать). А с позицией ты можешь найти инструкции, которые считывают ее, и в этих инструкциях будет адрес. Смотри плейлист "Взлом игр от А до Я" на нашем канале, там есть все необходимые разъяснения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, Xipho сказал:

Поскольку ты знаешь смещение от position, то в своей программе ты можешь искать позишн, и от полученного адреса отнимать или прибавлять смещение ...

 

Это понятно :) Проблема в другом, я не могу найти orientation. Может я что-то не то написал... Попробую ещё раз.

В исходнике  orientation = 131     а в памяти оно разбивается на два значения на    0.744   и на   -0.744. Я предполагал что в исходниках задаётся значение в градусах, а в памяти пишется в радианах, но я ошибся. На этом и застрял. Мне нужен адрес в памяти, в котором хранится ОДНО значение orientation - как в исходнике, я не могу его найти. Прошу помощи.

 

5 часов назад, Xipho сказал:

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

 

Какие инструкции? Где в них будет адрес? Какой адрес? Я пересмотрел уже штук 20 видео - ничего не помогло найти orientation, поэтому я и пришёл сюда на форум - за помощью... Ткни носом в видео на вашем канале про то что ты написал:  "А с позицией ты можешь найти инструкции, которые считывают ее, и в этих инструкциях будет адрес. Смотри плейлист "Взлом игр от А до Я" на нашем канале, там есть все необходимые разъяснения."

Поделиться сообщением


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

1. Находишь position

2. Находишь инструкцию, которая работает с этим position (читает или пишет в адрес)

3. Делаешь скрипт/инъекцию на этой инструкции, но в инъекции пока ничего кроме оригинального кода не пишешь.

4. Если в исходнике orientation лежит ДО position, то и в памяти оно будет лежать где-то ДО position. 

5. В редакторе памяти открываешь адрес position, и топаешь выше по памяти и экспериментально меняешь значения. Таким образом выйдешь на нужный тебе адрес.

5.1. Или есть еще вариант - position и orientation могут быть самостоятельными структурами в структуре/классе оружия.

В этом случае от position нужно выйти на структуру оружия и исследовать указатели рядом с указателем на структуру position. 

Скорее всего, прямо предыдущий указатель и будет указателем на структуру orientation.

5.2 Еще вариант: отловить момент загрузки исходного файла, и шагать пошагово в  ходе его загрузки и компиляции. Но это сложно.

 

По первым трем пунктам у нас видео точно есть. И практически в каждом видео используется инъекция кода.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×

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

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