
Offline-Heuristik-Analysator, der verdächtige SMS, Chat-Nachrichten und Links auf Betrugs- und Phishing-Indikatoren bewertet und jedes Warnsignal mit Aufklärungsleitfäden und einem Quiz erklärt.
Eine Plattform für Cybersicherheitsbewusstsein. Fügen Sie eine verdächtige SMS, E-Mail, Chatnachricht oder einen Link ein, und sie zeigt Ihnen, welche Betrugstechniken erkannt wurden, warum jede einzelne wichtig ist und was als Nächstes zu tun ist.
Live-Demo: https://threatripper.onrender.com (Render-Free-Tier — der erste Besuch nach Inaktivität kann eine Minute zum Aufwachen benötigen.)
Es ist ein Lehrwerkzeug, kein Sicherheitsprodukt. Es gibt keine Antivirus-Engine, kein Malware-Scanning, keine Absenderverifizierung und keinen Domain-Reputation-Dienst. Links werden niemals geöffnet.
Zweck und Umfang. Threatripper ist ein defensives, edukatives Werkzeug zur Erkennung von Betrugs-Indikatoren in Text. Es enthält keine Malware, keinen Exploit-Code, keine Phishing-Kits, keine Zugangsdatenlisten oder irgendeine offensive Fähigkeit, und es führt niemals Netzwerkanfragen aus. Alle Beispielnachrichten und Domains im Repository verwenden fiktive, reservierte
.example-Namen und dienen ausschließlich der Demonstration der Erkennungslogik.Verwenden Sie es nur, um sich selbst und andere zu schützen. Missbrauch widerspricht dem Zweck des Projekts; melden Sie Betrug über offizielle Kanäle (siehe Einschränkungen).
Vier Seiten, kein Build-Schritt, kein JavaScript-Framework, kein CDN:
| Seite | Pfad | Zweck |
|---|---|---|
| Analysieren | / | Fügen Sie eine Nachricht oder einen Link ein und erhalten Sie ein bewertetes, erklärtes Urteil |
| Bewusstsein | /awareness.html | Sieben Leitfäden zu Betrugsarten plus Hinweise zur Meldung |
| Quiz | /quiz.html | Zwölf Szenarien, serverseitig mit Erklärungen bewertet |
| Verlauf | /history.html | Ihre letzten Analysen, mit bereits redigierten Identifikatoren |
Die Analyse ist bewusst erklärbar statt autoritativ. Jeder Punkt auf der Skala entspricht einer benannten Regel mit einer Schwere, einer Konfidenz und einem Satz, der erklärt, warum sie wichtig ist. Die Oberfläche zeigt die gesamte Berechnung, einschließlich der Kombinationsboni, sodass man der Ausgabe widersprechen kann, statt sie nur zu vertrauen.
Was es nicht tut:
Erfordert Python 3.11 oder neuer.
git clone <your-repo-url> threatripper
cd threatripper
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Use "python3 -m pip", not a bare "pip": on a hardened distro (Kali, Debian,
# Fedora) pip may be an externally managed system binary that is blocked by
# PEP 668, and a bare "pip" will not resolve to the venv.
python3 -m pip install -r requirements.txt
python3 -m uvicorn backend.main:app --reload
Öffne http://127.0.0.1:8000.
Das gesamte Produkt — API, Regelkatalog, Datenbank und Web-Oberfläche — läuft aus diesem
einen Prozess unter einem Origin. Interaktive API-Dokumentation befindet sich unter /docs, das rohe OpenAPI-Schema
unter /openapi.json.
Um die Tests auszuführen:
python3 -m pip install -r requirements-dev.txt
python3 -m pytest
Dieselbe Analyse läuft auch von einem Terminal aus. Dies ist eine zweite Oberfläche, keine zweite Implementierung: Jede Regel, jeder Score, jede Erklärung und jede empfohlene Aktion stammt aus demselben AnalysisService, den auch die Web-App verwendet, sodass die beiden nicht darüber uneinig sein können, was gefährlich ist.
Kein Server, kein Port, kein Netzwerk – nützlich, wenn die Nachricht, die Sie gerade betrachten, der Vorfall ist.
# Analyse a pasted message
./threatripper.sh "URGENT: your account will be closed, share the OTP"
# Or pipe it in, which is the natural way to use it
pbpaste | ./threatripper.sh
# A bare link
./threatripper.sh "http://verify-account.example/login"
# The API payload, for scripts
./threatripper.sh "share your OTP" --json | jq .result.risk_level
# Only fail when it is serious
./threatripper.sh --fail-on critical "see you tomorrow" ; echo $? # 0
./threatripper.sh --fail-on critical "your bank account will be suspended in 24 hours, verify at http://bank-verify.example/login and share the OTP" ; echo $? # 1
# Stored history, shared with the web app
./threatripper.sh history
./threatripper.sh history --level critical --json
# Analyse without keeping any record
./threatripper.sh "share your OTP" --no-store
Ein rotes THREATRIPPER-Banner wird zu Beginn eines interaktiven Laufs ausgegeben und
in der Schriftart ANSI Shadow gezeichnet. Es wird auf stderr ausgegeben und bei --json sowie
immer dann übersprungen, wenn die Ausgabe über eine Pipe geleitet oder umgeleitet wird, sodass es niemals in einem Log landet oder
eine Pipeline unterbricht. --no-color behält das Banner bei, entfernt jedoch die Farbe.
Jedes Glyph in ANSI Shadow ist ein ostasiatisches Zeichen mit mehrdeutiger Breite, sodass auf
manchen Terminals – typischerweise bei einem CJK-Locale oder in einem Fenster, das schmaler als 78 Spalten ist –
die Zeilen in unterschiedlichen Breiten dargestellt werden und die Buchstaben auseinanderdriften. In diesem Fall
fällt das Banner stillschweigend auf eine reine ASCII-Schriftart zurück. Überschreibe die Auswahl mit
--banner shadow|ascii|none:
./threatripper.sh --banner shadow "message" # force the block letters
./threatripper.sh --banner ascii "message" # force the terminal-safe face
./threatripper.sh --banner none "message" # no banner at all
Wie bei der Web-App wird eine Analyse standardmäßig zur gemeinsamen Historie hinzugefügt —
dieselbe redigierte Vorschau, niemals der Rohtext. Übergebe --no-store, um zu analysieren,
ohne einen Datensatz zu behalten.
./threatripper.sh analyze --help und ./threatripper.sh history --help listen alle
Optionen auf. Der Launcher bevorzugt den .venv-Interpreter des Projekts und ermittelt seinen
eigenen Standort, sodass er aus jedem Verzeichnis funktioniert, unabhängig davon, ob die virtuelle Umgebung aktiviert ist oder
nicht. python3 -m backend.cli ist gleichwertig.
Ein Terminal-Tool wird in Skripten verwendet, daher muss die Frage „hat dies etwas gefunden?“ beantwortbar sein, ohne Prosa zu parsen.
| Code | Bedeutung |
|---|---|
0 | Nichts gefunden, auf oder unterhalb des --fail-on-Schwellenwerts |
1 | Etwas wurde auf oder oberhalb des Schwellenwerts gefunden |
2 | Die Befehlszeile war falsch |
3 | Es gab nichts zu analysieren, oder die Analyse konnte nicht ausgeführt werden |
Der Schwellenwert ist standardmäßig suspicious. Übergebe --fail-on mit einem beliebigen Band
(low, suspicious, medium, high, critical), um ihn zu ändern.