Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 85 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,106 @@
# GhostTrack
Useful tool to track location or mobile number, so this tool can be called osint or also information gathering

OSINT & Information Gathering tool with a modern Electron desktop GUI.

<img src="https://github.com/HunxByts/GhostTrack/blob/main/asset/bn.png"/>

New update :
```Version 2.2```
## Version 3.0 - Electron GUI Edition

### Instalation on Linux (deb)
```
sudo apt-get install git
sudo apt-get install python3
```
### What's New

### Instalation on Termux
```
pkg install git
pkg install python3
- **Modern Desktop GUI** - Dark-themed Electron interface with sidebar navigation
- **Better IP Tracking** - Dual API fallback (ip-api.com + ipwho.is), proxy/VPN detection, hosting detection
- **Improved Phone Analysis** - Google's libphonenumber (same library used by Android), more formats and validation
- **Expanded Username Search** - 35+ platforms searched concurrently (was 23), with filtering and status indicators
- **My IP Auto-Analysis** - Reveals your IP and automatically shows full geolocation details
- **Portable EXE** - One-click build script to create a standalone Windows executable
- **Custom Window** - Frameless dark window with custom controls

### Features

| Feature | Description |
|---------|-------------|
| IP Tracker | Geolocate any IP with country, city, ISP, proxy/VPN detection, and Google Maps link |
| My IP | Discover your public IP with auto-geolocation |
| Phone Tracker | Analyze phone numbers - carrier, type, country, multiple format outputs |
| Username Tracker | Search 35+ social platforms concurrently with found/not-found filtering |

## Installation & Usage

### Electron GUI (Recommended)

**Prerequisites:** [Node.js 18+](https://nodejs.org)

```bash
git clone https://github.com/HunxByts/GhostTrack.git
cd GhostTrack/electron-app
npm install
npm start
```

### Usage Tool
### Build Portable EXE (Windows)

Double-click `build-exe.bat` in the project root, or run:

```bash
cd electron-app
npm install
npm run build
```
git clone https://github.com/HunxByts/GhostTrack.git
cd GhostTrack

The portable `.exe` will be in the `dist/` folder.

### Legacy CLI (Python)

The original Python CLI is still available:

```bash
pip3 install -r requirements.txt
python3 GhostTR.py
```

Display on the menu ```IP Tracker```

<img src="https://github.com/HunxByts/GhostTrack/blob/main/asset/ip.png " />

on the IP Track menu, you can combo with the seeker tool to get the target IP
<details>
<summary>:zap: Install Seeker :</summary>
- <strong><a href="https://github.com/thewhiteh4t/seeker">Get Seeker</a></strong>
</details>
## Tech Stack

Display on the menu ```Phone Tracker```
| Component | Technology |
|-----------|-----------|
| Desktop Framework | Electron 33 |
| IP Geolocation | ip-api.com (primary) + ipwho.is (fallback) |
| Phone Parsing | libphonenumber-js (Google's library) |
| HTTP Client | Axios |
| Build Tool | electron-builder |
| UI | Custom HTML/CSS dark theme |

<img src="https://github.com/HunxByts/GhostTrack/blob/main/asset/phone.png" />
### Installation on Linux (deb)
```
sudo apt-get install git nodejs npm
```

on this menu you can search for information from the target phone number
### Installation on Termux
```
pkg install git nodejs
```

Display on the menu ```Username Tracker```
## Project Structure

<img src="https://github.com/HunxByts/GhostTrack/blob/main/asset/User.png"/>
on this menu you can search for information from the target username on social media
```
GhostTrack/
├── electron-app/ # Electron desktop application
│ ├── main.js # Main process (window, IPC handlers)
│ ├── preload.js # Secure bridge between main & renderer
│ ├── package.json # Dependencies & build config
│ ├── src/ # Backend modules
│ │ ├── ip-tracker.js # IP geolocation (dual API)
│ │ ├── phone-tracker.js # Phone number analysis
│ │ └── username-tracker.js # Username OSINT (35+ platforms)
│ └── renderer/ # Frontend
│ ├── index.html # GUI layout
│ ├── styles.css # Dark theme styles
│ └── renderer.js # UI logic & event handling
├── GhostTR.py # Legacy Python CLI
├── build-exe.bat # Windows EXE build script
├── requirements.txt # Python dependencies (legacy)
└── asset/ # Images & branding
```

<details>
<summary>:zap: Author :</summary>
Expand Down
103 changes: 103 additions & 0 deletions build-exe.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
@echo off
REM ============================================
REM GhostTrack v3.0 - Build EXE Script
REM ============================================
REM This script builds the GhostTrack Electron app
REM into a portable Windows .exe file.
REM
REM Prerequisites:
REM - Node.js 18+ (https://nodejs.org)
REM - npm (comes with Node.js)
REM ============================================

title GhostTrack Build Tool
color 0A

echo.
echo ============================================
echo GhostTrack v3.0 - Build Tool
echo ============================================
echo.

REM Check if Node.js is installed
where node >nul 2>nul
if %ERRORLEVEL% NEQ 0 (
echo [ERROR] Node.js is not installed!
echo Please install Node.js from https://nodejs.org
echo.
pause
exit /b 1
)

REM Check if npm is installed
where npm >nul 2>nul
if %ERRORLEVEL% NEQ 0 (
echo [ERROR] npm is not installed!
echo Please install Node.js from https://nodejs.org
echo.
pause
exit /b 1
)

REM Display versions
echo [INFO] Node.js version:
node --version
echo [INFO] npm version:
npm --version
echo.

REM Navigate to electron-app directory
cd /d "%~dp0electron-app"

if not exist "package.json" (
echo [ERROR] package.json not found in electron-app directory!
echo Make sure you're running this from the GhostTrack root folder.
pause
exit /b 1
)

REM Install dependencies
echo [1/3] Installing dependencies...
echo.
call npm install
if %ERRORLEVEL% NEQ 0 (
echo.
echo [ERROR] Failed to install dependencies!
pause
exit /b 1
)

echo.
echo [2/3] Dependencies installed successfully.
echo.

REM Build the exe
echo [3/3] Building portable EXE...
echo This may take a few minutes on first build.
echo.
call npm run build
if %ERRORLEVEL% NEQ 0 (
echo.
echo [ERROR] Build failed!
echo Check the error messages above.
pause
exit /b 1
)

echo.
echo ============================================
echo BUILD COMPLETE!
echo ============================================
echo.
echo Your portable EXE is located in:
echo %~dp0dist\
echo.
echo Look for: GhostTrack-*-Portable.exe
echo.

REM Open the dist folder
if exist "%~dp0dist" (
explorer "%~dp0dist"
)

pause
3 changes: 3 additions & 0 deletions electron-app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules/
dist/
*.exe
85 changes: 85 additions & 0 deletions electron-app/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
const { app, BrowserWindow, ipcMain } = require('electron');
const path = require('path');

// Modules
const ipTracker = require('./src/ip-tracker');
const phoneTracker = require('./src/phone-tracker');
const usernameTracker = require('./src/username-tracker');

let mainWindow;

function createWindow() {
mainWindow = new BrowserWindow({
width: 1100,
height: 750,
minWidth: 900,
minHeight: 600,
title: 'GhostTrack v3.0',
icon: path.join(__dirname, 'assets', 'icon.png'),
frame: false,
transparent: false,
backgroundColor: '#0a0a0f',
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
contextIsolation: true,
nodeIntegration: false,
},
});

mainWindow.loadFile(path.join(__dirname, 'renderer', 'index.html'));

mainWindow.on('closed', () => {
mainWindow = null;
});
}

app.whenReady().then(createWindow);

app.on('window-all-closed', () => {
app.quit();
});

app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});

// --- IPC Handlers ---

// Window controls
ipcMain.on('window-minimize', () => {
mainWindow?.minimize();
});

ipcMain.on('window-maximize', () => {
if (mainWindow?.isMaximized()) {
mainWindow.unmaximize();
} else {
mainWindow?.maximize();
}
});

ipcMain.on('window-close', () => {
mainWindow?.close();
});

// IP Tracker
ipcMain.handle('track-ip', async (_event, ip) => {
return await ipTracker.trackIP(ip);
});

// Show My IP
ipcMain.handle('show-my-ip', async () => {
return await ipTracker.getMyIP();
});

// Phone Number Tracker
ipcMain.handle('track-phone', async (_event, phoneNumber, regionCode) => {
return phoneTracker.trackPhone(phoneNumber, regionCode);
});

// Username Tracker
ipcMain.handle('track-username', async (_event, username) => {
return await usernameTracker.trackUsername(username);
});
51 changes: 51 additions & 0 deletions electron-app/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"name": "ghosttrack",
"version": "3.0.0",
"description": "GhostTrack - OSINT & Information Gathering Tool with Modern GUI",
"main": "main.js",
"author": "HunxByts",
"license": "MIT",
"scripts": {
"start": "electron .",
"build": "electron-builder --win portable",
"build:dir": "electron-builder --win dir",
"build:installer": "electron-builder --win nsis"
},
"dependencies": {
"axios": "^1.7.9",
"libphonenumber-js": "^1.11.18"
},
"devDependencies": {
"electron": "^33.3.1",
"electron-builder": "^25.1.8"
},
"build": {
"appId": "com.ghosttrack.app",
"productName": "GhostTrack",
"directories": {
"output": "../dist"
},
"files": [
"**/*",
"!node_modules/.cache/**"
],
"win": {
"target": [
{
"target": "portable",
"arch": ["x64"]
}
],
"icon": "assets/icon.ico"
},
"portable": {
"artifactName": "GhostTrack-${version}-Portable.exe"
},
"nsis": {
"oneClick": true,
"perMachine": false,
"allowToChangeInstallationDirectory": false,
"artifactName": "GhostTrack-${version}-Setup.exe"
}
}
}
Loading