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

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


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

Всем привет!

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

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

 

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 Еще вариант: отловить момент загрузки исходного файла, и шагать пошагово в  ходе его загрузки и компиляции. Но это сложно.

 

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

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

×
×
  • Создать...

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

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