Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dump1090 — Dump1090은 RTLSDR 장치용 단순 Mode S 디코더입니다. | Kitploit
도구/GitHubGitHub/antirez/dump1090
Embedded Systems SecurityNetwork MappingInformation GatheringWireless SecurityUtilities & FrameworksHardware & IoT Security
GitHubantirez/dump1090

dump1090

Dump1090은 RTLSDR 장치용 단순 Mode S 디코더입니다.

저장소 보기
2.9k1.4k86개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Dump1090 README

Dump 1090은 RTLSDR 장치를 위해 특별히 설계된 Mode S 디코더입니다.

주요 기능은 다음과 같습니다:

  • 약한 메시지의 강력한 디코딩. Dump1090을 사용하는 많은 사용자들이 다른 인기 디코더에 비해 개선된 수신 범위를 관찰했습니다.
  • 네트워크 지원: TCP30003 스트림(MSG5...), Raw 패킷, HTTP.
  • 현재 감지된 항공기를 Google Map에 표시하는 내장 HTTP 서버.
  • 24 bit CRC를 사용한 단일 비트 오류 정정.
  • DF11, DF17 메시지 디코딩 기능.
  • 체크섬이 ICAO 주소와 XOR되는 DF0, DF4, DF5, DF16, DF20, DF21과 같은 DF 형식을 최근에 관측된 ICAO 주소를 사용해 체크섬 필드를 브루트포싱하여 디코딩하는 기능.
  • 파일에서 원시 IQ 샘플 디코딩(--ifile 명령줄 스위치 사용).
  • 추가 데이터가 도착할 때마다 목록이 갱신되며 현재 감지된 항공기가 표시되는 대화형 명령줄 인터페이스 모드.
  • CPR 좌표 디코딩 및 속도로부터의 트랙 계산.
  • 지상에 있는 항공기(활주로 이동 등)의 지상 위치 디코딩.
  • 연결된 클라이언트와 원시 데이터를 주고받는 TCP 서버 스트리밍(--net 사용).

때때로 제 포크에 기능을 추가하거나 수정하기도 하지만, 저는 구현의 최소주의를 지향합니다. 그러나 MalcolmRobb이 개발한 훨씬 더 많은 기능을 갖춘 포크가 있습니다.

설치

"make"를 입력하세요.

일반 사용법

RTL 장치에서 직접 트래픽을 캡처하고 표준 출력에 캡처된 트래픽을 표시하려면 옵션 없이 프로그램을 실행하기만 하면 됩니다:

root@kitploit:~
./dump1090

16진수 메시지만 출력하려면:

root@kitploit:~
./dump1090 --raw

대화형 모드로 프로그램을 실행하려면:

root@kitploit:~
./dump1090 --interactive

네트워킹 지원과 함께 대화형 모드로 프로그램을 실행하고 브라우저로 http://localhost:8080에 연결하여 실시간 트래픽을 보려면:

root@kitploit:~
./dump1090 --interactive --net

대화형 모드에서는 화면이 매초 갱신되면서 최근에 감지된 모든 항공기를 고도 및 편명과 같은 추가 정보와 함께 표시하는, 정보 밀도는 낮지만 "아케이드 스타일"에 가까운 출력도 가능합니다. 이 정보는 수신된 Mode S 패킷에서 추출됩니다.

파일을 데이터 소스로 사용하기

파일에서 데이터를 디코딩하려면 다음을 사용하세요:

root@kitploit:~
./dump1090 --ifile /path/to/binfile

바이너리 파일은 다음과 같이 rtl_sdr을 사용하여 생성해야 합니다(또는 2Mhz 샘플 레이트로 8비트 부호 없는 IQ 샘플을 출력할 수 있는 다른 프로그램을 사용해도 됩니다).

root@kitploit:~
rtl_sdr -f 1090000000 -s 2000000 -g 50 output.bin

위 예제에서 rtl_sdr은 게인 50을 사용합니다. 간단히 튜너에서 사용 가능한 가장 높은 게인을 사용하면 됩니다. Dump1090 자체를 호출할 때는 지원되는 가장 높은 게인을 자동으로 선택할 수 있으므로 이렇게 할 필요가 없습니다.

--ifile 옵션에 "-"를 인자로 사용하면 표준 입력을 통해 프로그램에 데이터를 공급할 수도 있습니다.

추가 옵션

Dump1090은 다른 게인, 주파수 등을 설정하기 위해 다른 명령줄 옵션과 함께 호출할 수 있습니다. 옵션 목록은 다음을 사용하세요:

root@kitploit:~
./dump1090 --help

여기에 문서화되지 않은 모든 것은 명확해야 하며, 대부분의 사용자에게는 인자 없이 호출하는 것이 가장 좋은 방법입니다.

신뢰성

기본적으로 Dump1090은 CRC 체크섬을 사용하여 비트 오류를 정정하려고 시도합니다. 이 프로그램은 미리 계산된 신드롬 테이블을 사용하여 수신된 메시지에서 최대 두 개의 비트 오류를 신속하게 식별하고 정정합니다.

