Как снять/отлючить обфускацию, чтобы пересобрать .dll?
Давно было желание, как и у любого игромана, создать свою игру и тут подвернулся Unity3D. Пытался сделать покатушки, но из-за учебы, работы и редких гулянок забросил игру на более чем 3 года.
Естественно, после определенного промежутка времени удалил и сам Unity и исходники, а вот удалить игру, что-то остановило... Иногда запускал и катал в свои бибики (квадратной и прямоугольной формы) =D
Вот сейчас появилось свободное время и решил малость поковыряться, может втянусь и стану супер-игроделом =D
И тут НАТЕБЕ! Как делать игру если ты сам удалил программу с исходниками (почему-то раньше, как-то не додумался до этого). А сейчас мучаюсь... есть готовые .dll, .exe и т.п.
Мучаюсь уже третий день. Исходный код с .dll получил с помощью dotpeek и вроде как все классно, исходники появились, но... пытаюсь добавить новые значения и пересобрать .dll и тут НАТЕБЕ! начинаю собирать и в коде появляются ошибки, всякие символы (типа $, \a004c и всякие другие). Погуглил и вник, что это обфускация кода и из-за нее не пересобирает .dll заново.
Как же снять/отлючить эту обфускацию, чтобы можно было пересобрать .dll ?
Можно конечно и копипастить всю .dll, все файлы и в итоге заново собрать, но так как их очень много МНЕ В ЛОМ тратить столько времени =D
Да и знания по C# у меня слабенькие, чтобы четко определять, что мне нужно и это следует копировать, а что можно пройти мимо.
Не могу быть уверенным на все 100, но вроде так нельзя. Во-первых, из-за того, что если вы даже открыли исходники скриптов на C#, то часть на C++, так просто вам не дастся. Во-вторых, как вы собираетесь менять код игры и пересобирать его? ИМХО легче начать заново, тем более скрипты у вас уже есть.
Получить исходный код из бинарного это реверс-инжиниринг, занимает много времени и требует большого опыта, на более-менее сложных алгоритмах всегда требует иметь дело с ассемблером а не только декомпиляторами, которые не могут выдать полностью верный код даже если использовать все декомпиляторы какие есть на свете и собирать код из лучших "кусочков" от каждого из них, все равно некоторые "кусочки" приходится сверять с ассемблером, вплоть до довольно близких "отношений" с ним, гораздо проще написать с нуля, в крайнем случае декомпилировать лишь отдельные части.
Ну для С++ вы все правильно написали, но с С# все в разы проще. Никакого ассемблера, все "дисасемблируется" обратно даже з комментариями(если они писались в сборку).
Станислав Силин: Вы ошибаетесь, попробуйте декомпилировать и скомпилировать достаточно крупное приложение и сами убедитесь, я пробовал, а уж при обфускации тем более, которая кстати очень разная бывает, тем более для .NET, для него проще писать обфускаторы, и они востребованнее.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.