Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
SkyProfile — A lightweight aviation intelligence tool that queries ADSB-Exchange flight data using tail numbers or ICAO identifiers to quickly profile aircraft activity. | Kitploit
Tools/GitHubGitHub/alsatianconsulting/skyprofile
OSINT (Open Source Intelligence)ReconnaissanceData ExfiltrationInformation GatheringUtilities & FrameworksThreat Intelligence
GitHubalsatianconsulting/skyprofile

SkyProfile

A lightweight aviation intelligence tool that queries ADSB-Exchange flight data using tail numbers or ICAO identifiers to quickly profile aircraft activity.

View Repository
97 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

SkyProfile

SkyProfile is a PyQt5 desktop app for querying ADSBexchange globe history for single or multiple aircraft, detecting multi-leg flights, and exporting KML/CSV/JSON/Excel with rich analytics (airports, routes, time buckets, callsigns, FAA metadata).

Key Features

  • Date-range query by ICAO hex; optional tail/reg lookup via ADSBx basic aircraft DB.
  • Robust leg detection (ground → air → ground) with air/ground flags, altitude/groundspeed heuristics, 90s ground dwell, 20-minute gap handling, and live callsign history.
  • Exports (toggle per type): KML Points, KML Routes 2D, KML Routes 3D, Airport Heatmap KML (white dots sized by activity), CSV, JSON, Excel Summary.
  • Batch mode with optional Consolidate reports: merges all aircraft into a single set of offline exports (CSV/JSON/KML/Excel). Individual files are suppressed when consolidating.
  • Airport matching (nearest within 250 km; synthetic IDs when none) reused across KML and Excel.
  • FAA registry lookup for N-number aircraft (local DB in resources/faa_registry).
  • GUI progress with per-phase status; Run/Stop controls; app icon applied to window/taskbar.
  • Settings menu with "Check for Updates" (GitHub tag check) and "About" (version/info + data attributions).

Batch Mode

  • Input: CSV with column icao_hex (or hex/icao) and/or tail/registration. Each row is one aircraft target.
  • Behavior:
    • Runs all listed aircraft over the chosen date range.
    • Writes per-aircraft outputs into output/<HEX>_<TAIL>/ (hex-only if tail missing).
    • Optionally Consolidate reports: when enabled, suppresses individual files and produces a single merged set:
      • consolidated_<N>ACFT_<start>_<end>.csv/.json (all hits/JSON payloads)
      • Consolidated KMLs (points, routes, 3D routes, airport heatmap) merged inline for offline viewing
      • Consolidated Excel summary with the same tabs/charts as a normal run, combining all flights
  • Caching: ADSBx downloads still cache per-aircraft/day under output/cache/<hex>/YYYY-MM-DD.json.

Install / Run

From source

root@kitploit:~
pip install PyQt5 requests simplekml openpyxl lxml numpy
python skyprofile.py

Packaged EXE (Windows)

  • Use dist/SkyProfile.exe with dist/resources/ alongside (contains FAA/airport/acdb data).

Exports & Normalization

  • Leg detection: ground/air flags, altitude/GS checks, 90s ground dwell, 20-minute gap landing, ground-cluster averaging, callsign history per leg.
  • KML Points: One placemark per leg arrival with times, duration, callsign, meta.
  • KML Routes 2D/3D: Full leg tracks (not straight lines); 3D routes include altitude.
  • Airport Heatmap KML: One marker per visited airport, sized by total visits (arrivals+departures) and colored white for a clean overlay; attributes include arrival/departure dates, hex, tail.
  • CSV: One row per hit; columns include hex and tail plus flattened ac_data (no raw ac_data_json column).
  • JSON: Wrapped payload per aircraft: { hex, tail, meta, data: [raw trace_full blobs] }; consolidated JSON is a list of these payloads.
  • Excel Summary (full multi-sheet workbook):
    • Summary: Metadata (hex, registration, type, owner, model, flags, date range); FAA details when available.
    • Flights: One row per detected leg; columns for hex, tail, segment id, dep/arr UTC timestamps, duration, dep/arr airport IDs and names, lat/lon, day-of-week/day-of-month/hour buckets, callsign and history.
    • Airports: Top airports by visits (arrivals + departures) with IDs, ICAO/IATA, name, city/country, counts, lat/lon; includes bar chart “Airports by Number of Visits”.
    • Routes: Top routes with readable airport labels and counts; includes bar chart “Count of Routes Traveled”.

Resources & Caching

  • Shared data lives in resources/ (acdb_cache, airport_db, faa_registry). PyInstaller builds include it via --add-data and copy it alongside the EXE.
  • ADSBx trace cache stays under output/cache/<hex>/YYYY-MM-DD.json.
  • Per-aircraft exports are grouped under output/<HEX>_<TAIL>/ (or hex-only if no tail). Consolidated batch exports use consolidated_<N>ACFT_<date range>* in the main output/ folder.

Notes & Limitations

  • Coverage gaps may still miss exact ground times; nearest-airport matching can fall back to synthetic LL_lat_lon IDs.
  • Photos are disabled in Excel to avoid corrupted drawings.
  • Onefile EXE is large because it bundles Python + Qt + dependencies; use one-dir if you need a smaller EXE.

License

  • Apache License 2.0 (see LICENSE). External data/APIs remain under their own terms.
Download Tool
  • DayOfWeek: Counts by day-of-week with bar chart.
  • DayOfMonth: Counts by day-of-month with bar chart.
  • Hours: Takeoffs vs landings by UTC hour with a dual-series bar chart (Takeoffs blue, Landings orange).
  • Countries: Visits by country with bar chart.
  • Callsigns: Callsign usage counts.
  • Charts use white backgrounds, integer Y-axes with sensible grid (every 10 or 100 for large counts), and value labels on bars.