@Newbieee

Что такое offset и как обратиться к информации что хранится в нём?

У меня имеется оффсет: 0x0264FEF8 по которому (или в котором) должен храниться массив всех возможных цветов главного меню тестового ПО.
К примеру, цветом заднего плана меню установлен белый, он хранится под номер "0", но я хочу поставить зеленый, а он хранится под номером "3".
Каким образом получить доступ к этому массиву имея "оффсет" и руками выбрать приемлемый цвет, а также что такое offset и с чем его "едят"?
  • Вопрос задан
  • 3433 просмотра
Пригласить эксперта
Ответы на вопрос 4
freeExec
@freeExec
Участник OpenStreetMap
0x0264FEF8 + (размер элемента цвета) * (индекс цвета)
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
Для начала разобраться, смещение в чём и относительно чего
Ответ написан
Комментировать
@res2001
Developer, ex-admin
offset - смещение (от какого-то базового адреса).
Т.е. адрес вашего объекта вычисляется так: base address + offset.
Осталось узнать базовый адрес и можно работать с цветами.
Ответ написан
Комментировать
dollar
@dollar
Делай добро и бросай его в воду.
Что такое offset?

"offset" - в данном контексте это адрес массива в памяти.

Теоретически элементы в этом "массиве" не обязаны храниться в памяти аналогичному тому, как это происходит в C++, потому что в Lua любой "массив" - это на самом деле хеш-таблица, и может содержать элементы разных типов.

Как обратиться к информации, что хранится в нём?

Зависит от того, чем именно вы хотите обратиться, какие у вас средства. Например, если Lua встроен в ваше же собственное приложение, из которого вы и хотите получит доступ, то лучше делать это средствами API самого Луа, то есть вынимать нужный элемент из таблицы и получать его на блюдечке.

Если же вы хотите прочитать память другого процесса, то по сути это взлом и универсальных рецептов здесь не может быть.
Можете изучить память того приложения каким-нибудь образом, можно теми же утилитами для читов в играх - ArtMoney или более серьёзный аналог CheatEngine. Изменяя цвет в самом приложении, ищите его в памяти, пока не найдёте точный адрес. А дальше смотрите, как он устроен, от чего зависит и т.д.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы