![Wie speichere ich die Daten direkt im Kernelmodul auf der Festplatte?](https://rvso.com/image/76405/Wie%20speichere%20ich%20die%20Daten%20direkt%20im%20Kernelmodul%20auf%20der%20Festplatte%3F%20.png)
Ich erfasse das TCP-Paket in der Funktion von netif_receive_skb
, ich möchte die Wiedergabelast des TCP-Pakets speichern. Wir können die Datei im Kernelmodul nicht lesen/schreiben, also ist es vielleicht eine Möglichkeit, sie direkt auf der Festplatte zu speichern?
Das ist eine gute Möglichkeit, oder gibt es andere Vorschläge?
Antwort1
Möglicherweise stellen Sie fest, dass Ihr Bedarf am besten gedeckt wird, wenn Sie Ihre Anforderungen aus einem anderen Blickwinkel betrachten.
iptables
verfügt über eine -j NFQUEUE
Option (siehe man iptables
), mit der Sie ausgewählte Pakete für den Benutzerbereich in die Warteschlange stellen können. In Ihrem Benutzerbereichsprogramm wäre es trivial, die Pakete auf die Festplatte zu schreiben.
Sehenhttps://home.regit.org/netfilter-en/using-nfqueue-and-libnetfilter_queue/für einige wirklich interessante Details, die ich, wie ich anmerken muss, nur überflogen habe.