Tôi đã viết một kịch bản lệnh nhỏ và truy tìm nó bằng cách sử dụng strace mặc dù tập lệnh này, tôi đang cố gắng tìm nạp thông điệp kiểm tra từ hạt nhân bằng giao thức netlink, giống như auditd.Làm thế nào để giải mã thông tin này từ đầu ra strace
Sau đây là sản lượng strace trên đường đi của tôi Script http://paste.ubuntu.com/8272760/
Tôi cố gắng để tìm ra lập luận rằng auditd cung cấp cho các chức năng sendto. Khi tôi chạy strace trên auditd tôi nhận được sau đầu ra
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
Và khi tôi strace tập đi của tôi, tôi nhận được đầu ra sau. Tôi đang tìm kiếm để giải mã các đối số thứ hai của tuyên bố này
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
Để cụ thể
"\21\0\0\0\350\3\5\0\1\0\0\0\0\0\0\0\t"
Bây giờ tôi muốn chuyển đổi này để chuỗi hoặc byte mảng, có cách nào để chuyển đổi này để chuỗi hoặc mảng byte?
Trong mã thực tế của tôi, đối số này là một mảng byte.
https://github.com/mozilla/Audit-Go/blob/testing/netlink_old.go#L58
Hrm: có vẻ như 'wb' trong mã nguồn của bạn đã * là * một' [] byte', vì vậy tôi không hiểu câu hỏi như được đặt ra hoặc tại sao strace có liên quan. (Điều gì đang xảy ra làm cho 'strace' cần thiết hơn là dựa vào thiết bị đo mã Go?) – twotwotwo
Riêng biệt, [thông thường để tránh nhập dấu chấm] (https://code.google.com/p/go-wiki/wiki/ CodeReviewComments # Import_Dot) giống như '. "syscall". – twotwotwo
Tôi không chắc chắn, nhưng có lẽ vấn đề là bạn đang xử lý với đầu ra strace đó là * không * tất cả từ mã của bạn, và bạn không chắc chắn làm thế nào để phân tích nó. Những gì tôi có có lẽ không phải là cách thực hành tốt nhất để làm điều đó, nhưng tôi nghĩ rằng JavaScript sử dụng đủ gần với cùng một quy tắc trích dẫn bạn có thể chỉ cần thả chuỗi vào một kịch bản: http://jsfiddle.net/2tukw37o/ – twotwotwo