反编译.NET2.0二进制文件

反编译.NET2.0二进制文件,.net,reverse-engineering,decompiling,.net,Reverse Engineering,Decompiling,是否可以将.NET 2.0二进制文件(*.exe)反编译为某种可读代码?或者,如果没有,只需从中提取一些信息(例如方法名称、调试信息等)?您可能需要查看,它应该将程序集显示为C#或IL 编辑: 随着反射器成本的增加,我已经切换到了我的日常需要。将exe放入ILDASM或点网反射器应该可以做到这一点。搜索Lutz Roeder,您会发现: 是的。首先,所有.net库都有清单,清单中包含类型信息。可以使用反射或使用反射器等工具对它们进行有问题的询问。查看system.reflection命名空间中需

是否可以将.NET 2.0二进制文件(*.exe)反编译为某种可读代码?或者,如果没有,只需从中提取一些信息(例如方法名称、调试信息等)?

您可能需要查看,它应该将程序集显示为C#或IL

编辑:


随着反射器成本的增加,我已经切换到了我的日常需要。

将exe放入ILDASM或点网反射器应该可以做到这一点。

搜索Lutz Roeder,您会发现:


是的。首先,所有.net库都有清单,清单中包含类型信息。可以使用反射或使用反射器等工具对它们进行有问题的询问。查看system.reflection命名空间中需要查看的类

我将引用我自己的话:

你再也回不到确切的位置了 相同的来源,因为没有 使用 编译代码

但是您可以从中重新创建代码 汇编代码

如果你想看这本书,就去看看吧 对这些事情感兴趣:逆转: 逆向工程的秘密

编辑

这里有些编译器-101,如果你是的话 用另一个词定义编译器 而且没有“编译器”那么专业, 会是什么

答:翻译

编译器翻译语法/ 你写在另一本书中的短语 C编译器翻译成的语言 汇编甚至机器代码。C#代码 翻译成IL等等

您拥有的可执行文件只是一个 原文的翻译/ 语法,如果要“反转它” 因此,你将“把它翻译回去” 很可能不会得到相同的结构 就像你开始时那样

一个更真实的例子是 你把英语翻译成德语 从德语到英语, 句子结构将是最重要的 可能是不同的,换句话说可能是不同的 只能用在含义,上下文, 很可能不会改变

编译器也是如此/ 如果你从C到ASM, 逻辑是一样的,只是一个 不同的阅读方式(以及 课程(已优化)


关于C#,你已经得到了很多很棒的工具,比如Reflector。但是,如果代码被混淆,您在阅读时会遇到问题。

请记住,这样做可能会违反许可协议……Reflector是我用于反转的最好工具:))Reflector也可以很好地将代码转换,例如从VB.NET转换为C#。是的,有一个很好的“disassembly”-将完整库导出到cs文件的插件。