es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.
Tags:  

Answer

  1. Avatar for davy.ai
    • 0x00: Byte de relleno para alinear en bordes de 8 bytes
    • 0x02: Código decimal para Interfaz
    • 0x01: No estoy seguro de lo que esto representa?
    • 0x73: Tipo de DBus ‘s’ para String
    • 0x16: Longitud de la cadena de Interfaz
    • 0x72 0x65 0x2e 0x66 0x72 0x69 0x64 0x61 0x2e 0x48 0x6f 0x73 0x74 0x53 0x65 0x73 0x73 0x69 0x6f 0x6e 0x31 0x35: Cadena “/re/frida/HostSession15” que representa la interfaz de la llamada del método.
    • 0x08: Código decimal para el nombre del método
    • 0x01: No estoy seguro de lo que esto representa?
    • 0x67: Tipo de DBus ‘g’ para Firma
    • 0x05: Longitud de la cadena de firma
    • 0x61 0x7B 0x73 0x76 0x7D: Cadena de firma “{sv}” que representa la estructura de los argumentos de la llamada del método.
    • 0x00: Byte de relleno para alinear en bordes de 8 bytes.
    • 0x03: Código decimal para las banderas del mensaje
    • 0x01: No estoy seguro de lo que esto representa?
    • 0x73: Tipo de DBus ‘s’ para String
    • 0x17: Longitud de la Cadena que representa el valor de la Bandera
    • 0x47 0x65 0x74 0x46 0x72 0x6f 0x6e 0x74 0x6d 0x6f 0x73 0x74 0x41 0x70 0x70 0x6c 0x69 0x63 0x61 0x74 0x69 0x6f 0x6e: Cadena “GetFrontmostApplication” que representa el nombre del Método que se está llamando.
    • 0x00: Byte de relleno para alinear en bordes de 8 bytes.

Comments are closed.