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