2011년 11월 21일 월요일

[ TOOL ] ReplayPcap - 수정사항


안녕하십니까 FAST 관리자 '협군' 입니다.

먼저 gilgil 님께서 보내주신 버그 리포팅에 대해 진심으로 감사드립니다. (_ _ ) 

----------------------------------------------------------------------------------
버그 내용:
flow view 버그 및 icmp 처리시 오류

처리 내용:
flow view - IP 추출기능 수정
icmp 처리 - icmp 처리 기능 추가






















----------------------------------------------------------------------------------


약간의 변경사항이 있어서 다시 작성해 드립니다.^^


ReplayPcap ver 0.1
------------------


소개
----
본 프로그램은 pcap, cap, acp 등의 확장자를 가지는 패킷 저장 파일을 재생하는 툴이다.
원하는 패킷을 선택하여 지정한 네트워크 카드로 재생한다.
패킷의 재생 속도를 제어할 수 있고 IPv4 패킷을 IPv6 주소로 재생할 수 있는 것이 특징이다.

설치
----
본 프로그램은 별도의 설치가 필요 없으며 실행파일을 실행하여 동작한다.
윈도우 모든 버전의 환경에서 동작 가능하다.

운영체제
--------
windows XP/7( 테스트 진행 상황에 따라 변동 될 수 있음 )

필요라이브러리
--------------
winpcap 라이브러리( 4.1.2 테스트 완료 , 테스트진행 상황에 따라 변동 될 수 있음  )

버전
----
v0.1 : 최초 프로그램 버전

사용법
------
자세한 사용법은 본 프로그램의 메뉴얼을 참조한다.

작성자
------
정협


버그리포팅에 대해서는 최대한 빠르게 적용을 할 것 입니다.
다시 한번 gilgil 님께 감사드립니다. (^ ^ )



댓글 4개:

  1. 두번째 버그 나갑니다. ^^
    http://www.gilgil.net/11730#comment_11755

    답글삭제
  2. 음... 조작된 패킷이 아닌데요. -_-; 간단한 프로그램을 통하여 한번에 1481 바이트를 UDP상으로 보내는 패킷을 한번 잡아 보시기 바랍니다.

    sendto(... 1481, ...);

    udp data를 1481 바이트를 보내게 되면 MTU때문에 2개의 packet으로 쪼개 져서 보내어 지게 됩니다. 이 경우 2번째 패킷에서는 UDP header가 없습니다.

    첫번째 패킷 : eth + ip + udp + data(1480)
    두번째 패킷 : eth + ip + data(1)

    Route Mode에서는 두번째 패킷 처리가 골치가 아프죠. TCP에서는 이러한 현상이 나타나지 않지만 UDP에서는 이러한 현상이 자주 발생합니다. ^^

    답글삭제
  3. RE: 말씀해주신 내용 다시 확인하여 댓글 내용 고쳤습니다.

    안녕하십니까 협군입니다.^^

    무한한 관심 감사드립니다.

    ㅎㅎ 제 실력이 미천하여 완벽한 프로그램을 만들지를 못했네요^^

    우선 리포팅 해주신 부분을 확인하였습니다.

    재생하신 pcap은 IP fragment 된 UDP 패킷 입니다.

    flow view 부분에서 두번째 fragment 된 패킷을 UDP 패킷으로 인지하여 0x4141 을 포트로 보여주는 것 같습니다.

    툴 자체의 flow view는 현재 수정중이며 조작된 패킷에 대한 view는 어떻게 처리할 것인지 생각 중에 있습니다.

    정상 패킷이라는 전제하에 view를 만들어서 fragment 된 패킷은 다르게 보일수도 있습니다.

    해당 부분은 ver 0.2 에서 최대한 적용하도록 해보겠습니다.^^

    또한 질문에 대한 답변도 첨부하겠습니다.

    IPv6 는 IP 헤더에 체크섬이 존재하지 않습니다.

    TCP UDP ICMP 체크섬은 ipv4 와 동일하나 체크섬 계산시 가상헤더 부분이 조금 틀려집니다.

    무한한 관심 가져주신데에 다시 한번 감사드리며 기분좋은 하루 보내세요 (_ _ )

    답글삭제
  4. 네 바로 말씀 해주신

    첫번째 패킷 : eth + ip + udp + data(1480)
    두번째 패킷 : eth + ip + data(1)

    이부분이 문제인거 같습니다.^^

    ㅎㅎㅎ 저걸 ip헤더의 flag를 확인해서 set 되어 있으면 flow 수정하는 방식으로 고민중에 있습니다. ㅜㅜ

    답글삭제