Как получить исходники любого проекта на Unity3D
| |
Izaron | Дата: Воскресенье, 23 Марта 2014, 10:44 | Сообщение # 1 |
Rammstein forever
Сейчас нет на сайте
| Всем привет!
Вы знаете способ получить исходники абсолютно любого скомпилированного проекта на Unity3D? (в частности, любые проекты на C# тоже можно декомпилить) Обратите внимание - получить проект со всеми сценами и картинками нельзя, но можно получить скрипты на C#
Для начала скачиваем ILSpy - .NET декомпилятор Скриншот IDE
exe-шники, чей исходный код написан чисто на C#, декомпилить очень легко - жмем "File" -> "Открыть", и выбираем exe.
Исходники, если они не защищены, сразу становятся доступными
Но что делать с exe из Unity3D? Они не могут нормально декомпилироваться Но он нам и не нужен. Для запуска Unity3D проекта, кроме exe, в одной папке с ней должна лежать папка "НазваниеПроекта_Data", к примеру, "Project_Data"
Все скрипты компилируются в файл, который находится по адресу - "НазваниеПроекта_Data" -> "Managed" -> "Assembly-CSharp.dll", т.е. в dll Открываем с помощью ILSpy Assembly-CSharp.dll, и все - весь исходный код теперь в нашем распоряжении
Удачи! Добавлено (23.03.2014, 10:42) --------------------------------------------- Мегабонус - скачал Bad Piggies на PC, декомпилил
Добавлено (23.03.2014, 10:44) --------------------------------------------- Для удобного сохранения файла, выберите нужный класс и нажмите Ctrl+S, выберите папку для сохранения cs файла
|
|
| |
KamiRonin | Дата: Воскресенье, 23 Марта 2014, 10:55 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| полностью чистый декомпилинг - миф. все равно придется допиливать модули вручную... если хорошо понимаешь концепцию конкретно этой системы. ни один из них не сделал нормально декомпил энумераторов, плохо делаются делегаты и еще несколько видов. иногда код получается индустским, иногда нечитаемым или с самозамкнутой петлей. если еще использовали обфускаторы.. то сделать скрипты рабочими бывает сложнее чем написать такой же функционал - самому..
Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Воскресенье, 23 Марта 2014, 11:13 |
|
| |
Izaron | Дата: Воскресенье, 23 Марта 2014, 10:59 | Сообщение # 3 |
Rammstein forever
Сейчас нет на сайте
| Цитата KamiRonin ( ) полностью чистый декомпилинг - миф Ну да, как и полностью защищенные исходники *ну ехе же можно в ассемблер перевести, а ассемблер можно в C++* ))
Цитата KamiRonin ( ) если хорошо понимаешь концепцию конкретно этой системы. ни один из них не сделал нормально декомпил энумераторов, плохо делаются делегаты и еще несколько видов. иногда код получается индустским, иногда нечитаемым или с самозамкнутой петлей Кстати, да, компиляторы, что в Mono, что в Visual Studio, дописывают разной фигни, вроде this. и base. туда, где их не было, для удобства юзера. В Шилдте еще написано
|
|
| |
EchoIT | Дата: Воскресенье, 23 Марта 2014, 11:01 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Срочно нужно обфусцировать все мои проекты, чтобы никто мой быдлокод не увидел.
P.S.: за ILSpy спасибо, а то .Net Reflector заколебал уже триал заканчивать каждый раз. =)
Долгожданный анонсик: State of War
Сообщение отредактировал EchoIT - Воскресенье, 23 Марта 2014, 11:05 |
|
| |
KamiRonin | Дата: Воскресенье, 23 Марта 2014, 11:21 | Сообщение # 5 |
почти ветеран
Сейчас нет на сайте
| Цитата Izaron ( ) *ну ехе же можно в ассемблер перевести, а ассемблер можно в C++* )) а ты попробуй!! над программкой в 500 кб НЕ матерый хакер может просидеть неделю пытаясь сделать из этого месива хоть что-то внятное на плюсах. для выявления точек воздействия - да, ассемблерного кода достаточно. а вот взять из кода какой нибудь классный механизм для своего проекта или развития - бывает крайне затруднительно..
ну да чего отговаривать то!? сам пользовался тремя декомпилерами - сравнивал потом выжимки между собой и офигевал насколько по разному выжимает. кому то и это занятие понравится почему нет?!
Цитата Izaron ( ) Кстати, да, компиляторы, что в Mono, что в Visual Studio, дописывают разной фигни, вроде this. и base. туда, где их не было, для удобства юзера. В Шилдте еще написано да, в некоторых учебниках по шарпу есть этот подход - "напишите такую то прогу, декомпильните ее! -- ВИДИТЕ, что сделал транслятор с вот этим кодом".. эта "фигня", о которой ты пишешь - как раз легко читаемая, а вот когда подстановка идет с полными путями модулей или (0х0015)TypeOfSheet и узнать что это значит бывает тяжко, вот тогда да.. проклинешь все на свете - напишешь свое!
Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
|
|
| |
TLT | Дата: Воскресенье, 23 Марта 2014, 12:01 | Сообщение # 6 |
Сейчас на сайте
| Цитата Izaron ( ) ехе же можно в ассемблер перевести, а ассемблер можно в C++ Это как? Ассемблер или машинный код?
Дао, выраженное словами, не есть истинное Дао.
|
|
| |
Izaron | Дата: Воскресенье, 23 Марта 2014, 18:17 | Сообщение # 7 |
Rammstein forever
Сейчас нет на сайте
| Цитата TLT ( ) Это как? Ассемблер или машинный код? Точно не знаю, программу на С++ очень сложно ломануть
IDA Pro дает доступ к машинному коду и ассемблеру, но обратно собрать очень сложно, плюс 100% гарантии получить исходники нету
С .NET языками все наоборот
|
|
| |
|