TypeDef Table
Each row represents a class in the current assembly.
Columns:
Flags (a 4-byte bit mask of type TypeAttributes).
TypeName (index into String heap).
TypeNamespace (index into String heap).
[COLOR=deeppink]Extends (index into TypeDef, TypeRef or TypeSpec table; more precisely, a TypeDefOrRef coded index). [/COLOR]
FieldList (index into Field table; it marks the first of a continuous run of fields owned by this type). The run continues to the smaller of:
the last row of the Field table.
the next run of Fields, found by inspecting the FieldList of the next row in this TypeDef table.
MethodList (index into MethodDef table; it marks the first of a continuous run of methods owned by this type). The run continues to the smaller of:
the last row of the MethodDef table.
the next run of Methods, found by inspecting the MethodList of the next row in this TypeDef table.
从上面的资料可以看出,Extends代表一个继承对象,指到 TypeDef 或者 TypeRef ?的另一个 class。 其值是一个index,而tankaiha给出的程序中这个值是FFFF,如果我没理解错的话,应该可以看成-1,这里引起了reflector数组超界,但reflector程序本身没有对这种异常加以处理,这就导致了相关信息不能正确显示。(Index was outside the bounds of the array.System.IndexOutOfRangeException)
从这里可以推断,只要修改元数据表中的任一个index值,使其为-1,都应该能引起reflector异常。