Interpretar mensajes de DBus
Estaba intentando interpretar los bytes en un mensaje de DBus según lo especificado en https://dbus.freedesktop.org/doc/dbus-specification.html. Esto se tomó de un pcap mientras se usaba la herramienta Frida.
Los bytes son:
0000 6c 01 00 01 08 00 00 00 01 00 00 00 70 00 00 00
0010 01 01 6f 00 15 00 00 00 2f 72 65 2f 66 72 69 64
0020 61 2f 48 6f 73 74 53 65 73 73 69 6f 6e 00 00 00
0030 02 01 73 00 16 00 00 00 72 65 2e 66 72 69 64 61
0040 2e 48 6f 73 74 53 65 73 73 69 6f 6e 31 35 00 00
0050 08 01 67 00 05 61 7b 73 76 7d 00 00 00 00 00 00
0060 03 01 73 00 17 00 00 00 47 65 74 46 72 6f 6e 74
0070 6d 6f 73 74 41 70 70 6c 69 63 61 74 69 6f 6e 00
0080 00 00 00 00 00 00 00 00
Hay algunos campos de los cuales no estoy seguro qué significan. Agradezco si alguien puede brindar alguna guía sobre esto.
- 0x6C: Se refiere a little endian.
- 0x01: Tipo de mensaje (Llamada de método).
- 0x00: Operaciones bit a bit OR.
- 0x01: Versión principal del protocolo.
- 0x08000000: Longitud del cuerpo del mensaje (Little Endian), comenzando desde el final del encabezado. ¿Se refiere a los ocho bytes nulos al final?
- 0x01000000: Serial de este mensaje (Little Endian).
- 0x70000000: (Little Endian) No estoy seguro de lo que esto representa. Este valor corresponde a la longitud del arreglo de estructuras, excluyendo los bytes nulos finales, que comienza en 0x0010 y termina en 0x007F.
- 0x01: Código decimal para la ruta del objeto.
- 0x01: No estoy seguro de lo que esto representa.
- 0x6F: Tipo de DBus ‘o’ para la ruta del objeto.
- 0x15: Longitud de la cadena de la ruta del objeto.
davy.ai