![]() |
1
9
链接到的工具基本上将整个应用程序编译为本机代码。这并不是真正的“关闭”反射或其他任何东西,而是将应用程序变成完全不同的东西,它不再是字节码,技术上不再是.NET程序集。 完全信任的呼叫者可以 总是 在.NET程序集及其内部的所有内容上使用反射。除了(a)模糊,任何有足够耐心和决心的人都可以消除模糊,或(b)编译成本地代码,这样可以防止 任何 某种反射(以及许多其他有用的特性),您不能阻止这种情况的发生,当然也不能将其限制到特定的程序集。
这个
为什么隐藏代码或类结构如此重要?除非您是为NSA工作,否则大多数代码都没有那么有价值/机密,而且在有足够的时间和资源的情况下,大多数应用程序都非常容易进行逆向工程。实际上,攻击者或抄袭者从从Reflector复制代码和/或使用反射来发现API中获益甚微。 我想我只能为自己说话,但是如果给我一天的时间来实现一个很酷的特性或者投资于保护内部代码,我将总是致力于开发能够真正增加价值的新特性。 |
![]() |
2
5
如果此人完全信任程序集,则不能阻止他们访问程序集的任何部分。 |
![]() |
3
4
反省是不可抗拒的!-) 我认为除了编写本机代码之外,您不能阻止反射。尽管如此,它仍然可以被分解。如果您需要让一些代码远离未经授权的人,请将其保存在您控制的服务器上,并允许对其进行远程访问。 |
![]() |
4
2
我想知道你的想法是为了限制思考。您是否担心暴露一些烘焙到代码库中的超级机密数据?一些非常聪明的代码块,你对它有一些优势? 我问的原因是 我只是不相信我们在软件开发中所做的任何事情本身在代码库级别是如此独特,以至于它需要人们不去看它。 --所以我想知道你是否走错了路。既然您没有提到为什么要阻止反射,我不知道您的方案是否有意义(至少从我的POV)来限制访问。 我想不出一个真实的场景,在这个场景中,限制访问会真正让你得到任何地方——现在,制造一个系统的不是任何特定代码块的出色之处,而是整个软件包(UX、客户服务、与使用保持同步的快速发展等)。如果您的代码是好的,那么它将随着时间的推移而改变,这样任何人“破解”它都将比您当前的迭代晚两步(至少)。 你的价值在于你的大脑,而不是组装。 如果你这样做是出于安全考虑,那么你真的不应该试图通过阻止反射来“保护”它。 再说一次,你可能有一个合理的理由来阻止我没有想到的思考,但我更怀疑这值得努力,我倾向于相信你的精力会更好地花在其他地方……就像制作代码一样,你想要更好地阻止它。 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
![]() |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |
![]() |
jkone27 · F#-在编译时从字符串生成简单的空类型 6 年前 |
![]() |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
![]() |
Randall Flagg · 访问propertyinfo中的属性 6 年前 |
![]() |
Kacper · 在反映的全名和成员c后的“*”中,“+”是什么意思# 6 年前 |
![]() |
tobeypeters · 反射铸造 6 年前 |
![]() |
myst02 · 如何在另一个方法之后调用该方法? 6 年前 |