Я написал небольшой go script и проследил его, используя strace хотя это script, я пытаюсь получить сообщения аудита из ядра, используя протокол netlink, точно так же, как auditd.
Ниже показан вывод strace на моем пути script - http://paste.ubuntu.com/8272760/
Я пытаюсь найти аргумент, который auditd предоставляет функции sendto. Когда я запускаю strace on auditd, я получаю следующий вывод
sendto(3, "\20\0\0\0\350\3\5\0\1\0\0\0\0\0\0\0", 16, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 16
И когда я собираю свой файл go, я получаю следующий вывод. Я хочу декодировать второй аргумент этого утверждения
sendto(3, "\21\0\0\0\350\3\5\0\1\0\0\0\0\0\0\0\t", 17, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 17
Чтобы быть конкретным
"\21\0\0\0\350\3\5\0\1\0\0\0\0\0\0\0\t"
Теперь я хочу преобразовать это в массив строк или байтов, есть ли способ преобразовать это в массив строк или байтов?
В моем действительном коде go этот аргумент представляет собой массив байтов.
https://github.com/mozilla/Audit-Go/blob/testing/netlink_old.go#L58