:::: MENU ::::
Browsing posts in: Tool

Flowchart를 만들어주는 툴 Crystal REVS

소스코드를 분석을 해서 flowchart를 만들어 주는 툴입니다. 

대부분의 개발자들이 문서만들기를 싫어하는데 어쩔수 없이 flowchart를 만들어야 할 때가 있습니다. 
이 프로그램은 10일 동안 사용 기간 제약이 있는 버젼이지만 모든 기능이 동작합니다.

다운 받기 => Crystal REVS for C 4.60



네트워크 패킷 생성기 (NPG: Network Packet Generator)

요즘은 제가 필요한 것을 인터넷에서 찾으면 다 있네요. 누군가는 같은 고민을하고 고맙게도 만들었다는 사실… ^^


NPG는 Winpcap을 사용하여 패킷을 보낼수 있는 윈도우즈 기반의 네트워크 패킷 생성기입니다. 즉 따로 프로그래밍을 하지 않고 원하는 패킷을 만들어서 보낼 수 있는 툴입니다. 사용법도 간단하고 옵션도 많지 않기 때문에 바로 사용이 가능합니다. GPL 라이센스이므로 자유롭게 사용이 가능하네요.
http://www.wikistc.org/wiki/Network_packet_generator 에 자세한 설명이 나와있고, 설치 파일은 이 페이지의 제일 아래보시면 다운받으실 수 있습니다.

사용법

  • npg
  • npg [-?hlw]
  • npg [-vvvw] -fF <packet file name> -d <device interface>
  • npg [-rtvvv] -p <packet byte stream> -d <device interface>


NPG 프로그램을 다운받고 커맨드 창에서 아무런 옵션 없이 실행을 하면, 옵션을 물어보는데 대부분의 경우 옵션을 정하고, 보낼 패킷도 저장을해서 배치파일을 만들어서 테스트를 하는 것이 가장 손쉬운 방법입니다.

옵션

-h 도움말 표시
-d 패킷을 보낼 네트워크 디바이스를 선택
-f  패킷파일의 이름 지정
-F Libpcap 호환 패킷파일 이름 지정
-l 사용 가능한 네트워크 디바이스 나열
-p <packet byte stream> 인젝트할 패킷 바이트를 HEX 값으로 나열해주면 됨
-r <repeat count>  패킷을 몇번 반복할지 카운트를 지정
-t <interval> 패킷을 인젝트 하기 전 시간 간격을 지정 (시간 기준은 밀리세컨드)
-v, -vv, -vvv 동작 상태를 표시함 v 가 많을 수록 세부정보를 표시함

실제로 보낼 데이터 파일을 가지고 설명을 하겠습니다.
아래 패킷 샘플은 ARP request를 하는 샘플입니다.

# Generic example packets to demonstrate npg.exe 
# Current documentation an examples located @ http://www.wikistc.org/wiki/Network_packet_generator

# TCP/IP ARP Request
[3, 1000] # 1000 밀리, 3 번 반복
<ARP Request>
{
# Ethernet2 Header ———

 FF FF FF FF FF FF # Destination MAC
 00 08 DC 01 01 12 # Source MAC
 08 06             # Protocol ; ARP

# ARP Header —————

 00 01             # Hardware type
 08 00             # Protocol type
 06                # Hardware size
 04                # Protocol size
 00 01             # Opcode : Request
 00 08 DC 01 01 12 # Sender MAC address
 c0 a8 0b c8       # Send IP
 00 00 00 00 00 00 # Target MAC address
 c0 a8 0b 64       # Target IP

# Ethernet2 (Trailer) ——

 00 00 00 00 00 00 # Trailer data
 00 00 00 00 00 00 
 00 00 00 00 00 00
}


#  : 주석

[] : 패킷을 보낼 횟수 및 주기를 설정
<> : 어떤 패킷인지 나타내는 태크. 큰 의미는 없다.
{} : 실제로 보낼 패킷을 HEX값으로 적는다. 위 예에서와 같이 각각의 의미를 주석으로 표시하면 알아보기 쉽다.

위와 같이 파일을 만들고 
npg -vv -f arp_request2.txt를 입력하면 NPG 프로그램은 만든 패킷을 분석을 하고 이상이 없을 시 어떤 네트워크 디바이스를 써서 보낼지 물어봅니다. 선택을 숫자로 하면 패킷이 나갑니다.
위 예에서는 패킷을 3번 1000밀리 주기로 보내는 옵션이므로 실제 패킷은 최초에 한번 나가고 추가적으로 1초 간격으로 패킷이 3개 더 나갑니다.







유용한 툴 – IO Ninja

