Как отличить DLL-файлы

У меня есть программа, которая загружает каждый модуль в процесс и сравнивает их с базой данных запрещенных DLL-файлов, которая прекрасно работает, но ее слишком просто обойти (просто измените имя файла dll, который вы хотите внедрить в процесс). Поэтому я спрашиваю, как я могу отличить файлы DLL. Есть ли какой-нибудь уникальный идентификатор, который можно использовать в C#? Благодарю.

РЕДАКТИРОВАТЬ: я забыл упомянуть, что программа, которую я создаю, проверяет dll файлы другой программы, не созданной мной, которая написана на C++.

2 ответа

Вы можете перебирать каждый модуль, загруженный в процесс. Как мне перечислить все загруженные сборки? и посмотреть, правильно ли существует каждый модуль, такой как ModuleVersionId, который не изменяется при изменении имени файла?

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

Другие вопросы по тегам