Я написал небольшой скрипт go и проследил его, используя strace , хотя этот скрипт я пытаюсь получить сообщения аудита из ядра, используя протокол netlink, точно так же, как auditd.Как декодировать эту информацию из выхода strace
Ниже приведен результат Трассирования на моем пути script- http://paste.ubuntu.com/8272760/
Я пытаюсь найти аргумент, что auditd обеспечивают функции SENDTO. Когда я бегу Трассирование на 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
И когда я Трассирование мой файл идти я получаю следующий результат. Ищу декодировать второй аргумент этого утверждения
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
Hrm: он выглядит как 'wb' в вашем исходном коде уже * is * a' [] byte', поэтому я не понимаю поставленный вопрос или почему задействован strace. (Что происходит, что делает 'strace' необходимым, а не полагаться на инструментарий кода Go?) – twotwotwo
Отдельно [традиционно избегать импорта точек] (https://code.google.com/p/go-wiki/wiki/ CodeReviewComments # Import_Dot), как '. "SYSCALL". – twotwotwo
Я не уверен, но, может быть, проблема в том, что вы имеете дело с выходом strace, который * не * все из вашего кода, и вы не знаете, как его разобрать. То, что у меня есть, вероятно, не самый лучший способ сделать это, но я думаю, что JavaScript использует достаточно близко к тем же правилам цитирования, что вы можете просто поместить строку в скрипт: http://jsfiddle.net/2tukw37o/ – twotwotwo