Napisałem mały skrypt go i prześledziłem go przy użyciu strace chociaż ten skrypt, próbuję pobrać wiadomości audytu z jądra przy użyciu protokołu netlink, podobnie jak jak auditd.Jak rozszyfrować te informacje z wyjścia strace
Poniżej znajduje się wyjście strace na mojej podróży Script http://paste.ubuntu.com/8272760/
Próbuję znaleźć argument, że auditd dostarczyć do funkcji sendto. Kiedy biegnę strace na auditd dostaję następujący komunikat
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
I kiedy strace mój plik odejść uzyskać następujące dane wyjściowe. szukam zdekodować drugi argument tego stwierdzenia
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
Mówiąc konkretnie
"\21\0\0\0\350\3\5\0\1\0\0\0\0\0\0\0\t"
Teraz chcę przekonwertować to do strun lub bajtów tablicy, czy jest jakiś sposób przekonwertować ten ciąg lub tablica bajtów?
W moim aktualnym kodzie tym argumentem jest tablica bajtów.
https://github.com/mozilla/Audit-Go/blob/testing/netlink_old.go#L58
Hrm: wygląda 'wb' w kodzie źródłowym jest już * * a' [] byte', więc nie rozumiem pytanie, jakie, albo dlaczego strace jest zaangażowana. (Co się dzieje, co czyni 'strace' koniecznym zamiast polegać na oprzyrządowaniu kodu Go?) – twotwotwo
Osobno, [jest to typowe, aby uniknąć importowania punktów] (https://code.google.com/p/go-wiki/wiki/ CodeReviewComments # Import_Dot) podobnie jak '. "syscall". – twotwotwo
Nie jestem pewien, ale może problem polega na tym, że masz do czynienia z wyjściem strace, które nie * pochodzi z kodu, i nie wiesz, jak go przeanalizować. To, co mam, prawdopodobnie nie jest najlepszym sposobem na zrobienie tego, ale myślę, że JavaScript używa wystarczająco blisko tych samych zasad cytowania, że możesz po prostu upuścić ciąg znaków do skryptu: http://jsfiddle.net/2tukw37o/ – twotwotwo