skb_buff에서 UDP나 TCP의 데이터 내용을 보려면 어떻게 하나요?
글쓴이: blue39 / 작성시간: 수, 2004/01/14 - 5:38오후
안녕하세요~~
밑에도 비슷한 질문을 올린거 같은데 답변 주신 분 고맙습니다. 그런데 그 부분
은 이미 알고 있던 내용이구요.. ^^; 다름이 아니라 sk_buff 구조체를 보면
상위 계층에서 내려오면서 각 필드들이 채워 지잖아요. 그럴때 디바이스 드라이
버까지 내려왔다면 모든 데이터가 채워졌다고 볼 수 있겠죠? 그 상태에서 sk_
buff 의 내용에 접근해서 UDP,TCP의 포트 번호등을 알 수 없을까 해서요..
구조체 안에 보면
/* Transport layer header */ union { struct tcphdr *th; struct udphdr *uh; struct icmphdr *icmph; struct igmphdr *igmph; struct iphdr *ipiph; struct spxhdr *spxh; unsigned char *raw; } h; /* Network layer header */ union { struct iphdr *iph; struct ipv6hdr *ipv6h; struct arphdr *arph; struct ipxhdr *ipxh; unsigned char *raw; } nh; /* Link layer header */ union { struct ethhdr *ethernet; unsigned char *raw; } mac;
이런 식으로 구성이 되고 상위 레이어에서 각 값을 채우는 걸로 알고 있습니다.
그런데 왜 각 값에 접근을 하려고하면 dereferencing pointer to
incomplete type 이라는 오류가 발생하는지 모르겠습니다. 조언 부탁드립니
다. 소스를 예로 들어 주시면 더욱 좋구요.. 그럼 좋은 하루 보내세요
Forums:
이 문서가 ...
내용이 단순 후킹이지만, 괜찮을 듯 합니다. :oops:
아시는 내용일것 같군요.
행복하세요 ^_^
댓글 달기