Pull to refresh

Comments 7

Интересный, подробный пост, спасибо.
Не могли бы рассказать как/чем модифицировать/смотреть код игр, защищенных с помощью il2cpp? Сейчас многие игры на Unity защищают им, не только на мобилках, но и на ПК.
К сожалению, про il2cpp ничего не знаю. И BepInEx и BSIPA работают с Mono и .NET сборками.
Для просмотра IL2CPP кода подойдет любой дизассемблер (IDA Pro?), в таком билде бинарник, собранный из C++ кода, который еще наверняка усложнен оптимизациями компилятора, удобного IL кода там уже не доступно.
С модификацией тоже явно будет сложнее по тем же причинам (если вообще возможно адекватно это делать).
Опыта в этом всем почти не было (кроме не очень успешных попыток изучать полученный билд своих тестовых проектов).
Тоже было бы интересно узнать, как с этим обстоят дела. Жаль, если это в итоге убьет моддинг.
il2cpp это не совсем защита — это компиляция в нативный бинарник для соответствующей платформы. С учётом грядущего появления (пока что оно в альфе) нативной компиляции «из коробки» — скоро с модами будет совсем туго. С другой стороны — скорость исполнения кода вырастает в разы, так что грех жаловаться…
Тут мы подходим к одному серьезному ограничению при разработке модов для Unity-игр — у нас нет редактора Unity.

В чем проблема сделать все что нужно в редакторе и сохранить в Asset Bundle? А затем из кода мода подгрузить ваш canvas через


var bundle = AssetBundle.Load(...);
var prefab = bundle.LoadAsset<GameObject>(...);
var instance = Instantiate(prefab);
var canvas = instance.GetComponent<Canvas>();
Можно и так, но координаты все равно придется выбирать наугад, так как не известно, как этот префаб ляжет в существующие сцены. Или известно? Я просто сам могу всего не знать и ошибаться.
Sign up to leave a comment.

Articles