이 툴은 Tibbo (www.tibbo.com)에서 제공을 하는 Serial, TCP, UDP 전송기능 및 Wireshark의 packet capture 기능이 통합되어 있는 툴입니다. Packet capture를 위해서는 Wireshark 처럼 WInpcap을 사용을 합니다.
원래는 개인용으로 30불에 판매를 하는 툴인데, Evaluation 버젼은 http://tibbo.com/downloads/ninja.html 에서 다운로드 가능합니다. 사용기간이 지나도 “Continue evaluation”버튼을 누르면 계속 사용이 가능합니다.

저 같은 경우는 TCP 테스트의 경우에는 Socket tester를 사용을 하고, UDP를 테스트를 할때 이툴을 사용합니다. 물론 packet을 capture 할때는 Wireshark를 사용합니다. 사용법은 매우 간단한데, 프로그램을 실행시킨후 New Session에서 원하는 통신방식을 클릭하고, IP와 port를 설정을 하면 됩니다.
즉 TCP client의 경우는 Connection Socket을 선택을 하고,TCP server의 경우 Listener Socket을 선택, UDP의 경우 UDP Socket을 선택을 하면 됩니다.

예를 들어 UDP Socket을 선택을 한 경우 Local에는 자신이 바인딩할 port를 입력을 하고, Remote에는 통신을 할 peer의 IP 및 Port number를 입력을 하고, 번개모양의 아이콘을 클릭하면 됩니다.
데이터는 아래창에 입력을 한후 send를 하면 됩니다.


아래 파일을 받아서 설치…cfile3.uf.1334E54B4DDA1EF419D59A.zip


유용한 툴 – TCPView

이 툴은 예전에 sysinternals 라는 회사에서 만든 겁니다. Windows 기반의 유용한 유틸리티들을 만들던 이 회사는  2006년 7월에 마이크로소프트사가 인수를 했네요. www.sysinternals.com으로 접속하면 마이크로소프트사의 웹페이지가 열리고 관련된 내용이 나옵니다. http://technet.microsoft.com/ko-kr/sysinternals/default%28en-us%29.aspx

이툴은 현재 연결된 TCP 접속과 UDP 채널들을 process 별로 보여줍니다. 아래 그림에서 보듯이 각각의 process가 어떤 port로 어디에 연결이 되어 있는지 알수 있습니다. 내가 알지 못하는 프로그램이 특정 port를 열고 있다던가 하는 것을 찾는데도 유용합니다.


Sysinternals의 프로그램들은 http://live.sysinternals.com/ FTP에서 다운 받을 수 있으며, 이 프로그램은 http://live.sysinternals.com/Tcpview.exe 에서 다운로드 가능합니다.



유용한 툴 – Process Explorer

이 툴 역시 Sysinternals에서 만든 툴입니다. 현재 동작하는 프로세스들의 정보를 보여주며, 각 프로세스를 죽이거나 우선순위를 조정하는 기능들도 제공을 합니다. 더 많은 기능이 있으니 한번 다운로드 받아보기길……
Overview


http://live.sysinternals.com/procexp.exe 에서 다운로드 받을 수 있습니다.


유용한 툴 – Terminal

대부분의 임베디드 시스템에서 시리얼 인터페이스는 필수적으로 가지고 있다. 이 시리얼 인터페이스를 통해 디버깅도 하는데 이때 필요한 것이 터미널 프로그램이다. 일반적으로 윈도우즈의 Hyper Terminal을 써도 되지만 Hyper Terminal은 불편하기도 하고, null 문자를 제대로 수신 및 전송을 하지 못하는 버그도 있다.


그리고 데이터를 Hex로 수신하거나 전송할때도 이 프로그램은 유용하며, 매크로 기능이 있어서 지정한 시간동안 반복적으로 데이터를 보낼때 유용하다.
Hex로 데이터를 보내려면 $를 붙여야 한다. 즉 0x0D를 보내려면 $0d 로 입력하면 된다.
물론 freeware..
cfile8.uf.176F5A214BFC9F82566D23.zip


유용한 툴 – Socket Tester

개발을 하다보면 테스트에 필요한 툴을 직접 만들어야 할때도 있다. 하지만 그전에 이미 누군가 만들어 놓은 툴이 있다면?
이것을 사용하는 것이 보다 효과적이다. 문제가 있을때 툴이 문제인지 보드가 문제인지 확인하기 전에, 일단 툴은 이상이 없다는 가정이 되니깐…

네트워크 프로그래밍을 하다보면 테스트가 필요한데,
가장 간단한 TCP server 및 client 로 동작하는 툴이 Castalia Technologies에서 만든 Socket Tester 프로그램이다.

확인해 보니 Castalia Technologies는 이젠 검색이 되지 않는데, 이 프로그램은 실행파일 하나로 동작하는 간단하지만 유용한 툴! 게다가 Freeware…


cfile10.uf.200C810C4BFC97B386191F.zip


Pages:12345