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:
아시는 내용일것 같군요.
행복하세요 ^_^
댓글 달기