Страница 1 из 1

Исходники проекта на Unity3D (скрипты) из Assembly-CSharp.dl

СообщениеДобавлено: 28 апр 2014, 19:09
Izaron
Для начинающих :-B
Писал еще давно на другом форуме

Вы знаете способ получить исходники абсолютно любого скомпилированного проекта на Unity3D? (в частности, любые проекты на C# тоже можно декомпилить)
Обратите внимание - получить проект со всеми сценами и картинками нельзя, но можно получить скрипты на C#

Для начала скачиваем ILSpy - .NET декомпилятор
Скриншот IDE

Скрытый текст:
s1.png


exe-шники, чей исходный код написан чисто на C#, декомпилить очень легко - жмем "File" -> "Открыть", и выбираем exe.

Исходники, если они не защищены, сразу становятся доступными

Скрытый текст:
s2.png


Но что делать с exe из Unity3D? Они не могут нормально декомпилироваться
Но он нам и не нужен. Для запуска Unity3D проекта, кроме exe, в одной папке с ней должна лежать папка "НазваниеПроекта_Data", к примеру, "Project_Data"

Все скрипты компилируются в файл, который находится по адресу - "НазваниеПроекта_Data" -> "Managed" -> "Assembly-CSharp.dll", т.е. в dll
Открываем с помощью ILSpy Assembly-CSharp.dll, и все - весь исходный код теперь в нашем распоряжении

Скрытый текст:
s3.png



Мегабонус - скачал Bad Piggies на PC, декомпилил

Скрытый текст:
s4.png


Скрытый текст:
s5.png



Для удобного сохранения файла, выберите нужный класс в программе декомпилятора и нажмите Ctrl+S, выберите папку для сохранения cs файла ;)

Спасибо! Используйте обфускаторы для защиты от ломахеров :D

Re: Исходники проекта на Unity3D (скрипты) из Assembly-CSharp.dl

СообщениеДобавлено: 29 апр 2014, 18:34
BenjaminMoore
получить проект со всеми сценами и картинками нельзя

неверное утверждение, в случае с веббилдам, можно восстановить весь проект целиком
в других случаях можно получить все ресурсы из игры

Re: Исходники проекта на Unity3D (скрипты) из Assembly-CSharp.dl

СообщениеДобавлено: 10 июл 2014, 20:43
HostGameStodios
Стырю AI слендера из THEArrival :)) или AI из slendytubbies. А модели нельзя втащить да?Если можно будет вообще :ymparty: пати...Блин...Если б можно было полностью исходник с картами, звуками, скриптами, моделями и текстурами то вообще збс 8-x

Re: Исходники проекта на Unity3D (скрипты) из Assembly-CSharp.dl

СообщениеДобавлено: 10 июл 2014, 21:33
cibersant
unity надо сначало декомпилить,что бы выдрать dll и т.д.,а вот потом ilspy использовать,для декомпила кода.

Re: Исходники проекта на Unity3D (скрипты) из Assembly-CSharp.dl

СообщениеДобавлено: 06 сен 2014, 03:39
akad
Возникла необходимость добавить небольшой функционал в одну бесплатную демку. Всякие ILSpy/.NET Reflector и пр. выдают код, который потом обратно в dll не собирается. Что-то типа:
Синтаксис:
Используется csharp
                BAnimationTrigger.<WaitThenDoThings>c__Iterator0 <WaitThenDoThings>c__Iterator = new BAnimationTrigger.<WaitThenDoThings>c__Iterator0();
                <WaitThenDoThings>c__Iterator.time = time;
                <WaitThenDoThings>c__Iterator.<$>time = time;
                <WaitThenDoThings>c__Iterator.<>f__this = this;
                return <WaitThenDoThings>c__Iterator;

или
Синтаксис:
Используется csharp
    private sealed class <WaitThenDoThings>c__Iterator0 : IEnumerator, IDisposable, IEnumerator<object>
    {
        internal object $current;
        internal int $PC;
        internal float <$>time;
        internal BAnimationTrigger <>f__this;
        internal float time;
...

Полагаю она накрыта чем-то, что перекорёжило имена переменных. Местная утилитка Unpacker Tools тоже не справилась. Имена переменных уже не $, но куча проблем с синтаксисом, которые я местами даже не представляю как поправить. Т.е. dll обратно все равно не собирается. Какие есть ещё варианты? На всякий случай сама демка:
Скрытый текст:

Re: Исходники проекта на Unity3D (скрипты) из Assembly-CSharp.dl

СообщениеДобавлено: 06 сен 2014, 10:18
Golandez
Вариантов нет, это код после обфускации.

Re: Исходники проекта на Unity3D (скрипты) из Assembly-CSharp.dl

СообщениеДобавлено: 07 сен 2014, 02:38
akad
Вариантов нет, это код после обфускации.

Есть же куча деобфускаторов. Или они не работают для юнити?
Ведь на сколько мне известно, "совершенно любой" обфускатор работать не будет для проекта юнити, так как нарушит пространство имён. И был вроде всего один полурабочий и заброшенный - Unity3dObfuscator. Больше нет. Неужели для него не изобретено противоядие? Или есть ещё какие-то?

Re: Исходники проекта на Unity3D (скрипты) из Assembly-CSharp.dl

СообщениеДобавлено: 16 окт 2014, 22:54
kolya9898
Браво!! :D (popcorn) :-?
Как же я сразу не додумался, может мне весь шутер выложить свой который я делал год???
Прям исходники unity сцены..

Вы такие умные..... Хотите свое(типо) сделать скачав готовые исходники и потом присвоить себе права....
Давайте все будут делать и выкладывать исходники или декомпиляторы рабочие..
А вы будете забирать и переделывать под себя игры...
Может исходники тюряги,голос припяти,блокады выложат сохдатели? За которые они получают миллионы... Работав при этом 1-2 года? А что скажете новички и халявщики? Вам стыдно должно быть! (P)

Re: Исходники проекта на Unity3D (скрипты) из Assembly-CSharp.dl

СообщениеДобавлено: 16 окт 2014, 23:10
Nicloay
Кстати, я тут недавно вновь испытал потребность в исходниках, а виртуалка с XP уже умерла в процессе очередной зачистки.. и выяснил для себя что MonoDevelop может сам показывать исходники
Изображение