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

Egor935

Пользователи
  • Публикаций

    12
  • Зарегистрирован

  • Посещение

Репутация

0 Навыки не прокачены

Информация о Egor935

  • Звание
    Пользователь
  1. А, не думал что так можно) В любом случае, выделение байтов в конце позволяет написать код любых размеров.
  2. Иногда можно изменить пару байт в инструкции, чтобы добиться нужного результата, но в этом случае места под все инструкции не хватает, поэтому и пришла в голову идея добавить байты в конце файла. Кодкейвы искать не надо, оригинальный код почти никак не изменяется (только прыжки). По сути можно писать код любых размеров, только почему в этой части файла защита страницы стоит только на "чтении", а где-то в середине кода на "чтении-выполнении". Можно каждый раз менять защиту страницы вручную через СЕ, но тогда смысла от того, что код встраивается непосредственно в сам файл, никакого нет. Не знаешь где эта защита страниц находится, может указывается какими-то байтами? Никогда с подобным не сталкивался.
  3. Да нет, так и задумано, я меняю значение на 4 байта выше. Тут проблема в другом.
  4. Игра 64 бит, Unity, il2cpp. Я хочу встроить СЕ'шный скрипт в кодовый файл игры, просто выделив дополнительные байты в конце файла и написав там свой код, на который будет происходит прыжок с нужной инструкции. То есть идея заключается в том, что код скрипта будет байтами прописан непосредственно в самом файле, и автоматически будет загружаться при запуске игры. Я всё делал по тому же принципу, что и при активации скрипта: выделяется дополнительная память, в ней прописывается определённый код любых размеров с обратным прыжком на конце, и соответственно, нужная инструкция в оригинальном коде заменяется прыжком на выделенную память, при необходимости дополняясь nop'ами. Проблема заключается в том, что игра просто вылетает при выполнении первой инструкции в "выделенной памяти" (проверил отладкой), сама же память в конце нигде оригинальным кодом не используется, поэтому в теории это даёт возможность написать код любых размеров, поскольку при физическом добавлении байтов в конце файла, игра нормально запускается и всё функционирует как надо. Может я что-то не учёл, поскольку не знаю каким образом СЕ выделяет память для прыжка при активации скриптов, или мешаются nop'ы перед кодом в "выделенной памяти", хотя они никак не задействуются. Прошу помочь с решением данной проблемы или объяснить почему так нельзя сделать.
×
×
  • Создать...

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

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