Вопрос

Это своего рода вопрос, состоящий из двух частей.Но оба они относятся к одному и тому же.

Я хочу работать с IL-кодом приложения для применения исправлений.Мне интересно, какой подход будет правильным.Очевидно, я мог бы декомпилировать его, прочитать и отредактировать файл кода il, а затем перекомпилировать.но есть ли способ прочитать его как код msil прямо в файле.и, возможно, редактировать его в реальном времени.

Я пытался отредактировать декомпилированный код исполняемого файла.но каждый раз, когда я его перекомпилировал, у меня возникали проблемы с выполнением.Как будто он больше не мог найти точку входа.Как мне это рассчитать?Я предполагаю, что мне нужно знать длину команд и их параметры или сделать точку входа меткой или чем-то еще.Было бы неплохо, если бы для чего-то подобного существовал шаблон Visual Studio.

Это было полезно?

Решение

Как человек, уже прочитавший ЭКМА-335 спецификация несколько раз и реализовал загрузчик изображений CLI на двух разных языках (с полным анализом IL на одном), я бы сказал, что это все равно будет для меня сложной задачей.Я говорю это, потому что кажется, что 1) вы этого не сделали и 2) вы ищете простой ответ.Спецификация определенно должна стать вашей отправной точкой.

А минимальный процедура будет:

  • Загрузите PE-образ (exe или dll)
  • Разобрать байт-код всех методов и разрешить символы.
  • Применить преобразования кода (минимальным, конечно, будет одно преобразование, например переименование частных методов).
  • Сохраните результат как новый PE-образ.

Редактировать:Это не избавит вас от необходимости изучать подробную структуру сборок .NET, но может сэкономить вам некоторое время при фактической реализации и помочь четко отделить логику обфускатора от загрузчика.

Другие советы

Чтобы прочитать MSIL, в это обязательно есть нить :

ildasm.exe - средний уровень Дизассемблер языка. С помощью этого инструмента вы можете просмотреть свой скомпилированный код на уровне MSIL.

Это находится в Microsoft SDK.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top