Удобный способ внесения изменений в чужую C#-библиотеку
От: Albeoris  
Дата: 15.04.16 23:00
Оценка:
Доброго времени суток.

Есть у меня на руках DLL от Unity-игры. Необходимо её модифицировать. В первом приближении — заставить дампить тексты из ресурсных файлов в текстовые файлики, а потом читать их из этих самых файликов вместо оригинальных ресурсов.

Делаю я это сейчас посредством Reflexil, тобишь наживаю редактируя код в каждом конкретном случае. Это долго, муторно, и неудобно.
В своё время я экспериментировал с Mono.Cecil и описывал собственную систему инъекции кода на основе атрибутов, попутно делая все классы родной либины публичными, а методы — виртуальными для перегрузки. Это был танец над пропастью и не всегда удавалось добиться желаемого эффекта.

В связи с чем возникает вопрос — есть ли сейчас какой-нибудь современный способ для проделывания подобных операций для C# DLL вообще или Unity-игр в частности?

Отдельно стоит вопрос о существовании инструмента, который позволил бы вынести из это библиотеки типы в собственную сборку, перебросив ссылки на неё. Таким образом, чтобы можно было без перекомпиляции всей сборки выносить отдельные типы в свою собственную, не нарушая взаимодействия между ними?
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт
il injection dll mono.cecil reflexil reverse engineering
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.