如何限制某些程序集的反射?

2023-12-07

在我的 .net 应用程序中,我想限制对某些程序集的反射。我的意思是我希望我的特定程序集只能由某些预定义的程序集反映,而不是由其他任何程序集反映。我怎样才能做到这一点?

Edit:

这个工具完全关闭程序集的 .NET 反汇编和反编译。我想允许一些预定义的程序集反映此程序集,但限制其他程序集这样做。我想要一些应该被声明为汇编明智的东西,例如AssemblyOne 已向 AssemblyTwo 授予您可以反映我的权限,因此只有 AssemblyTwo 应该能够完全信任地反映它,其他人都不能。


您链接到的工具基本上将整个应用程序编译为本机代码。这并没有真正“关闭”反射或其他任何东西,它只是将应用程序变成完全不同的东西,它不再是字节码,从技术上讲也不再是 .NET 程序集。

完全信任的呼叫者可以always在 .NET 程序集及其内部的所有内容上使用反射。除了(a)混淆,任何有足够耐心和决心的人都可以反混淆,或(b)编译为本机代码,这将阻止any类型的反射(以及许多其他有用的功能),您无法阻止这种情况的发生,并且您当然不能将其限制为特定的程序集。

The ReflectionPermissionAttribute与其他答案之一相反,not防止来电者反映on你的代码;相反,它控制访问from该代码to反射 API。这里不会有任何帮助。

为什么隐藏代码或类结构如此重要?除非您为国家安全局工作,否则大多数代码都没有那么有价值/秘密,并且只要有足够的时间和资源,大多数应用程序都很容易进行逆向工程。实际上,攻击者或抄袭者从 Reflector 中复制代码和/或使用 Reflection 来发现您的 API 几乎得不到什么好处。

我想我只能代表自己说话,但如果有 1 天的空闲时间来实现一项很酷的功能或投资于保护内部代码,我将始终致力于开发真正增加价值的新功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何限制某些程序集的反射? 的相关文章

