Я изучаю IL.Получение кода IL из двоичного файла DLL
Мне нравится. Reflector tool от RedGate (изначально Lutz). У меня уже есть книги Сержа Лидина и Экма-335. Похоже, что все это связано с тем, что мы должны работать с IL (за исключением ILAsm и ILDasm, конечно).
Моя задача - проанализировать сборку двоичного файла и получить код IL. Очевидно, что сборка представляет собой двоичный файл; следовательно, это всего лишь цепочка байтов. Чтобы сделать то, что я хочу, мне нужно знать структуру сборки: какие заголовки существуют, сколько байтов они занимают, смещения в байтах, чтобы прочитать их после байта и т. Д.
Книга Лидина описывает это, но это не 100% ясно для меня. Кто-нибудь пытался разобрать DLL как поток байтов? Чтобы иметь метаданные и IL-код в виде потоков байтов, затем проанализировать поток байтов IL, чтобы получить IL-источник? Я не хочу здесь размышлять; Я бы хотел работать только с двоичным файлом.
Имеет ли моно Сесил то же самое? Даже если так, я хотел бы знать, как это сделать.
И да, я пытаюсь создать другое колесо, подобное экрану .NET Reflector, и я хочу знать, как это сделано. Как сказал кто-то: «Лутц не обязательно должен быть единственным человеком в мире, который знает, как это сделать».
BTW, как работает ISDasm? Был ли он закодирован в .net?
Любые мысли, ресурсы, примеры?
спасибо.
Вы знаете, где я могу скачать источники? Следующий URL-адрес http://anonsvn.mono-project.com/source/trunk/cecil/decompiler не работает для меня. Спасибо. – Antipod
Ну, похоже, это работает. Могу я попросить вас повторить попытку? –
Да, сейчас работает. Спасибо. – Antipod