![커널 모듈에서 직접 디스크의 데이터를 어떻게 저장합니까?](https://rvso.com/image/76405/%EC%BB%A4%EB%84%90%20%EB%AA%A8%EB%93%88%EC%97%90%EC%84%9C%20%EC%A7%81%EC%A0%91%20%EB%94%94%EC%8A%A4%ED%81%AC%EC%9D%98%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%A0%80%EC%9E%A5%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20.png)
의 기능에서 TCP 패킷을 캡처하고 netif_receive_skb
, TCP 패킷의 플레이로드를 저장하고 싶습니다. 커널 모듈에서는 파일을 읽고 쓸 수 없으므로 디스크에 직접 저장하는 방법이 있을까요?
이것은 좋은 방법입니까, 아니면 다른 제안입니까?
답변1
요구 사항을 다른 각도에서 접근하면 요구 사항이 충족될 수도 있습니다.
iptables
사용자 공간에 대해 선택한 패킷을 대기열에 추가할 수 있는 -j NFQUEUE
옵션( 참조 )이 있습니다 . man iptables
사용자 공간 프로그램에서는 패킷을 디스크에 쓰는 것이 쉽지 않습니다.
보다https://home.regit.org/netfilter-en/using-nfqueue-and-libnetfilter_queue/몇 가지 정말 흥미로운 세부 사항에 대해서는 제가 훑어본 것뿐이라는 점을 지적하고 싶습니다.