Зондирование Dll через отражение в ASP .Net - PullRequest
1 голос
/ 01 октября 2011

Я пытался найти больше информации о технике обнаружения DLL и EXE путем написания программ с использованием ASP .Net и рефлексии (?). Я не смог ничего найти.

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

Я только начинаю свои поиски, и мне было интересно, есть ли какие-нибудь хорошие ресурсы для ускорения процесса обучения.

1 Ответ

0 голосов
/ 01 октября 2011

Меня больше интересует понимание того, как написать программу, которая берет неизвестный файл или исполняемый файл и определяет общедоступные свойства и методы.

Отражение - это хороший способсделай это.Вот несколько советов, если вам не нужно полное объяснение кода.

  1. Вы можете использовать Assembly.ReflectionOnlyLoad для загрузки существующей сборки.Это будет работать только для сборок .NET.Разница между Load и ReflectionOnlyLoad заключается в том, что Load загружает сборку, которая позволяет вам использовать ее, например, выполнение метода для типа в этой сборке.ReflectionOnlyLoad полезно, когда вы хотите посмотреть только то, что находится в сборке, без выполнения какого-либо кода.Другое преимущество ReflectionOnlyLoad заключается в том, что ему не важно, для какой платформы была скомпилирована сборка.

  2. После того, как вы получили сборку, вы можете использовать метод, такой как GetExportedTypes, чтобы получить список всех открытых типов.Если вы хотите получить общедоступный и непубличный доступ, вы можете использовать просто GetTypes ().

  3. Итак, теперь у нас загружена наша сборка и список всех типов,Класс Type имеет несколько членов для работы с этим типом.На ум приходят GetMethods и GetProperties.

Вы можете обратиться к этой статье MSDN для более общего обзора Reflection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...