linux .Xauthority文件的内部格式是什么?

jm81lzqq  于 2022-12-22  发布在  Linux
关注(0)|答案(3)|浏览(252)

好吧,主题。
我已经搜索了很多,但不幸的是,什么也没有找到。是否有一些文档描述这种格式?或者结构需要从xauth源文件中提取出来?

8qgya5xd

8qgya5xd1#

可能不完全是你要找的,但把一个答案只是为了格式化。
. Xauthority是一个结构数组:

typedef struct xauth {
    unsigned short   family;
    unsigned short   address_length;
    char            *address;
    unsigned short   number_length;
    char            *number;
    unsigned short   name_length;
    char            *name;
    unsigned short   data_length;
    char        *data;
} Xauth;

您可能仍然需要能够解码每个条目--如果不需要通过源代码进行解码的话:Xauth.h
例如:

$ od -xc --endian=big .Xauthority | more
0000000    0100    0007    6d61    7869    6d75    7300    0130    0012
        001  \0  \0  \a   m   a   x   i   m   u   s  \0 001   0  \0 022
0000020    4d49    542d    4d41    4749    432d    434f    4f4b    4945
          M   I   T   -   M   A   G   I   C   -   C   O   O   K   I   E
0000040    2d31    0010    c0ac    9e9c    ee82    ef59    f406    b7f9
          -   1  \0 020 300 254 236 234 356 202 357   Y 364 006 267 371
0000060    b745    254e    0100    0007    6d61    7869    6d75    7300
        267   E   %   N 001  \0  \0  \a   m   a   x   i   m   u   s  \0

第一个短接为0x100,表示系列
下一个短接是0x0007,表示地址的长度
接下来的7个字节是地址:最大值
下一个短的是0001,座位号的长度
下一个字节是30,ascii 0,座位号
下一个短字符是0x0012,十进制18,即名称的长度
接下来的18个字节是名称:麻省理工神奇饼干1
下一个短整型是0x0010(十进制16),即数据的长度
接下来的16个字节是数据:0xc0ac到0x254e。
然后一切重新开始。

tgabmvqs

tgabmvqs2#

这里有一些文件供你参考。
基于Cookie的访问(.Xauthority文件)遵循Inter-Client Exchange (ICE) Protocol并在Inter-Client Exchange Library中实现,您将在附录部分中找到更多格式细节。
例如,附录B描述了常用的MIT-MAGIC-COOKIE-1身份验证方法。

bgtovc5b

bgtovc5b3#

正确的规范在Xau库的文档中。
.Xauthority文件是一个二进制文件,由以下格式的一系列条目组成:

2 bytes     Family value (second byte is as in protocol HOST)
2 bytes     address length (always MSB first)
A bytes     host address (as in protocol HOST)
2 bytes     display "number" length (always MSB first)
S bytes     display "number" string
2 bytes     name length (always MSB first)
N bytes     authorization name string
2 bytes     data length (always MSB first)
D bytes     authorization data string

相关问题