ildasm.exe 反汇编代码查看器意外退出失败,错误代码为 BEX64

ildasm.exe disassembly code viewer failed to exit unexpectedly with error code BEX64

目前我是一名程序员,每天使用C#语言开发我的应用程序。我编写了我的应用程序,今天我决定反汇编我的应用程序以查看实际的汇编代码是什么样的。

我查看了 Microsoft 文档,得知我有一个工具可以执行此操作,它是“ildasm.exe”,它在我安装 Visual Studio 时预装,用于查看汇编代码作为中央代码。 IL 时间(我知道 C# 不同于 C++ 和 C 或 Pascal)

我使用了Visual Studio的命令行工具,它的名字是:“x64 Native Tools Command Prompt for VS 2019”,然后运行以管理员身份执行此操作。

然后在新打开的 window 中输入 ildasm,它会显示一个图形 window。我 select 我的应用程序打开它,但是当我点击任何方法查看它的汇编代码时,ildasm 程序立即退出。

我通过转储“.il”文件再次尝试,以便我可以在记事本中查看它们,但即便如此,ildasm 只显示了一个进度 window,然后立即退出。

还生成了一个“.il”文件,但是当我查看它时,它只写入了程序集部分(这决定了当您右键单击应用程序 > 属性和 select 详细信息选项卡)

我试过输入命令:

ildasm "E:\Projects_MSVS\AESEncryptDecyptFile\AESEncryptDecyptFile\bin\Debug\AESEncryptDecryptFile.exe" /out="E:\Projects_MSVS\AESEncryptDecyptFile\AESEncryptDecyptFile\bin\Debug\AESEncryptDecryptFile.exe.il"

和上次没什么区别,ildasm立马退出了

它的共同点是没有消息显示来报告这个错误,它只是停止应用程序并退出。

我真的不相信这有什么异常,所以我使用诊断数据查看器工具进行调查。在“问题报告”选项卡中搜索了一段时间后,我终于找到了。它抛出了七个停止工作时间,这对应于我尝试渲染程序的七次。在第七次报告(意思是第一次尝试)上,在 Stopped Working 一词的右侧,它不再是一个勾号图标(✓),而是一个挂起图标(它看起来像这样:⟳),当我点击 Extract Report 时文件它只是打开 Windows 资源管理器 window,它是一个空文件夹(这个文件夹是空的),我还启用了显示所有隐藏文件的选项,包括系统文件。

我发布了所有七条错误消息,表明我使用诊断数据查看器工具以便于调查

这是我使用 Diagnostic Data Viewer 工具进行调查时得到的结果,我的每次尝试都将标记为(第 N 次尝试),并且每次尝试时,错误报告都是分开的:

(第一次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:16:48 PM 
Problem: Stopped working 
Status: Report queued 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: (18446744073709551615) 

Files that help describe the problem 

minidump.mdmp 
WERInternalMetadata.xml 
WERInternalRequest.xml 
memory.csv 
sysinfo.txt 
AppCompat.txt 
memory.hdmp 
WERDataCollectionStatus.txt

(第二次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:17:49 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第三次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:19:22 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第四次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:20:14 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第五次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:21:33 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第六次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:26:34 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第七次尝试,也是最后一次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:26:59 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 

Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

这是我的电脑配置(从 Windows 上预装的系统信息工具中提取):

OS Name Microsoft Windows 11 Home Single Language 
Version 10.0.22000 Build 22000 
Other OS Description    Not Available 
OS Manufacturer Microsoft Corporation 
System Name CYBERDAY 
System Manufacturer ASUSTeK COMPUTER INC. 
System Model    VivoBook_ASUSLaptop X409FA_X409FA 
System Type x64-based PC 
System SKU   
Processor   Intel(R) Core(TM) i3-8145U CPU @ 2.10GHz, 2304 Mhz, 2 Core(s), 4 Logical Processor(s) 
BIOS Version/Date   American Megatrends Inc. X409FA.305, 1/28/2021 
SMBIOS Version  3.2 
Embedded Controller Version 255.255 
BIOS Mode   UEFI 
BaseBoard Manufacturer  ASUSTeK COMPUTER INC. 
BaseBoard Product   X409FA 
BaseBoard Version   1.0 
Platform Role   Mobile 
Secure Boot State   On 
PCR7 Configuration  Elevation Required to View 
Windows Directory   C:\Windows 
System Directory    C:\Windows\system32 
Boot Device \Device\HarddiskVolume1 
Locale  United States 
Hardware Abstraction Layer  Version = "10.0.22000.1" 
Time Zone   SE Asia Standard Time 
Installed Physical Memory (RAM) 4.00 GB 
Total Physical Memory   3.86 GB 
Available Physical Memory   306 MB 
Total Virtual Memory    11.4 GB 
Available Virtual Memory    4.55 GB 
Page File Space 7.50 GB 
Page File   C:\pagefile.sys 
Kernel DMA Protection   Off 
Virtualization-based security   Running 
Virtualization-based security Required Security Properties   
Virtualization-based security Available Security Properties Base Virtualization Support, Secure Boot, DMA Protection, Mode Based Execution Control 
Virtualization-based security Services Configured    
Virtualization-based security Services Running   
Device Encryption Support   Elevation Required to View 
A hypervisor has been detected. Features required for Hyper-V will not be displayed.

我加入了 Windows 内幕计划,我加入的获取新更新的频道是 Beta 频道 .我安装的.NET Framework版本是4.8

非常感谢任何帮助。

终于找到问题了。我打开了将资源嵌入到可执行文件中,显然可执行文件变得太重以至于看不到 MSIL 中间运行时代码(它真的很重),我关闭了将资源嵌入到可执行文件中,然后编译它,ildasm 工作了。