反编译 .NET 2.0 二进制文件

发布于 2024-08-21 17:37:18 字数 79 浏览 3 评论 0原文

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

Is it possible to decompile a .NET 2.0 binary file (*.exe) to some sort of readable code? Or if not, just extract some information from it (for example method names, debugging information, etc.)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

神回复 2024-08-28 17:37:18

您可能需要查看 Reflector,它应该向您显示 C# 或伊利诺伊州。

编辑:

随着 Reflector 成本的增加,我已切换到 ILSpy 来满足我的日常需求。

You might want to look at Reflector, it should show you the assembly as C# or IL.

EDIT:

With the increased cost of Reflector, I have switched to ILSpy for my day to day needs.

蓝天白云 2024-08-28 17:37:18

将 exe 放入 ILDASM 或 Dot Net Reflector 应该可以解决问题。

Dropping the exe into ILDASM or Dot Net Reflector should do the trick.

a√萤火虫的光℡ 2024-08-28 17:37:18

搜索 Lutz Roeder,您会发现:

http://www.red-gate.com /产品/反射器/

Search for Lutz Roeder and you'll find :

http://www.red-gate.com/products/reflector/

兔姬 2024-08-28 17:37:18

我将引用我自己的今天早些时候提出的问题

你永远无法回到确切的状态
相同来源,因为没有
有关保存的元数据
编译后的代码。

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

如果你是的话,请看看这本书
对这些事情感兴趣: 倒车:
逆向工程的秘密。

编辑

这里有一些编译器-101,如果你是的话
用另一个词定义编译器
不像“编译器”那么技术性,
会是什么?

答案:翻译

编译器翻译语法 /
你写进另一个的短语
C 编译器翻译成的语言
汇编甚至机器代码。 C# 代码
被翻译成IL等等。

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

一个更现实的例子是如果
你 从 英语 翻译成 德语
以及从德语回到英语,
句子结构最
可能会有所不同,换句话说可能
可以使用但含义,上下文,
很可能不会改变。

编译器也是如此/
如果你从 C 转到 ASM 的话,翻译一下,
逻辑是一样的,只是一个
不同的阅读方式(以及
当然是优化的)。

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

I will Quote myself from this question earlier today:

You can never get back to the exact
same source since there is no
meta-data about that saved with the
compiled code.

But you can re-create code out from
the assembly-code.

Check out this book if you are
interested in these things: Reversing:
Secrets of Reverse Engineering.

Edit

Some compilers-101 here, if you were
to define a compiler with another word
and not as technical as "compiler",
what would it be?

Answer: Translator

A compiler translates the syntax /
phrases you have written into another
language a C compiler translates to
Assembly or even Machine-code. C# Code
is translated to IL and so forth.

The executable you have is just a
translation of your original text /
syntax and if you want to "reverse it"
hence "translate it back" you will
most likely not get the same structure
as you had at the start.

A more real life example would be if
you Translate from English to German
and the from German back to English,
the sentance structure will most
likely be different, other words might
be used but the meaning, the context,
will most likely not have changed.

The same goes for a compiler /
translator if you go from C to ASM,
the logic is the same, it's just a
different way of reading it ( and of
course its optimized ).

Regarding C#, you have already been given a lot of great tools like Reflector. However, if the Code is obfuscated you are going to have problems reading it.

甜点 2024-08-28 17:37:18

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

Yes. First all .net libraries have manifests with type information it them. They can be interrogated problematically using reflection, or by using tools like reflector. Take a look at the system.reflection namespace for the classes you will need to take a look at.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文