Сейчас на форуме: -Sanchez- (+7 невидимых)

 eXeL@B —› Основной форум —› Редактирование .NET сборки.
Посл.ответ Сообщение

Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 08 декабря 2016 13:34
· Личное сообщение · #1

Всем привет.
Копаю одну прогу на .NET
Убрал обфускацию, декомпильнул. Всё нормально.
Нашёл код который мне нужен.
Вопрос - чем теперь можно поправить метод и пересобрать сборку?
Желательно код править в декомпилированом виде (C#), а не в MSIL.
Какие вообще есть инструменты?
Раньше с патчем .NET не сталкивался...
Пробовал dnSpy - она кучу ошибок кидает при компиляции модифицированного метода на неизвестные типы и т.д.
Хотя в коде там изменений минимум - просто выбросил часть кода из метода.



Ранг: 60.6 (постоянный), 87thx
Активность: 0.060
Статус: Участник

Создано: 08 декабря 2016 14:09
· Личное сообщение · #2

Reflector / ilSpy + Reflexil. Это правка в MSIL. Еще можно экспортировать как проект для студии, поправить ошибки и пересобрать.



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 08 декабря 2016 14:26
· Личное сообщение · #3

Пересобрать из исходников это не вариант - там бинарь 17МБ и экспортировать в проект чтобы оно без ошибок пересобралось врядли получится.
За Reflexil спасибо.



Ранг: 30.2 (посетитель), 31thx
Активность: 0.060
Статус: Участник

Создано: 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.



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 08 декабря 2016 14:13 · Поправил: cppasm
· Личное сообщение · #5

Блин, как в Reflexil изменения-то сохранить?
Фиг с ним пропатчил метод в MSIL, а как сохранить-то теперь?
Reflexil подключён плагином к ILSpy.
Куда жать? Там от Reflexil одно колесо на тулбаре.
// Add
Как сохранить вроди разобрался, но теперь со Strong Name всякие косяки вылазят.
Может есть туторы какие-нибудь нормальные чтобы с .NET разобраться?
// Add
Не могу разобраться в чём затык.
Дизассеблирую всё при помощи ildasm
Ничего не меняю, пересобираю приложение при помощи ilasm и оно не работает - падает при старте.
Кто-нибудь может подсказать в чём проблема?



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 08 декабря 2016 21:00
· Личное сообщение · #6

в dnSpy редактируем код или IL или сразу (!) С# и не паримся всякими плагинами древними...

| Сообщение посчитали полезным: SReg

Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 09 декабря 2016 13:09 · Поправил: cppasm
· Личное сообщение · #7

Всем спасибо, всё получилось.
dnSpy я пробовал, в итоге с его помощью всё и сделал.
Затык оказался в том, что я exe себе скопировал в отдельную папку и там препарировал.
При этом при компиляции модифицированного метода оно не находило типы из других сборок из каталока программы и не пересобиралось.
В итоге всё сделал при помощи de4dot (убрал обфускацию, бинарь похудел на 3МБ и даже шустрее работать стал) и dnSpy (отредактировал нужный код).


 eXeL@B —› Основной форум —› Редактирование .NET сборки.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати