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

标签 c# security

我在客户端程序中内置了一些安全措施,该程序从 Web 下载 DLL,并调用该 DLL 中的函数。 DLL 是强命名的,DLL 中的函数使用 Assembly.GetCallingAssembly() 来确定调用程序集,以便我可以准确地获取到调用它的程序的路径。从那里我们对程序集进行散列检查并验证它是正确的。

我们有些人已将自己附加到完全信任模式,并且能够欺骗 GetCallingAssembly 调用以指向真正的可执行文件,同时运行它的修改版本。除了 GetCallingAssembly 之外,还有其他东西可以用来获取真正的调用者吗?由于 GetCallingAssembly 似乎很容易被欺骗,一些调用堆栈或可能提供真正可执行文件的东西。

最佳答案

您不能在完全信任模式下运行时执行此操作。完全信任意味着人们可以做欺骗之类的事情。这是一个类似的讨论: reflection is possible on obfuscation

关于c# - 确定真正调用程序集的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7903103/

相关文章:

c# - GPS定位API?

asp.net - ASP.NET Web 表单中的 oauth2

javascript - 您如何获得 API Key 以访问服务预授权?

c# - 将数据存储到数组中并检查它是否是一个有效的整数

c# - 中文 TTS 失败,而英语有效

c# - 算法 - java、c# 或 delphi - 在数组中搜索大于 arraySize/2 的数字。一次通过,无需额外内存

rest - 如何保护我的自定义 Magento2 REST api

security - 警报安全 Github - 修复 yarn.lock/package-lock.json 中漏洞的正确方法是什么

php - 基于 Symfony 2 的项目的安全性和登录

c# - 动态 LINQ 日期查询性能