com*_*pie 16 .net cil decompiling bytecode intermediate-language
与反编译本机x86二进制文件相比,为什么将.NET IL-code反编译为源代码如此容易?(Reflector在大多数情况下都会生成相当好的源代码,而反编译C++编译器的输出几乎是不可能的.)
是因为IL包含大量元数据吗?或者是因为IL是比x86指令更高的抽象?我做了一些研究,发现了以下两篇有用的文章,但它们都没有回答我的问题.
Jon*_*eet 24
我想你已经拥有了最重要的一点.
有许多因素使逆向工程变得相当容易.
输入信息.这是巨大的.在x86汇编程序中,您必须根据变量的使用方式推断变量的类型.
结构体.有关应用程序结构的信息在il拆卸中更为可用.这与信息类型相结合,可为您提供大量数据.你现在处于相当高的水平(相对于x86汇编程序).在本机汇编程序中,您必须根据数据的使用方式推断结构布局(甚至它们是结构的事实).并非不可能,但更耗时.
名.了解事物的名称可能很有用.
这些东西结合起来意味着你有很多关于可执行文件的数据.Il基本上工作在比源代码更接近源的级别上.一般来说,字节码工作的级别越高,逆向工程就越容易.
| 归档时间: | 
 | 
| 查看次数: | 4396 次 | 
| 最近记录: |