이 기능은 실제로 오류를 정정할 수 있으며 제 경험상 안정적으로 동작합니다. 그러나 매우 신뢰할 수 있는 데이터가 필요하다면 오류 정정을 비활성화하기 위해 --no-fix 명령줄 스위치를 사용할 것을 권장합니다.

탐지 성능 및 감도

저의 제한된 경험에서 Dump1090은 다른 프로그램을 사용할 때 문제가 발생했던 조건에서도 많은 수의 메시지를 디코딩할 수 있었습니다. 그러나 공식적인 테스트는 수행되지 않았으므로 이 프로그램이 다른 유사한 프로그램보다 낫다거나 나쁘다고 단정할 수는 없습니다.

Dump1090이 제대로 디코딩하지 못하는 트래픽을 캡처할 수 있다면 다운로드 링크와 함께 이메일을 보내주세요. 여가 시간(이것은 단지 취미 프로젝트 입니다)에 탐지를 개선하려고 시도할 수 있습니다.

지상 위치 디코딩

Dump1090은 지상에 있는 동안(활주로 이동, 게이트 대기 등) 항공기가 전송하는 지상 위치 메시지(타입 코드 5-8)를 디코딩할 수 있습니다. 이 메시지에는 항공기의 위치, 지상 속도 및 지상 트랙이 포함됩니다.

지상 위치는 공중 위치와 다른 인코딩을 사용합니다. CPR(Compact Position Reporting) 형식은 360도 대신 90도만을 포함하며, 모호함 없는 디코딩을 위해 45해리 이내의 기준 위치가 필요합니다.

Dump1090은 수신기 위치를 직접 구성하도록 요구하는 대신, 성공적으로 디코딩된 모든 공중 위치의 평균을 계산하여 기준 위치를 자동으로 산출합니다. 공항의 지상 트래픽을 수신할 수 있다면 공중 트래픽도 거의 확실히 수신할 수 있기 때문에 이 방식이 작동합니다. 상공을 지나는 항공기의 평균 위치는 지상 위치를 디코딩하기에 충분히 가까운(45 NM 요구 사항을 훨씬 충족하는) 기준을 제공합니다.

참고: 기준을 설정하기 위해 최소 하나의 공중 위치가 성공적으로 디코딩된 이후에만 지상 위치가 표시됩니다. 지상에 있는 항공기는 대화형 디스플레이 에서 고도 0으로 표시됩니다.

네트워크 서버 기능

--net으로 네트워킹 지원을 활성화하면 Dump1090은 포트 30002와 30001에서 클라이언트 연결을 수신하기 시작합니다(원한다면 두 포트를 모두 변경할 수 있습니다. --help 출력을 참조하세요).

포트 30002

연결된 클라이언트는 장치(또는 --ifile을 사용하는 경우 파일)에서 도착하는 대로 다음과 유사한 원시 형식의 데이터를 즉시 제공받습니다:

root@kitploit:~
*8D451E8B99019699C00B0A81F36E;

각 항목은 단순한 개행 문자(LF 문자, hex 0x0A)로 구분됩니다.

포트 30001

포트 30001은 원시 입력 포트이며, 위에 명시된 형식과 동일한 형식으로 Dump1090에 데이터를 공급하는 데 사용할 수 있습니다. 즉 *로 시작하고 ;로 끝나는 16진수 메시지입니다.

예를 들어 데이터를 수집하는 다른 원격 Dump1090 인스턴스가 있다면 다음과 같이 출력을 로컬 Dump1090 인스턴스에 합산할 수 있습니다:

root@kitploit:~
nc remote-dump1090.example.net 30002 | nc localhost 30001

포트 30001을 통해 수신된 내용은 포트 30002를 수신하는 클라이언트에도 브로드캐스트된다는 점에 유의하는 것이 중요합니다.

일반적으로 포트 30001에서 수신된 모든 것은 --ifile을 사용할 때 RTL 장치 또는 파일의 일반 트래픽과 정확히 동일하게 처리됩니다.

다음 예제와 같이 --ifile에 /dev/zero를 인자로 사용하여 Dump1090을 허브로 만 사용할 수도 있습니다:

root@kitploit:~
./dump1090 --net-only

또는 화면에서 상황을 확인하려면:

root@kitploit:~
./dump1090 --net-only --interactive

그런 다음 인터넷의 다양한 데이터 소스에서 데이터를 공급할 수 있습니다.

포트 30003

연결된 클라이언트는 다음과 유사한 SBS1(BaseStation) 형식의 메시지를 제공받습니다:

root@kitploit:~
MSG,4,,,738065,,,,,,,,420,179,,,0,,0,0,0,0
MSG,3,,,738065,,,,,,,35000,,,34.81609,34.07810,,,0,0,0,0

이 기능은 다른 디코더를 사용할 필요 없이 다양한 공유 사이트에 데이터를 공급하는 데 사용할 수 있습니다.

안테나

Mode S 메시지는 1090 Mhz 주파수로 전송됩니다. 좋은 안테나가 있다면, 특히 야외에서 하늘이 잘 보이는 위치에 있다면 내 위치에서 꽤 멀리 떨어진 항공기의 신호도 수신할 수 있습니다.

