Сейчас на форуме: -Sanchez- (+7 невидимых) |
eXeL@B —› Основной форум —› Редактирование .NET сборки. |
Посл.ответ | Сообщение |
|
Создано: 08 декабря 2016 13:34 · Личное сообщение · #1 Всем привет. Копаю одну прогу на .NET Убрал обфускацию, декомпильнул. Всё нормально. Нашёл код который мне нужен. Вопрос - чем теперь можно поправить метод и пересобрать сборку? Желательно код править в декомпилированом виде (C#), а не в MSIL. Какие вообще есть инструменты? Раньше с патчем .NET не сталкивался... Пробовал dnSpy - она кучу ошибок кидает при компиляции модифицированного метода на неизвестные типы и т.д. Хотя в коде там изменений минимум - просто выбросил часть кода из метода. |
|
Создано: 08 декабря 2016 14:09 · Личное сообщение · #2 |
|
Создано: 08 декабря 2016 14:26 · Личное сообщение · #3 |
|
Создано: 08 декабря 2016 15:19 · Личное сообщение · #4 cppasm пишет: Пересобрать из исходников это не вариант - там бинарь 17МБ Я снял NetReactor 4.8 c помощью de4dot-а, декомпильнул dnSpy-ем и пересобрал в VS 2010 почти 10 мегабайатный бинарник на dotnet4, причем вносил значительные изменения, дописывал много своего кода, и модицифицировал оригинальный код. Как получилось: когда экспортировал проект из dnSpy , выбирал опцию "не распаковывать ресурсы". DnSpy выдал идеальный для рекомпиляции код, но некорректную структуру папок для проекта, ресурсы куда-то нетуда затолкал. Попробовал декомпильнуть NetReflectror'ом 8 - он выдал плохой код, который не особо компилился, но зато создал правильную структуру проекта. Вообщем я это дело объеденил, в проект от Netreflectora скопировал поверх исходники , полученные из dnSpy. На чето он там еще немного ругался, сейчас уже непомню, руками подправил .csproj и проект в результате компилировался и работал. Ну и дальше я его правил как мне надо, компилил в VS2010 и отлаживал в dnSpy. |
|
Создано: 08 декабря 2016 14:13 · Поправил: cppasm · Личное сообщение · #5 Блин, как в Reflexil изменения-то сохранить? Фиг с ним пропатчил метод в MSIL, а как сохранить-то теперь? Reflexil подключён плагином к ILSpy. Куда жать? Там от Reflexil одно колесо на тулбаре. // Add Как сохранить вроди разобрался, но теперь со Strong Name всякие косяки вылазят. Может есть туторы какие-нибудь нормальные чтобы с .NET разобраться? // Add Не могу разобраться в чём затык. Дизассеблирую всё при помощи ildasm Ничего не меняю, пересобираю приложение при помощи ilasm и оно не работает - падает при старте. Кто-нибудь может подсказать в чём проблема? |
|
Создано: 08 декабря 2016 21:00 · Личное сообщение · #6 в dnSpy редактируем код или IL или сразу (!) С# и не паримся всякими плагинами древними... | Сообщение посчитали полезным: SReg |
|
Создано: 09 декабря 2016 13:09 · Поправил: cppasm · Личное сообщение · #7 Всем спасибо, всё получилось. dnSpy я пробовал, в итоге с его помощью всё и сделал. Затык оказался в том, что я exe себе скопировал в отдельную папку и там препарировал. При этом при компиляции модифицированного метода оно не находило типы из других сборок из каталока программы и не пересобиралось. В итоге всё сделал при помощи de4dot (убрал обфускацию, бинарь похудел на 3МБ и даже шустрее работать стал) и dnSpy (отредактировал нужный код). |
eXeL@B —› Основной форум —› Редактирование .NET сборки. |