Comments 7
Интересный, подробный пост, спасибо.
Не могли бы рассказать как/чем модифицировать/смотреть код игр, защищенных с помощью il2cpp? Сейчас многие игры на Unity защищают им, не только на мобилках, но и на ПК.
Не могли бы рассказать как/чем модифицировать/смотреть код игр, защищенных с помощью il2cpp? Сейчас многие игры на Unity защищают им, не только на мобилках, но и на ПК.
+1
К сожалению, про il2cpp ничего не знаю. И BepInEx и BSIPA работают с Mono и .NET сборками.
0
Для просмотра IL2CPP кода подойдет любой дизассемблер (IDA Pro?), в таком билде бинарник, собранный из C++ кода, который еще наверняка усложнен оптимизациями компилятора, удобного IL кода там уже не доступно.
С модификацией тоже явно будет сложнее по тем же причинам (если вообще возможно адекватно это делать).
Опыта в этом всем почти не было (кроме не очень успешных попыток изучать полученный билд своих тестовых проектов).
Тоже было бы интересно узнать, как с этим обстоят дела. Жаль, если это в итоге убьет моддинг.
С модификацией тоже явно будет сложнее по тем же причинам (если вообще возможно адекватно это делать).
Опыта в этом всем почти не было (кроме не очень успешных попыток изучать полученный билд своих тестовых проектов).
Тоже было бы интересно узнать, как с этим обстоят дела. Жаль, если это в итоге убьет моддинг.
0
il2cpp это не совсем защита — это компиляция в нативный бинарник для соответствующей платформы. С учётом грядущего появления (пока что оно в альфе) нативной компиляции «из коробки» — скоро с модами будет совсем туго. С другой стороны — скорость исполнения кода вырастает в разы, так что грех жаловаться…
0
Вот такой мод было бы интересней
Miniature Beat Saber by Daniel BeauchampMiniature Beat Saber by Daniel Beauchamp
Posted by TopVR on Teisipäev, 12. mai 2020
0
Тут мы подходим к одному серьезному ограничению при разработке модов для Unity-игр — у нас нет редактора Unity.
В чем проблема сделать все что нужно в редакторе и сохранить в Asset Bundle? А затем из кода мода подгрузить ваш canvas через
var bundle = AssetBundle.Load(...);
var prefab = bundle.LoadAsset<GameObject>(...);
var instance = Instantiate(prefab);
var canvas = instance.GetComponent<Canvas>();
0
Sign up to leave a comment.
Как разрабатываются моды для Unity-игр: пишем свой мод