API для получения IL из байтового массива

В классе MethodBody есть метод GetILasByteArray, который дает тело метода. Я ищу преобразование этого массива байтов в более понятные инструкции IL (в список или что-то в этом роде). Какие ресурсы, открытый исходный код или API доступны, чтобы помочь мне понять и преобразовать этот массив байтов (или сделать это за меня)?

Я нашел это, но он не работает с дженериками. Я в значительной степени ищу руководство по преобразованию понимания этих байтов во всех версиях фреймворка.

Документация CLI также полезна для изучения инструкций IL, но я не понимаю, как ее использовать, чтобы эти байты имели смысл.


cil
person Serhat Ozgel    schedule 06.01.2009    source источник
comment
Привет, Серхат, не могли бы вы запросить дополнительную информацию или принять ответ?   -  person Jb Evain    schedule 07.01.2011


Ответы (3)


Я просто написал метод расширения, чтобы получить более понятный список инструкций, используя GetILasByteArray. Это довольно просто, API выглядит так:

public static IList<Instruction> GetInstructions (this MethodBase self);

Подробнее о реализации можно прочитать в моем сообщении в блоге. Или вы можете взять реализацию и начать ее использовать.

person Jb Evain    schedule 01.05.2009

Взгляните на библиотеку Mono.Cecil.

person Anton Tykhyy    schedule 15.03.2009

Это огромное предприятие. Я написал начало считывателя IL, и в нем реализовано довольно много кодов операций, но вам придется его закончить.

http://svn.ensemble-os.org/tags/OldOCJ/CIL/< /а>

Существует также MONO Cecil, в котором полно функций.

person Jonathan C Dickinson    schedule 06.01.2009
comment
Эта ссылка не работает. - person N-ate; 02.04.2018