gpt4 book ai didi

c# - 为什么原生Win32难拆,.NET app拆容易?

转载 作者:IT老高 更新时间:2023-10-28 23:22:37 35 4
gpt4 key购买 nike

为什么反汇编 native Win32 镜像(例如,内置 C/C++)比反汇编 .NET 应用程序困难得多?

主要原因是什么?因为什么?

最佳答案

.net 程序集内置于 Common Intermediate Language .当 CLR 编译它以在适当的系统上运行时,它不会被编译,直到它即将被执行。 CIL 有很多元数据,因此它可以编译到不同的处理器架构和不同的操作系统上(在 Linux 上,使用 Mono)。类和方法基本保持不变。

.net 还允许反射,这需要将元数据存储在二进制文件中。

C 和 C++ 代码在编译时会编译到选定的处理器架构和系统。为 Windows 编译的可执行文件不能在 Linux 上运行,反之亦然。 C 或 C++ 编译器的输出是汇编指令。源代码中的函数可能不作为二进制函数存在,但以某种方式进行了优化。编译器也可以有相当激进的优化器,它们将采用逻辑结构化的代码并使其看起来非常不同。代码会更高效(在时间或空间上),但会使其更难逆向。

关于c# - 为什么原生Win32难拆,.NET app拆容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14285025/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com