ethernet protocol에서 data 부분의 내용을 알아내려고 합니다.
글쓴이: woosungp / 작성시간: 목, 2003/07/24 - 2:01오전
dhcp 에서 주고 받는 메시지들을 ethernet protocol의 패킷에서 dhcp format field값을 뽑아내는 함수를 만들려고 합니다.
알아내려고 하는 것들은 ciaddr, yiaddr ,request ip,dns,giaddr,option등
입니다.물론 field의 값을 다 알아낼수 있으면 더욱 좋지만..
저는 지금 커널 프로그래밍을 책을 보고 어찌해야할지 손을 못대고 있습니다.
skbuff에서 조작을 해야하는거 같다는 생각은 드는데 어디서부터 손을 대야할지 ..
프로그래밍에도 별로 재주가 없어 참 난감합니다.
힌트 좀 주셨으면 좋겠습니다.
기왕이면 packet에서 어떤식으로 각 field의 값을 알아내는지 code의 example를 보여주시면 더더욱 좋겠습니다...
저 진짜 초짜거든여...알고는 싶은데 답답합니다.
Forums:
위에 잘못 올렸네..
패킷 필터링을 할거나 또는 변조를 하려면 커널 내부의 TCP/IP를 잘 아셔야 합니다. 그리고 TCP/IP프로토콜 책을 한번 보세요.. RFC문서를 보거나.. (RFC문서는 너무 많나?? )
리눅스라면
일단 Netfilter부분을 보세요..
그리고 커널 소스 또는 ipchain이나 iptables의 소스를 분석하거나 bridge라는 디바이스 모듈을 보거나.. 뭐 이렇게 하면 빨리 알수 있으리라 생각합니다.
grep으로 한 번 검색해보세요 NETFILTER , 또는 HOOK인가 아주 오래되서 기억이 가물 가물 .
그럼 열심히하세요..
패킷을 변조할 것이 아니라면 pcap 라이브러리를 써서 프레임을 잡아내서
패킷을 변조할 것이 아니라면 pcap 라이브러리를 써서 프레임을 잡아내서
분석하시면 됩니다. 이더넷 프레임 헤더만 떼어내면 바로 IP헤더니까
(DHCP는... 브로드캐스트일텐데...) RFC랑 잘 대조하시면 바로 분석이
가능할 겁니다.
목적이 관찰이 아니라 패킷을 변형해야 한다면 중간에 적당한 게이트웨이를
설치하거나 커널 모듈을 만드셔야 겠죠.
--
익스펙토 페트로눔
댓글 달기