-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to UmurSS7PCode — an educational SS7 network simulation and SMS forwarding platform. This wiki helps you install, explore, customize, and contribute safely and ethically.
Important: UmurSS7PCode is for education only. It does not access or interact with real telecom networks.
-
Interactive 3D network topology (React + Three.js) with MSC, HLR, VLR, SMSC, STP nodes
-
Step‑by‑step SMS flow simulation with protocol callouts (MAP, SCCP, TCAP, MTP)
-
Security awareness modules (known SS7 issues, mitigations, ethics)
-
Modern UI (React, TypeScript, Tailwind, Framer Motion)
-
Topology — Explore nodes, links, and live path highlighting.
-
SMS Simulation — Play/pause the route, inspect each step, follow message paths.
-
Security — Learn typical vulnerabilities and mitigation principles.
This project is released under the MIT License. See LICENSE in the repo.
-
Node.js ≥ 18
-
npm or yarn
-
A WebGL‑capable browser
# 1) Clone
git clone https://github.com/kangpcode/UmurSS7PCode.git
cd UmurSS7PCode
2) Install deps
npm install
3) Run dev server
npm run dev
open http://localhost:5173
(optional) Build & preview
npm run build
npm run preview
-
You see a 3D topology view with labeled nodes
-
Side panel shows node details when a node is clicked
-
SMS Simulation tab can play/pause and step through stages
graph TD
A[UI Layer (React + Tailwind)] --> B[3D Layer (react-three-fiber + drei + three.js)]
A --> C[State & Logic (TypeScript)]
C --> D[Simulation Engine]
D --> E[Data Models (Nodes, Links, Steps)]
C --> F[Security Awareness Content]
-
React (UI), TypeScript (types & safety), Vite (bundler)
-
tailwindcss (styling), framer-motion (micro‑interactions)
-
three.js, @react-three/fiber, @react-three/drei (3D topology)
-
lucide-react (icons)
-
src/components/NetworkVisualization.tsx— 3D scene, nodes, edges -
src/components/SMSFlowSimulator.tsx— step engine, controls -
src/data/networkComponents.ts— default nodes & connections -
src/data/smsFlow.ts— default SMS routing steps & annotations -
src/pages/*— Topology, Simulation, Security views -
src/hooks/*— camera, selection, highlighting -
src/styles/*— additional utilities
export type NodeType = 'MSC'|'HLR'|'VLR'|'SMSC'|'STP';
export interface NetNode { id:string; type:NodeType; label:string; pos:[number,number,number]; meta?:Record<string,any>; }
export interface NetLink { id:string; from:string; to:string; protocol:'MTP'|'SCCP'|'TCAP'|'MAP'; bidirectional?:boolean; }
export interface Step { id:string; label:string; from:string; to:string; protocol:NetLink['protocol']; description:string; }
sequenceDiagram
participant MS as Mobile Station
participant MSC
participant VLR
participant HLR
participant SMSC
participant STP
MS->>MSC: SMS SUBMIT (MAP)
MSC->>VLR: Auth/Check (MAP)
MSC->>HLR: Query routing (MAP/SendRoutingInfo)
HLR-->>MSC: IMSI/MSRN/SM routing info
MSC->>SMSC: Forward to SMSC (MAP/MT-ForwardSM)
SMSC-->>MSC: Acknowledge
MSC-->>MS: Delivery report
-
Mobile‑terminated SMS (MT‑SMS)
-
Roaming subscriber SMS
-
Congestion & retry demo
-
Basic failure injection (e.g., HLR timeout)
Each scenario is a Step[] with metadata to render tooltips and highlight active paths.
This project explains why SS7 weaknesses matter and how to defend—not how to attack.
-
Typical SS7 issues (signaling trust, location tracking, SMS interception at conceptual level)
-
Defense patterns (firewalls, anomaly detection, signaling policy, 2FA out‑of‑band)
-
Ethical use & compliance reminders
Do: learn architecture and mitigations. Don’t: test on live networks or attempt unauthorized access.
-
Edit
src/data/networkComponents.ts(labels, types, positions) -
Adjust layout algorithm or hardcode coordinates for symmetric scenes
-
Edit
src/data/smsFlow.ts(sequence, descriptions, protocols)
-
Tailwind utility classes in components
-
Add themes via CSS variables (light/dark)
-
Node geometry/materials
-
Edge thickness and pulsing animation during active steps
Create .env at repo root:
VITE_APP_TITLE=UmurSS7PCode
VITE_APP_VERSION=1.0.0
Optional flags you can add:
VITE_ENABLE_DEBUG_UI=true
VITE_DEFAULT_SCENARIO=mo_sms
VITE_CAMERA_PRESET=front_iso
npm run dev # Vite dev server
npm run build # production build
npm run preview # serve dist/
-
ESLint + TS rules enforced
-
Prefer function components & hooks
-
Strong typing for public interfaces
-
Add component tests with Vitest/RTL
-
Snapshot test of scene graph for regression
| Symptom | Possible Cause | Fix |
|---|---|---|
| Blank 3D canvas | WebGL disabled | Enable hardware acceleration; try another browser |
| Controls unresponsive | Pointer lock not captured | Click canvas once; check console |
| Build fails on CI | Node < 18 or missing deps | Use Node 18+; run npm ci |
| Layout looks skewed | Camera/canvas resize | Call invalidate() or ensure container size changes are handled |
Is this safe to run?
Yes. It’s a local, offline simulation with mock data only.
Does it emulate real SS7 traffic?
No. It visually demonstrates conceptual flows with annotated steps.
Can I add my telco’s topology?
Yes—edit data files and add custom nodes/links.
Why TypeScript?
Type safety for complex visualization state and props.
-
Additional scenarios (MT‑SMS, roaming)
-
Theming system & presets
-
Export/share scenario JSON
-
Accessibility audit (keyboard nav, ARIA)
-
i18n support
-
SS7 — Signaling System No. 7, telecom signaling suite
-
MTP/SCCP/TCAP/MAP — Key protocol layers
-
MSC/HLR/VLR/SMSC/STP — Core network entities in GSM/SS7
-
GSM/SS7 protocol overviews (general)
-
Security best‑practice documents (general)
See Development and open a Pull Request. Please keep contributions educat