Comments 7
Интересный, подробный пост, спасибо.
Не могли бы рассказать как/чем модифицировать/смотреть код игр, защищенных с помощью il2cpp? Сейчас многие игры на Unity защищают им, не только на мобилках, но и на ПК.
Не могли бы рассказать как/чем модифицировать/смотреть код игр, защищенных с помощью il2cpp? Сейчас многие игры на Unity защищают им, не только на мобилках, но и на ПК.
К сожалению, про il2cpp ничего не знаю. И BepInEx и BSIPA работают с Mono и .NET сборками.
Для просмотра IL2CPP кода подойдет любой дизассемблер (IDA Pro?), в таком билде бинарник, собранный из C++ кода, который еще наверняка усложнен оптимизациями компилятора, удобного IL кода там уже не доступно.
С модификацией тоже явно будет сложнее по тем же причинам (если вообще возможно адекватно это делать).
Опыта в этом всем почти не было (кроме не очень успешных попыток изучать полученный билд своих тестовых проектов).
Тоже было бы интересно узнать, как с этим обстоят дела. Жаль, если это в итоге убьет моддинг.
С модификацией тоже явно будет сложнее по тем же причинам (если вообще возможно адекватно это делать).
Опыта в этом всем почти не было (кроме не очень успешных попыток изучать полученный билд своих тестовых проектов).
Тоже было бы интересно узнать, как с этим обстоят дела. Жаль, если это в итоге убьет моддинг.
il2cpp это не совсем защита — это компиляция в нативный бинарник для соответствующей платформы. С учётом грядущего появления (пока что оно в альфе) нативной компиляции «из коробки» — скоро с модами будет совсем туго. С другой стороны — скорость исполнения кода вырастает в разы, так что грех жаловаться…
Вот такой мод было бы интересней
Miniature Beat Saber by Daniel BeauchampMiniature Beat Saber by Daniel Beauchamp
Posted by TopVR on Teisipäev, 12. mai 2020
Тут мы подходим к одному серьезному ограничению при разработке модов для 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.
Как разрабатываются моды для Unity-игр: пишем свой мод