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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dump1090 — Dump1090은 RTLSDR 장치용 간단한 Mode S 디코더입니다. | Kitploit
도구/GitHubGitHub/malcolmrobb/dump1090
Embedded Systems SecurityNetwork MappingInformation GatheringWireless SecurityHardware SecurityUtilities & Frameworks
GitHubmalcolmrobb/dump1090

dump1090

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

저장소 보기
1.1k319511년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Dump1090 README

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

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

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

설치

"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은 사용 가능한 경우 24비트 CRC 체크섬을 사용하여 디코딩 오류를 확인합니다. 오류가 있는 메시지는 폐기됩니다.

--fix 명령줄 스위치는 CRC 체크섬에 기반한 단일 비트 오류 정정을 활성화합니다. 기술적으로는 단일 비트 오류로 인해 발생하는 미리 계산된 체크섬 차이 테이블을 사용하여 잘못된 비트 위치를 찾아냅니다.

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

탐지 성능 및 감도

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

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

네트워크 서버 기능

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

포트 30002

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

root@kitploit:~
*8D451E8B99019699C00B0A81F36E;

각 항목은 단순한 줄바꿈(LF 문자, 16진수 0x0A)으로 구분됩니다.

포트 30001

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

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

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

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

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

다음 예제와 같이 --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 메시지는 1090MHz 주파수로 전송됩니다. 괜찮은 안테나가 있다면 특히 야외에서 하늘이 잘 보이는 위치에 있다면 현재 위치에서 꽤 멀리 떨어진 항공기의 신호를 수신할 수 있습니다.

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

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

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

더 제대로 된 안테나에 관심이 있다면 다음 자료를 확인하세요:

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

Aggressive 모드

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

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

  • 최대 2개의 복조 오류가 허용됩니다(크기 벡터에서 동일한 값을 가진 인접 항목). 일반적으로 오류가 없는 메시지만 검사됩니다.
  • 임의의 2비트 오류로 인해 발생한 CRC 오류가 있는 DF17 메시지를 정정하려고 시도합니다.

aggressive 모드의 사용은 트래픽이 적은 환경에서만 권장됩니다. 더 많은 메시지를 캡처할 기회를 얻기 위해서입니다.

디버그 모드

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

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

인덱스는 샘플 번호를 표시하며, 0은 첫 번째 Mode S 피크가 발견된 샘플입니다. 약간의 추가 배경 잡음도 첫 번째 피크 앞에 추가되어 상황을 파악할 수 있게 합니다.

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

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

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

코드는 이해하기 쉽도록 작성되었으며 문서화가 잘 되어 있습니다. Mode S 규격서를 갖춘 성실한 프로그래머라면 작동 방식을 이해하는 것이 쉬울 것입니다.

제가 사용한 알고리즘은 기본적으로 임시 SDL 프로그램으로 표시된 많은 메시지를 관찰하고, 메시지가 그래픽으로 어떻게 보이는지에 기반하여 알고리즘을 모델링하는 방식으로 얻어졌습니다.

프로그램을 테스트하려면 어떻게 해야 하나요?

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

하지만 RTLSDR 장치가 없거나 해당 지역에 항공기가 거의 없다면 Dump1090 배포판의 "testfiles" 디렉터리에 포함된 샘플 파일을 시도해 볼 수 있습니다.

다음과 같이 실행하세요:

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

--strip 모드란 무엇인가요?

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

다음과 같이 사용하세요:

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

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

기여

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

크레딧

Dump1090은 Salvatore Sanfilippo [email protected]이 작성했으며 BSD 3-Clause 라이선스로 배포됩니다.

도구 다운로드