随机推荐

  • 查找数组中的重复数组

    给定一个数组数组 识别重复项的有效方法是什么 var array 11 31866455078125 44 53836644772605 lt Here s the duplicate 11 31866455078125 44 538366
  • Google Analytics 将 Google Cloud 测试实验室测试检测为活跃用户和新用户

    我正在使用 Google Analytics 我发现云测试实验室中的所有设备都被检测为 活跃用户 和 新用户 这是有道理的 有什么方法可以检测到这一点并且不计算它们吗 我发现它们不计为 Google Play 中的安装 因此我预计 Anal
  • JavaFX2.0 webview不渲染页面?

    我在JavaFX2 0中编写了以下代码 import javafx application Application import javafx event ActionEvent import javafx event EventHandl
  • 为什么 IPOPT 在违反约束的情况下仍评估目标函数?

    我在 Julia 中使用 IPOPT 我的目标函数会对某些参数值抛出错误 具体来说 虽然我认为这并不重要 但它涉及协方差矩阵的乔列斯基分解 因此要求协方差矩阵是正定的 因此 我非线性地约束参数 以便它们不会产生错误 尽管有这样的限制 IPO
  • 为什么不能从后台工作者访问 UI 组件?

    线程都共享资源 这就是多线程操作的全部问题 MSDN says 您必须小心 不要在 DoWork 事件 gt 处理程序中操作任何用户界面对象 相反 通过 ProgressChanged 和 RunWorkerCompleted 事件与用户界
  • 后台 IOS 可达性通知

    我想在用户上线后立即执行一些任务 即使他在后台 我正在使用 Reachability 类来检查互联网 但是当我在后台时 这个类不会通知我 我知道人们早些时候问过这个问题 但没有得到任何解决方案 如果我使用beginBackgroundTas
  • Android Google Map Utils 聚类距离

    我正在使用 Android Google Map utils 来启用标记的聚类 我用的是10个Markers 当我按下按钮时 我会调用 mGoogleMap moveCamera CameraUpdateFactory newLatLngB
  • Java Long Compare 和 ValueOf 方法未定义

    我正在引用我的 java 版本 JDK 1 8 但仍然出现错误 这个引用 6年后写Java 有什么问题 或者任何其他更简单的方法来做到这一点 我做了一些搜索 这些功能在后来的java版本中可用 日食是Oxygen Long 类型的方法 va
  • 为什么我的 ANTLR 构建 Ant 任务失败并显示“无法确定生成的类”?

    我正在尝试使用Ant 的 ANTLR3 任务 但我收到 无法确定生成的类 构建失败消息 一项快速研究表明 许多人都遇到过同样的问题 但没有提供解决方案 请参阅下面的链接 有人可以建议一个不使用常规 Java Ant 任务的解决方案吗 外部链
  • zend 形式的关联数组元素

    一段时间以来一直试图找到解决方案 但运气不佳 需要呈现一个带有复选框数组的表单 每个复选框都有一个关联的文本框 给定一个数组数组 Dave gt 23 Pete gt 12 Si gt 43 由此产生的加价应产生 div div
  • 以编程方式快速更改 UIButton 的文本

    简单的问题在这里 我有一个 UIButton currencySelector 我想以编程方式更改文本 这是我所拥有的 currencySelector text foobar Xcode 给我错误 预期声明 我做错了什么 如何更改按钮的文
  • 在浏览器中加载本地文件引用css或js

    这可能是一个基本问题 但有些方法对我不起作用 这是我的html
  • 同一张表上的多个 JOIN 视图

    我有这个数据库存储传感器采集数据 采集 acq 来自不同的控制单元 cu 以固定的时间间隔 日期时间 每个采集都有许多不同的测量值存储在数据表中 acq id datetime id cu data id id acq id meas va
  • 所有异步函数完成后执行函数?

    this validate label population this validate title prefix this validate title suffix this executeGitCommentCreation 我在构造
  • 不明白为什么 string.index("word") 不起作用

    是否可以采用该方法 index word 在 python 中不起作用 我有这个清单 Viganello n Monday n 06 48 n 06 58 n 07 08 n 07 18 n 07 28 n 07 38 n 07 48 n
  • 有没有人有一个简单的一步步 Mozilla 插件教程

    我正在尝试创建一个 Mozilla 浏览器插件 其唯一目的是使用 javascript 检测是否安装了我编写的应用程序 这是受到另一个启发堆栈溢出问答关于类似的主题 我真正想要的只是一个 HelloWorld 类型的示例 因为我需要编写的内
  • imp.find_module() 支持压缩鸡蛋

    imp find module 没有从压缩的鸡蛋中找到模块 How can find模块可以来自两个地方 目录还是压缩蛋 对我来说 重要的是我可以提供path像 imp find module 这样的参数支持它 背景 不知何故 软件包在我们
  • 用户确认卸载时如何保存文件夹? (创新设置)

    当用户确认应用程序卸载时 如何将特定文件夹的备份副本保存到用户桌面 我尝试过但没有成功 也许有一种更简单的方法可以在不使用代码的情况下做到这一点 procedure CurUninstallStepChanged CurUninstallS
  • Qt - 初始化表单

    当我们打电话时setupUi 我们是初始化表格 什么是初始化形式是什么意思 如果我们不调用它会发生什么 Thanks 当调用 setupUi 时 将创建用户放置在表单上的所有 UI 元素 本质上 UIC 工具获取您在 Qt Designer
  • 如何限制某些程序集的反射?

    在我的 net 应用程序中 我想限制对某些程序集的反射 我的意思是我希望我的特定程序集只能由某些预定义的程序集反映 而不是由其他任何程序集反映 我怎样才能做到这一点 Edit 这个工具完全关闭程序集的 NET 反汇编和反编译 我想允许一些预