解读Mimikatz源码:PKULL_M_REGISTRY_HIVE_HANDLE含义解析
PKULL_M_REGISTRY_HIVE_HANDLE含义解析 这段是C语言的类型定义语法,拆开来理解:
typedef struct _KULL_M_REGISTRY_HIVE_HANDLE { ... } KULL_M_REGISTRY_HIVE_HANDLE:将自定义结构体_KULL_M_REGISTRY_HIVE_HANDLE重命名为KULL_M_REGISTRY_HIVE_HANDLE,这是该结构体的直接类型名称。*PKULL_M_REGISTRY_HIVE_HANDLE:在同一条typedef语句里,同时定义了指向该结构体的指针类型别名。简单说,PKULL_M_REGISTRY_HIVE_HANDLE就等价于KULL_M_REGISTRY_HIVE_HANDLE*,用来指代指向KULL_M_REGISTRY_HIVE_HANDLE结构体实例的指针。
这种写法在Windows平台的底层代码(比如Mimikatz这类工具)里很普遍,开发者习惯用前缀P标识指针类型,能快速区分普通结构体和结构体指针。你看代码里的PBYTE、PKULL_M_REGISTRY_HIVE_KEY_NAMED都是同样的规则——前者是BYTE*的别名,后者是指向另一个结构体的指针别名。
内容的提问来源于stack exchange,提问作者ffejrekaburb
相关产品推荐
相关产品推荐

