简体   繁体   English

检查/反汇编.Net本机映像

[英]Inspect / disassemble .Net native images

Is it possible to disassemble / inspect the native code produced by the .Net JITer / ngen? 是否可以反汇编/检查.Net JITer / ngen生成的本机代码? (for purely academic purposes) (纯粹出于学术目的)

In attempting to answer this question I became intrigued about what sort of optimisations the JITer would perform - rather than speculate wildly I'd really like to be able to see for myself what is really hapenning. 在尝试回答这个问题时,我对JITer会执行哪种优化感到很感兴趣-而不是疯狂地猜测,我真的很想亲自观察一下真正的问题。

So far I've: 到目前为止,我已经:

  1. Installed a native image of my candidate assembly using ngen (is the output of this potentially different from the output of the JIT compiler?) 使用ngen安装了我的候选程序集的本机映像(此输出的输出可能与JIT编译器的输出不同吗?)
  2. Copied the native image out of the GAC 从GAC复制本地图像

But now I'm a bit stuck - as far as I was aware .Net assemblies are in the portable execuable format, but the normal tools that I might use to disassemble such a file (objdump) just barf: 但是现在我有点卡住了-据我所知.Net程序集采用可移植的可执行格式,但是我可能用来反汇编此类文件(objdump)的普通工具只是barf:

C:\Users\justin\Desktop>objdump -d ConsoleApplication1.ni.exe
objdump: ConsoleApplication1.ni.exe: File format not recognized

Is it feasible to peek inside a native image in this way? 以这种方式窥视本机映像是否可行? Failing that is there some alternative way that I might be able to satisfy my curiosity? 否则,我是否可以满足好奇心? (for example disassembling the code in a running process) (例如,在运行的进程中反汇编代码)

过去尝试这种事情时,我在windbg和dumpbin上取得了一些成功。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM