确定真正调用程序集的方法

wil*_*k89 7 c# security

我在客户端程序中内置了一些安全性,可以从Web下载DLL,并在该DLL中调用一个函数.DLL具有强名称,DLL中的函数Assembly.GetCallingAssembly()用于确定调用程序集,以便我可以准确地获取调用它的程序的路径.从那里我们对程序集进行哈希检查并验证它是否正确.

我们有些人已经以完全信任模式连接自己,并且能够欺骗GetCallingAssembly调用指向真正的可执行文件,同时他们运行它的修改版本.还有其他的东西GetCallingAssembly,我可以用来获得真正的来电者吗?一些callstack或可能提供真正可执行文件的东西GetCallingAssembly似乎很容易被欺骗.

jle*_*lew 3

在完全信任模式下运行时无法执行此操作。完全信任意味着人们可以做诸如欺骗之类的事情。这是一个类似的讨论: 反射是可能的混淆