如何从可执行文件转储汇编程序

发布于 2024-12-06 05:24:30 字数 76 浏览 0 评论 0原文

我有一个用 C# 编译的可执行文件,我想从中转储汇编代码中的代码,有没有任何工具可以做到这一点? 是否也可以从生成的汇编器创建可执行文件?

I have an executable I compiled with C# and I would like to dump the code in assembler code from it, are there any tools to do that?
Also is it possible to also create an executable from the assembler generated?

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

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

发布评论

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

评论(2

萌吟 2024-12-13 05:24:30

C# 不会编译为汇编程序级别,它会编译为通用中间语言 (CIL),这不是一回事。编译的 C# 需要解释器,并且始终如此。您不能仅将已编译形式的各个部分复制到非 .NET 程序中。

C# doesn't compile down to assembler level, it compiles into a common intermediate language (CIL), which isn't the same thing. Compiled C# requires an interpreter, and always will. You can't just copy pieces of the compiled form into a non .NET program.

挽清梦 2024-12-13 05:24:30

C# 不会编译为机器代码,或者至少 Microsoft C# 编译器不会编译为机器代码。但是,您可以使用 ildasm

另外,如果您想了解 CLR 即时编译 C# 代码的一种方法,请使用 Mono 编译为汇编语言。他们的 网站 上给出了一个示例:

mono --aot program.exe

然后您可以 objdump -d 从中获取汇编语言,位于至少在 *nix/Mac 机器上,或者带有 Cygwin 或 MinGW 的 Windows 机器上。

C# doesn't compile to machine code, or at least the Microsoft C# compiler doesn't compile to machine code. However, you can get the intermediate language bytecode in an assembly-like printout using ildasm.

Also, if you want to see one way that the CLR could just-in-time compile your C# code, compile to assembly language using Mono. An example given on their website:

mono --aot program.exe

Then you can objdump -d to get assembly language from this, at least on a *nix/Mac machine, or a Windows machine with Cygwin or MinGW.

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