当调试模糊代码缺陷时,能够区分GUID和随机数据是有用的。
在Windows上,每个生成的GUID都是版本4,因此它的第三部分的前半字节为“4”。因此,如果16字节序列违反了该规则,则不是版本4 GUID。例如,
567E1ECB-EA1C-42D3-A3ED-87A5D824D167
这可以是版本4 GUID,也可以是其他任何内容,但是
567E1ECB-EA1C-02D3-A3ED-87A5D824D167 //third section starts with 0, not with 4
不是版本4的GUID。
其他16字节内存块是或不是有效GUID的标志是什么?