Вторник, 24 Декабря 2024, 05:39

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как получить исходники любого проекта на Unity3D
IzaronДата: Воскресенье, 23 Марта 2014, 10:44 | Сообщение # 1
Rammstein forever
Сейчас нет на сайте
Всем привет! cool

Вы знаете способ получить исходники абсолютно любого скомпилированного проекта на 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, и все - весь исходный код теперь в нашем распоряжении



Удачи! happy

Добавлено (23.03.2014, 10:42)
---------------------------------------------
Мегабонус - скачал Bad Piggies на PC, декомпилил



Добавлено (23.03.2014, 10:44)
---------------------------------------------
Для удобного сохранения файла, выберите нужный класс и нажмите Ctrl+S, выберите папку для сохранения cs файла wink

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
старожил
Сейчас нет на сайте
Срочно нужно обфусцировать все мои проекты, чтобы никто мой быдлокод не увидел. biggrin

P.S.: за ILSpy спасибо, а то .Net Reflector заколебал уже триал заканчивать каждый раз. =)


Долгожданный анонсик: State of War

Сообщение отредактировал EchoIT - Воскресенье, 23 Марта 2014, 11:05
KamiRoninДата: Воскресенье, 23 Марта 2014, 11:21 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Цитата Izaron ()
*ну ехе же можно в ассемблер перевести, а ассемблер можно в C++* ))

smile а ты попробуй!! smile над программкой в 500 кб НЕ матерый хакер может просидеть неделю пытаясь сделать из этого месива хоть что-то внятное на плюсах. для выявления точек воздействия - да, ассемблерного кода достаточно. а вот взять из кода какой нибудь классный механизм для своего проекта или развития - бывает крайне затруднительно..

ну да чего отговаривать то!? smile сам пользовался тремя декомпилерами - сравнивал потом выжимки между собой и офигевал насколько по разному выжимает. кому то и это занятие понравится почему нет?! smile

Цитата Izaron ()
Кстати, да, компиляторы, что в Mono, что в Visual Studio, дописывают разной фигни, вроде this. и base. туда, где их не было, для удобства юзера. В Шилдте еще написано

да, в некоторых учебниках по шарпу есть этот подход - "напишите такую то прогу, декомпильните ее! -- ВИДИТЕ, что сделал транслятор с вот этим кодом".. эта "фигня", о которой ты пишешь - как раз легко читаемая, а вот когда подстановка идет с полными путями модулей или (0х0015)TypeOfSheet и узнать что это значит бывает тяжко, вот тогда да.. проклинешь все на свете - напишешь свое! smile


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
TLTДата: Воскресенье, 23 Марта 2014, 12:01 | Сообщение # 6
Сейчас нет на сайте
Цитата Izaron ()
ехе же можно в ассемблер перевести, а ассемблер можно в C++

Это как? Ассемблер или машинный код?


Дао, выраженное словами, не есть истинное Дао.
IzaronДата: Воскресенье, 23 Марта 2014, 18:17 | Сообщение # 7
Rammstein forever
Сейчас нет на сайте
Цитата TLT ()
Это как? Ассемблер или машинный код?

Точно не знаю, программу на С++ очень сложно ломануть

IDA Pro дает доступ к машинному коду и ассемблеру, но обратно собрать очень сложно, плюс 100% гарантии получить исходники нету

С .NET языками все наоборот
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг