.net - 反射是逆向工程吗?

标签 .net reflection reverse-engineering

您可以通过反射找到有关应用程序内部的大量信息,它由 .NET BCL(基类库)公开,并且可以轻松检索任何 .NET 方法的实际 IL。

逆向工程 Wikipedia :

Reverse engineering is the process of discovering the technological principles of a device, object or system through analysis of its structure, function and operation.



反射肯定会满足结构分析。但是你在哪里划清内省(introspection)和实际逆向工程之间的界限呢?从法律的角度来看,反射是逆向工程吗?

最佳答案

两者之间的界限似乎很模糊。从道德上讲,我会在程序员的动机中划清界限。

如果他使用反射来构建一个库、工具或类似软件,该库、工具或类似软件应该与满足某些标准的任何第 3 方代码交互,我不会将其视为逆向工程。

例如,我最近正在为 Linq2SQL 数据层编写一个通用基类。基类使用反射来深入了解数据库布局并正确处理嵌套业务实体的更新。如果其他人将我的基类用于他的 Web 应用程序,我将不会获得有关他的源代码的任何知识。这种反射的使用当然不是逆向工程。

另一方面,如果程序员试图使用反射来理解竞争对手软件的内部运作,他就是在逆向工程。

关于.net - 反射是逆向工程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/634573/

相关文章:

javascript - 获取对象属性名自引用

java - 反射 dalvik.system.DexClassLoader.findClass() NoSuchMethodException

x86-64 - **ELF**中的@object是什么

c# - 悬停效果对WPF TreeView的子元素有错误

java - 如何调用属于某个 Activity 的 fragment 的方法

oracle - Hibernate逆向工程师(oracle)将NUMBER转换为零精度big_decimal

gdb - 在 GDB 中的第一条机器代码指令处停止

c# - 有什么技巧可以计算文本文件中的行数吗?

c# - 如何使用凭据通过客户端对象模型连接到 SharePoint 列表?

c# - equals 和 ID 比较之间的性能差异