Lucky
Хорошо, что уже завтра на работу!
Snusmumriken
У меня на работе коллега в 0:20 чинил упавший сервер.
Lucky
Хех, я вчера рядом с накрытым столом писал фикс.
⛧ nothing87889381828780
боты
⛧ nothing87889381828780
уйдите
Aiwan \ (•◡•) / _bot
не удаляй
Aiwan \ (•◡•) / _bot
дай скрин тогда, я тоже их чищу у себя
Snusmumriken
М? Какой скрин?
Aiwan \ (•◡•) / _bot
М? Какой скрин?
портянка из никнеймов "мария ... теперь в группе"
Anonymous
Всем привет парни,всех с новым годом )
Anonymous
Я конечно не знаю,по адресу ли... может кто что дельное подскажет.
Anonymous
Я взламываю игру с помощью GameGuardian на Android
Anonymous
Есть в памяти значения отвечающие за цены и т.д., не суть
Anonymous
Были они сначала просто обычными видимыми числами в DWORD
Anonymous
К примеру вот цена объекта
Anonymous
Anonymous
Anonymous
А ниже нее так называемые коды безопасности
Anonymous
Anonymous
Гененирующиеся динамически при каждом запуске игры
Anonymous
В других параметрах так же динамически генерируемые при каждом запуске/изменении номинального значения
Anonymous
И подменить их было довольно просто
Anonymous
Взяв аналогичную конструкцию откуда нибудь из памяти
Anonymous
Например цену того же объекта в другой валюте (0)
Anonymous
Anonymous
Отмечая первое номинальное значение и 3,4
Anonymous
Anonymous
Anonymous
Но в недавних обновлениях это прикрыли
Anonymous
И пол беды вычислить нужные значения в памяти, т.к. они теперь нечитаемы ,шифрованы
Anonymous
Теперь к примеру та же конструкция где число 50000 выглядит так:
Anonymous
Anonymous
А это уже тот же ноль (цена в другой валюте) что был раньше
Anonymous
Anonymous
И подмена теперь не работает что бы я ни пробовал.
И в разных типах данных подменять значения(qword/float/double ....)
Anonymous
И в разном порядке, и меняя числа , итог один - вылет игры
Anonymous
Раньше такое было только если неправильно подменять
Anonymous
Так же заметил еще:
- 1,2 значения повторяются в памяти,там где используется тот же номинал
Anonymous
А вот 3,4 уже стали уникальными,только по этому адресу
Anonymous
Так же если перевести это все в тип double
Anonymous
И меняя значения на 0 - меняется соседнее. Тоесть допустим обнуляя первое - обнуляется первое и второе значение
Обнуляя второе обнуляется 1,2,3
Т.е. каким то образом они трассируют друг друга
Anonymous
В оригинале:
Anonymous
Anonymous
Dword
Anonymous
Anonymous
Меняем первое в double на 0
Anonymous
Anonymous
Anonymous
Меняется и второе в double приобретая другое значение,а в dword становится 0
Anonymous
Меняя второе :
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Третье и четвертое соответственно
Anonymous
Anonymous
Anonymous
Так же раньше я не обращал внимания,но всегда присутствовал 0 в dword перед первым значением в конструкции
Anonymous
А в double и qword он имел значение
Anonymous
Обнуляя которое соответственно меняется что то ниже
Anonymous
Anonymous
Anonymous
Исходя из этого вопрос,может кто в практике сталкивался с чем либо подобным... что это вообще такое,что за система обфускации/защиты,по какому принципу работающая и как с ней бороться))))
Anonymous
Может кому станет интересно
.. а за помощь и достижение результата готов подогреть интерес материально
Anonymous
Извиняюсь если сильно оффтопнул 🥶
Уже просто не первый месяц бьюсь над этим и сломал себе весь мозг
Anonymous
А
И забыл добавить, если взять подменить тупо аналогичную конструкцию, некоторые значения изменяются сами по себе
Исходя из этого думаю о привязке к адресу и генерации какого то кода
Leon174
Пока остальные коматозятся, отвечу от себя – можешь сразу удалить свою писанину. К Луа никакого отношения не имеет, взломы здесь не обсуждаются и не приветствуются. Юный Вертер должен страдать в другом месте.
Alxius
ну и портянка
Anonymous
Контрольные суммы и тому подобное
Anonymous
æxsfɨxꙮ
Чисто теоретически. Можно узнать их смещение в памяти и обращаться не к значениям через поиск а к адресам памяти.
Stas
æxsfɨxꙮ
æxsfɨxꙮ
Любое значение подключено к библиотеке
æxsfɨxꙮ
libil2cpp.lib
æxsfɨxꙮ
Есть программа. li2cpp dumper
æxsfɨxꙮ
С помощью нее можно разобрать
æxsfɨxꙮ
Библиотеку на длл