다음 지침에 따라 매우 저렴한 안테나를 쉽게 만들 수 있습니다:

root@kitploit:~
http://antirez.com/news/46

이 간단한 안테나로 저는 200+ Km 떨어진 항공기의 신호를 수신할 수 있었습니다.

더 전문적인 안테나에 관심이 있다면 다음 자료를 확인하세요:

  • http://gnuradio.org/data/grcon11/06-foster-adsb.pdf
  • http://www.lll.lu/~edward/edward/adsb/antenna/ADSBantenna.html
  • http://modesbeast.com/pix/adsb-ant-drawing.gif

공격적 모드

--aggressive를 사용하면 Mode S 패킷 탐지 및 디코딩의 수정된 버전인 공격적 모드를 활성화할 수 있습니다. 공격적 모드는 일반적으로 더 많은 CPU를 사용하지만(특히 DF17 패킷을 보내는 비행기가 많은 경우), 몇 가지 더 많은 메시지를 탐지할 수 있습니다.

공격적 모드의 알고리즘은 다음과 같은 방식으로 수정됩니다:

  • 최대 두 개의 복조 오류가 허용됩니다(크기 벡터에서 높이가 같은 인접 항목). 일반적으로 오류가 없는 메시지만 검사됩니다.
  • 두 비트 조합마다 시도하여 DF17 메시지를 정정하려고 시도합니다.

공격적 모드의 사용은 더 많은 메시지를 캡처할 기회를 갖기 위해 트래픽이 적은 장소에서만 권장됩니다.

디버그 모드

디버그 모드는 탐지 알고리즘을 개선하거나 주어진 입력에 대해 프로그램이 작동하지 않는 이유를 이해하기 위한 시각적 도움말입니다.

이 모드에서는 2Mhz로 샘플링된 개별 크기 막대가 표시되는 ASCII 아트 스타일의 그래픽 표현으로 메시지가 표시됩니다.

인덱스는 샘플 번호를 나타내며, 0은 첫 번째 Mode S 피크가 발견된 샘플입니다. 약간의 배경 잡음도 첫 번째 피크 앞에 추가되어 문맥을 제공합니다.

디버그 모드를 활성화하고 기록할 수 있는 패킷 조합을 확인하려면 dump1090 --help를 사용하여 사용 가능한 디버그 플래그 목록을 확인하세요.

디버그 모드에는 웹 브라우저로 패킷을 시각화하는 데 사용되는 선택적 javascript 출력이 포함됩니다. 'tools' 디렉터리 아래의 debug.html 파일을 사용하여 생성된 frames.js 파일을 로드할 수 있습니다.

이 프로그램은 어떻게 동작하나요?

코드는 매우 잘 문서화되어 있으며 이해하기 쉽도록 작성되었습니다. Mode S 명세서를 손에 쥔 성실한 프로그래머라면 그것이 어떻게 동작하는지 이해하는 것은 쉬울 것입니다.

제가 사용한 알고리즘은 기본적으로 일회용 SDL 프로그램으로 표시된 많은 메시지를 관찰하고, 메시지가 그래픽으로 어떻게 보이는지에 따라 알고리즘을 모델링하려고 시도함으로써 얻은 것입니다.

프로그램을 어떻게 테스트하나요?

RTLSDR 장치가 있고 머리 위로 항공기가 비행하는 지역에 있다면 프로그램을 실행하고 신호를 확인하기만 하면 됩니다.

그러나 RTLSDR 장치가 없거나 해당 지역에 항공기 출현이 매우 제한적인 경우 Dump1090 배포판의 "testfiles" 디렉터리에 포함된 샘플 파일을 시도해 볼 수 있습니다.

다음과 같이 실행하세요:

root@kitploit:~
./dump1090 --ifile testfiles/modes1.bin

--snip 모드는 무엇인가요?

지정된 보다 낮은 I 및 Q가 32개 이상의 샘플 동안 지속되는 파일의 모든 부분을 제거한 파일을 출력하는, 원시 IQ 8비트 샘플을 입력으로 받는 단순한 필터입니다.

다음과 같이 사용하세요:

root@kitploit:~
cat big.bin | ./dump1090 --snip 25 > small.bin

이 프로그램 소스 코드 배포판에 포함할 작은 테스트 파일을 만들기 위해 이 기능을 사용했습니다.

기여하기

Dump1090은 2012년 크리스마스 기간 동안의 여가 시간에 작성되었습니다. 취미 프로젝트이므로 이슈를 해결하고 개선할 수 있는 것도 여가 시간에만 가능하지만, 프로그램을 개선하기 위해 풀 리퀘스트를 보내는 것은 언제든 환영합니다. 좋은 출발점은 소스 배포판에 포함된 TODO 목록일 수 있습니다.

크레딧

Dump1090은 Salvatore Sanfilippo [email protected]과 그동안 패치를 보낸 다른 기여자들(자세한 내용은 커밋 기록을 확인하세요)에 의해 작성되었으며 BSD 3-clause 라이선스로 배포됩니다.

도구 다운로드