- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 .NET 有点陌生,但对编程并不陌生,而且我对反汇编编译的 .NET 代码的趋势和兴奋感到有些困惑。似乎毫无意义。
.NET 的高级易用性是我使用它的原因。我在资源有限的环境中编写了 C 和真正的(硬件处理器)程序集。这就是为什么要花精力在这么多细致的细节上,以提高效率。在 .NET 领域,如果您浪费时间深入研究最神秘的实现细节,就有点违背了拥有高级面向对象语言的目的。在使用 .NET 的过程中,我调试了常见的性能问题和奇怪的竞争条件,我通过阅读自己的源代码完成了这一切,从来没有想过编译器生成的是哪种中间语言。例如,很明显 for(;;) 循环将比数组上的 foreach() 更快,考虑到 foreach() 将使用枚举对象和方法调用来前进到 each 下一次而不是简单的变量增量,这很容易通过运行几百万次的紧密循环来证明(不需要反汇编)。
真正让反汇编 IL 变得愚蠢的是它不是真正的机器代码。是虚拟机代码。我听说有些人实际上喜欢移动指令来优化它。你在跟我开玩笑吗?即时编译的虚拟机代码甚至无法以本地编译代码的速度执行简单的 for(;;) 循环。如果您想从处理器中挤出每个最后一个周期,请使用 C/C++ 并花时间学习真正的汇编。这样一来,您花时间了解大量低级细节实际上是值得的。
那么,除了有太多时间,人们为什么要反汇编 .NET (CLR) 二进制文件?
最佳答案
了解各种高级语言的编译器实际上对您的源代码进行了哪些操作是在您逐渐掌握某种环境时需要掌握的一项重要技能,就像了解数据库引擎将如何计划执行您的各种 SQL 查询一样可以折腾他们。以熟练的方式使用某种抽象层次,熟悉(至少)它下面的层次是一件很好的事情;见例如some notes on my talk on the subject of abstraction和 the slides for that talk ,以及我在演讲中提到的 Joel Spolsky 的“泄漏抽象定律”。
关于reflector - 为什么人们要反汇编 .NET (CLR) 二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/930442/
我如何重新编译我编辑过的代码 或者用原始文件替换它并在 dotpeek 中将其另存为 exe? 我尝试重新编译编辑过的文件并保存它,但我不能 如果您找到任何方法,请分享 谢谢 最佳答案 在Assemb
因此,在下面的代码中,您会注意到注释“//This item is obfuscated and can't be translation.”。 我想知道的是,这是否意味着该注释代替了一些混淆代码,后
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在使用 beta 7.2 反射器,当我尝试反射某些 exe 文件时,我看到了这条消息。这是什么意思? 谢谢 最佳答案 这意味着 EXE 不是 .NET assembly.它是标准的 Windows
在 .NET Reflector 的先前版本中,我能够获取函数内指令的命名空间,但现在我不能并且文档不存在。 Red Gate 的 .NET Reflector 6.8.2.5(最后一个免费版本) 这
我正在使用 @SetMetaData('version', 'v2') 为 Controller 中的 http 方法设置版本控制。然后我有一个自定义的 @Get() 装饰器来将版本作为后缀添加到 C
给出下面的示例源代码,有人可以使用反汇编程序查看 _secret 的值吗?我没有看到通过 Reflector 获取值的方法,但我用得不多。假设代码没有以任何方式混淆。 class Foo {
我正在使用 @SetMetaData('version', 'v2') 为 Controller 中的 http 方法设置版本控制。然后我有一个自定义的 @Get() 装饰器来将版本作为后缀添加到 C
Reflector 显示了自动属性: public string AddressLine1 { [CompilerGenerated] get { return
有没有办法让反射器反汇编回新的 C# 结构? 自动实现的属性是这样的: [CompilerGenerated] private string k__BackingField; public stri
所以我正在反射一些框架 2.0 代码并以以下解构结束 fixed (void* voidRef3 = ((void*) &_someMember)) { ... } 由于“固定语句赋值的右侧可能不是强
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Open Source Alternatives to Reflector? 自 3 月以来,此工具不再免费
我正在使用 Reflection.Emit 动态生成一个程序集,然后保存它。它包含一个 Type 和一个静态 Main() 方法。 .NET 足以自动引用所需的程序集。但是,在 Main() 中,有一
我不时听到有人提到一个或多个名为“reflector(s)”的邮件列表,C++ 标准委员会的成员在其中讨论与他们在 C++ 标准化方面的工作相关的问题。 这些邮件列表是否可供公众阅读?如果是这样,有人
COM 库有没有像 Reflector 这样的工具?我想打开一个 COM 库并像在 Reflector 中一样浏览类和接口(interface)。如果可能的话,我宁愿不安装 Visual Basic
我对 .NET 有点陌生,但对编程并不陌生,而且我对反汇编编译的 .NET 代码的趋势和兴奋感到有些困惑。似乎毫无意义。 .NET 的高级易用性是我使用它的原因。我在资源有限的环境中编写了 C 和真正
当我们跑 (.someMethod obj arg1 arg2 arg3) clojure.lang.Reflector 类是否一直在使用,这对性能有何影响? 最佳答案 这取决于编译器是否可以静态确定
是否可以使用 .NET Reflector (或其他工具)来修改和重新编译代码 快 (也就是说,不转储源代码,然后使用 Visual Studio 重新编译它)? 最佳答案 您可能可以使用 Refle
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
作为 .NET 和 C# 的新程序员,我发现使用 .NET Reflector 是一个令人难以置信的实用程序,可以用来查看“专业人士”如何编写他们的代码。 任何人都可以建议好的基于 .NET 的应用程
我是一名优秀的程序员,十分优秀!