我对转储对象有疑问。
0:000> !do 0x012817b8
Name: blabla.Union2
MethodTable: 009231ac
EEClass: 00921548
Size: 16(0x10) bytes
Fields:
MT Field Offset Type VT Attr Value Name
790fd0f0 4000003 4 System.Object 0 instance 00000000 o
7912d7c0 4000004 8 System.Int32[] 0 instance 00000000 arr
有什么意义:Field,Offset,VT?
答案 0 :(得分:2)
自从我使用.net元数据层以来已经有一段时间了,但是IIRC:
- Field是union的该字段的标记(包含一个值,因为这些是字段)
- Offset是union中该字段的字节偏移量(union为16字节,field1从字节4开始,field2从字节8开始)
- VT是V-Table插槽(不适用,因为它们是字段而不是方法)
答案 1 :(得分:0)
您还可以通过dd youobjectaddress+4 l1
你可以使用poi(youobjectaddress+4)
在windbg脚本中使用它,它基本上是第一个字段的指针o