ethernet protocol에서 data 부분의 내용을 알아내려고 합니다.

woosungp의 이미지

dhcp 에서 주고 받는 메시지들을 ethernet protocol의 패킷에서 dhcp format field값을 뽑아내는 함수를 만들려고 합니다.
알아내려고 하는 것들은 ciaddr, yiaddr ,request ip,dns,giaddr,option등
입니다.물론 field의 값을 다 알아낼수 있으면 더욱 좋지만..

저는 지금 커널 프로그래밍을 책을 보고 어찌해야할지 손을 못대고 있습니다.
skbuff에서 조작을 해야하는거 같다는 생각은 드는데 어디서부터 손을 대야할지 ..
프로그래밍에도 별로 재주가 없어 참 난감합니다.
힌트 좀 주셨으면 좋겠습니다.
기왕이면 packet에서 어떤식으로 각 field의 값을 알아내는지 code의 example를 보여주시면 더더욱 좋겠습니다...

저 진짜 초짜거든여...알고는 싶은데 답답합니다.

bluelight의 이미지

패킷 필터링을 할거나 또는 변조를 하려면 커널 내부의 TCP/IP를 잘 아셔야 합니다. 그리고 TCP/IP프로토콜 책을 한번 보세요.. RFC문서를 보거나.. (RFC문서는 너무 많나?? )

리눅스라면
일단 Netfilter부분을 보세요..
그리고 커널 소스 또는 ipchain이나 iptables의 소스를 분석하거나 bridge라는 디바이스 모듈을 보거나.. 뭐 이렇게 하면 빨리 알수 있으리라 생각합니다.

grep으로 한 번 검색해보세요 NETFILTER , 또는 HOOK인가 아주 오래되서 기억이 가물 가물 .

그럼 열심히하세요..

cjh의 이미지

패킷을 변조할 것이 아니라면 pcap 라이브러리를 써서 프레임을 잡아내서
분석하시면 됩니다. 이더넷 프레임 헤더만 떼어내면 바로 IP헤더니까
(DHCP는... 브로드캐스트일텐데...) RFC랑 잘 대조하시면 바로 분석이
가능할 겁니다.

목적이 관찰이 아니라 패킷을 변형해야 한다면 중간에 적당한 게이트웨이를
설치하거나 커널 모듈을 만드셔야 겠죠.

--
익스펙토 페트로눔

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.