博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搞死ILDASM
阅读量:4971 次
发布时间:2019-06-12

本文共 550 字,大约阅读时间需要 1 分钟。

复制下面的代码:

.assembly a {}

.module a.dll

.field static int32[-268435455...268435456] f_m268435455

保存为a.il。打开Visual Studio的命令行窗口,执行下面的命令,将这段代码编译为a.dll:

ilasm /dll a.il

然后执行下面的命令,尝试用ILDASM打开生成的dll文件:

ildasm a.dll

好了,ILDASM死了:

这是ILASM在处理下标为负数的数组时存在的问题,但也不排除ILDASM自己的问题。

今天先抛出这个问题,改天再撰文分析数组的元数据签名,以及ILASM在这方面的BUG。

注:

1. 上述程序可放心试验,只会影响ildasm.exe一个进程,不用怕机器整个挂掉。

2. 该程序针对.net 2.0~3.5,4.0没有试过,不知道改进了没有。

3. 经仔细思考后发现,这个故障并不仅因为下标为负数,还因为数组的长度过长;如果将上标268435456改小一些,就会发现ILDASM不死了,但得到的下标值是错误的。

转载于:https://www.cnblogs.com/AndersLiu/archive/2009/04/23/ildasm-crash.html

你可能感兴趣的文章
Galaxy Nexus 全屏显示-隐藏Navigation Bar
查看>>
Mob-第三方分享 /手机验证码
查看>>
Spring中使用Velocity模板
查看>>
实现model中的文件上传FTP(一)
查看>>
MonkeyRecorder
查看>>
Maven概述
查看>>
上周热点回顾(8.18-8.24)
查看>>
Feature toggle
查看>>
day02
查看>>
我是怎么招聘程序员的
查看>>
gvim 配置Pydiction
查看>>
Linux安装指定mysql版本
查看>>
Exception in thread "main" java.lang.ClassNotFoundException: 解决方法
查看>>
移动应用(手机应用)开发IM聊天程序解决方案
查看>>
[转载] K3漏油器全紫铜替换原硅胶垫教程。标准姿势
查看>>
python set
查看>>
VC中使用ADO操作数据库的方法
查看>>
如何判断域名是否被微信拦截 被已经被微信封了的的域名网址如何在微信中正常打开...
查看>>
分布式锁的三种实现方式
查看>>
AJAX原生JS代码
查看>>