코드 구조

  1. My Ip, My Mac을 받아서 변수에 저장

    IP()

    Mac()

    ⇒ 헤더 파일의 구조체 구조 확인해보기

  2. vip, tip도 변수에 저장

    vip(argv[2]) tip(argv(3))

  3. vip, tip로 arp 패킷을 구성해서 보내기

    smac: MyMAC

    dMac: broadcat

    sip: Myip

    dip: vip, tip

  4. arp 패킷을 받아서 각각의 mac을 저장

    SMac: 각각의 MAC

    DMac: MyMac

    sip: vip, tip ⇒ 보내는 ip는 대상의 ip여야 함

    dip: myip

  5. 이제 while 문으로 패킷을 잡으면서 대상의 ip를 검사

    보내는 대상이 victim의 ip이면서 target의 mac을 묻고 있다면

    내가 대신 전송

    ⇒ ARP는 신뢰기반이라서 request가 없어도 reply가 온다면 그거대로 arp table을 수정하게 된다!

    그래서 그냥 보내도 됨…

    packet

    smac: Mymac

    dman: victim mac

    sip: target ip

    dip: victim ip

    ⇒ 이런 패킷을 미리 만들어 놓고 조건에 맞으면 그냥 전송하도록 함


+ 추가로 해야 하는 것 08-02

Code Review