localization

This commit is contained in:
overcuriousity 2025-07-26 00:31:23 +02:00
parent 4454046d22
commit 10331b9ece
8 changed files with 116 additions and 111 deletions

File diff suppressed because one or more lines are too long

View File

@ -261,7 +261,7 @@ tools:
icon: "📦" icon: "📦"
type: "software" type: "software"
description: "Die führende Open-Source-Alternative zu kommerziellen Forensik-Suiten" description: "Die führende Open-Source-Alternative zu kommerziellen Forensik-Suiten"
domains: ["incident-response", "law-enforcement"] domains: ["incident-response", "static-investigations"]
phases: ["examination", "analysis"] phases: ["examination", "analysis"]
platforms: ["Windows", "Linux"] platforms: ["Windows", "Linux"]
skillLevel: "intermediate" skillLevel: "intermediate"
@ -282,7 +282,7 @@ tools:
icon: "📋" icon: "📋"
type: "method" type: "method"
description: "Standardisiertes Verfahren zur forensisch korrekten Akquisition des Arbeitsspeichers" description: "Standardisiertes Verfahren zur forensisch korrekten Akquisition des Arbeitsspeichers"
domains: ["incident-response", "law-enforcement"] domains: ["incident-response", "static-investigations"]
phases: ["data-collection"] phases: ["data-collection"]
platforms: [] # Methoden haben keine Plattformen platforms: [] # Methoden haben keine Plattformen
skillLevel: "advanced" skillLevel: "advanced"
@ -319,7 +319,7 @@ tools:
**Domänen:** **Domänen:**
- `incident-response` - Incident Response & Breach-Untersuchung - `incident-response` - Incident Response & Breach-Untersuchung
- `law-enforcement` - Strafverfolgung & Kriminalermittlung - `static-investigations` - Datenträgerforensik & Ermittlungen
- `malware-analysis` - Malware-Analyse & Reverse Engineering - `malware-analysis` - Malware-Analyse & Reverse Engineering
- `fraud-investigation` - Betrugs- & Finanzkriminalität - `fraud-investigation` - Betrugs- & Finanzkriminalität
- `network-forensics` - Netzwerk-Forensik & Traffic-Analyse - `network-forensics` - Netzwerk-Forensik & Traffic-Analyse

View File

@ -5,7 +5,7 @@ description: "Das Rückgrat des modernen Threat-Intelligence-Sharings mit über
last_updated: 2025-07-20 last_updated: 2025-07-20
author: "CC24-Team" author: "CC24-Team"
difficulty: "intermediate" difficulty: "intermediate"
categories: ["incident-response", "law-enforcement", "malware-analysis", "network-forensics", "cloud-forensics"] categories: ["incident-response", "static-investigations", "malware-analysis", "network-forensics", "cloud-forensics"]
tags: ["web-based", "threat-intelligence", "api", "correlation", "ioc-sharing", "automation"] tags: ["web-based", "threat-intelligence", "api", "correlation", "ioc-sharing", "automation"]
sections: sections:
overview: true overview: true

View File

@ -20,7 +20,7 @@ tools:
icon: 📦 icon: 📦
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- mobile-forensics - mobile-forensics
- cloud-forensics - cloud-forensics
@ -49,7 +49,7 @@ tools:
Formatunterstützung. Formatunterstützung.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- network-forensics - network-forensics
phases: phases:
@ -88,7 +88,7 @@ tools:
Kollaborations-Lösungen am Markt. Kollaborations-Lösungen am Markt.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- network-forensics - network-forensics
phases: phases:
@ -125,7 +125,7 @@ tools:
SIEMs, Firewalls und andere Sicherheitssysteme. SIEMs, Firewalls und andere Sicherheitssysteme.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- network-forensics - network-forensics
- cloud-forensics - cloud-forensics
@ -159,7 +159,7 @@ tools:
mehreren Analysten und Millionen von Zeitstempeln. mehreren Analysten und Millionen von Zeitstempeln.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- network-forensics - network-forensics
- cloud-forensics - cloud-forensics
phases: phases:
@ -235,7 +235,7 @@ tools:
für Behörden und Großunternehmen interessant. für Behörden und Großunternehmen interessant.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- mobile-forensics - mobile-forensics
- cloud-forensics - cloud-forensics
phases: phases:
@ -271,7 +271,7 @@ tools:
Visualisierung verständlich. Mit Preisen im sechsstelligen Bereich und Visualisierung verständlich. Mit Preisen im sechsstelligen Bereich und
ethischen Bedenken bezüglich der Käuferauswahl nicht unumstritten. ethischen Bedenken bezüglich der Käuferauswahl nicht unumstritten.
domains: domains:
- law-enforcement - static-investigations
- mobile-forensics - mobile-forensics
phases: phases:
- data-collection - data-collection
@ -374,7 +374,7 @@ tools:
unübertroffen. unübertroffen.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- network-forensics - network-forensics
- cloud-forensics - cloud-forensics
phases: phases:
@ -410,7 +410,7 @@ tools:
für CTF-Challenges und tägliche Forensik-Aufgaben gleichermaßen. für CTF-Challenges und tägliche Forensik-Aufgaben gleichermaßen.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- network-forensics - network-forensics
phases: phases:
@ -445,7 +445,7 @@ tools:
Effizienzgewinne bei großen Infrastrukturen sind enorm. Effizienzgewinne bei großen Infrastrukturen sind enorm.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- fraud-investigation - fraud-investigation
- network-forensics - network-forensics
@ -487,7 +487,7 @@ tools:
Untersuchungen. Untersuchungen.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- fraud-investigation - fraud-investigation
phases: phases:
@ -525,7 +525,7 @@ tools:
Monitoring Operations. Monitoring Operations.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- network-forensics - network-forensics
- cloud-forensics - cloud-forensics
phases: phases:
@ -560,7 +560,7 @@ tools:
schnelle Übersichten, an Grenzen bei verschlüsseltem Traffic. schnelle Übersichten, an Grenzen bei verschlüsseltem Traffic.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- network-forensics - network-forensics
phases: phases:
@ -596,7 +596,7 @@ tools:
Dokumenten-Untersuchungen. Dokumenten-Untersuchungen.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- fraud-investigation - fraud-investigation
- mobile-forensics - mobile-forensics
phases: phases:
@ -633,7 +633,7 @@ tools:
ersten Wahl für Behörden. Lizenzkosten im sechsstelligen Bereich ersten Wahl für Behörden. Lizenzkosten im sechsstelligen Bereich
limitieren den Zugang auf Großorganisationen. limitieren den Zugang auf Großorganisationen.
domains: domains:
- law-enforcement - static-investigations
- fraud-investigation - fraud-investigation
phases: phases:
- analysis - analysis
@ -666,7 +666,7 @@ tools:
Organisations-Strukturen. Die Community Edition limitiert auf einen Organisations-Strukturen. Die Community Edition limitiert auf einen
Benutzer - für Teams ist die kommerzielle Version nötig. Benutzer - für Teams ist die kommerzielle Version nötig.
domains: domains:
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- fraud-investigation - fraud-investigation
- network-forensics - network-forensics
@ -706,7 +706,7 @@ tools:
ermöglicht automatisierte Analysen großer Datensätze. Unverzichtbar wenn ermöglicht automatisierte Analysen großer Datensätze. Unverzichtbar wenn
Fahrzeuge, Drohnen oder mobile Geräte mit Standortdaten involviert sind. Fahrzeuge, Drohnen oder mobile Geräte mit Standortdaten involviert sind.
domains: domains:
- law-enforcement - static-investigations
- fraud-investigation - fraud-investigation
- mobile-forensics - mobile-forensics
phases: phases:
@ -742,7 +742,7 @@ tools:
vom Raspberry Pi für kleine Teams bis zur High-Availability-Installation. vom Raspberry Pi für kleine Teams bis zur High-Availability-Installation.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- fraud-investigation - fraud-investigation
- network-forensics - network-forensics
@ -847,7 +847,7 @@ tools:
überall einsetzbar. überall einsetzbar.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- fraud-investigation - fraud-investigation
- network-forensics - network-forensics
@ -906,7 +906,7 @@ tools:
bedacht werden. bedacht werden.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- fraud-investigation - fraud-investigation
- network-forensics - network-forensics
@ -948,7 +948,7 @@ tools:
für kleine Teams. Ideal für Organisationen, die Blockchain-Analysen ohne für kleine Teams. Ideal für Organisationen, die Blockchain-Analysen ohne
US-Cloud-Abhängigkeit benötigen. US-Cloud-Abhängigkeit benötigen.
domains: domains:
- law-enforcement - static-investigations
- fraud-investigation - fraud-investigation
phases: phases:
- analysis - analysis
@ -981,7 +981,7 @@ tools:
angestaubt in der Oberfläche, aber bewährt in tausenden Gerichtsverfahren. angestaubt in der Oberfläche, aber bewährt in tausenden Gerichtsverfahren.
Freeware, aber nicht open source. Freeware, aber nicht open source.
domains: domains:
- law-enforcement - static-investigations
- incident-response - incident-response
phases: phases:
- data-collection - data-collection
@ -1014,7 +1014,7 @@ tools:
solide Technik unter der Haube hinweg. solide Technik unter der Haube hinweg.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
phases: phases:
- data-collection - data-collection
platforms: platforms:
@ -1046,7 +1046,7 @@ tools:
Updates bei neuen macOS-Versionen. Updates bei neuen macOS-Versionen.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
phases: phases:
- data-collection - data-collection
platforms: platforms:
@ -1077,7 +1077,7 @@ tools:
LEAPP-Familie, ständig aktualisiert für neue Android-Versionen. LEAPP-Familie, ständig aktualisiert für neue Android-Versionen.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- mobile-forensics - mobile-forensics
phases: phases:
- examination - examination
@ -1113,7 +1113,7 @@ tools:
iOS-Änderungen und neuen Artefakten. iOS-Änderungen und neuen Artefakten.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- mobile-forensics - mobile-forensics
phases: phases:
- examination - examination
@ -1147,7 +1147,7 @@ tools:
unverzichtbar bei Unfallrekonstruktionen und Kriminalfällen. Die unverzichtbar bei Unfallrekonstruktionen und Kriminalfällen. Die
Unterstützung für verschiedene Hersteller wächst mit der Community. Unterstützung für verschiedene Hersteller wächst mit der Community.
domains: domains:
- law-enforcement - static-investigations
- ics-forensics - ics-forensics
phases: phases:
- examination - examination
@ -1181,7 +1181,7 @@ tools:
Tool-Sammlung auf dem neuesten Stand. Tool-Sammlung auf dem neuesten Stand.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- fraud-investigation - fraud-investigation
- network-forensics - network-forensics
@ -1217,7 +1217,7 @@ tools:
Zuverlässigkeit für Forensik-Puristen. Zuverlässigkeit für Forensik-Puristen.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
phases: phases:
- data-collection - data-collection
platforms: platforms:
@ -1249,7 +1249,7 @@ tools:
langer Imaging-Vorgänge rettet Nerven und Zeit. langer Imaging-Vorgänge rettet Nerven und Zeit.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
phases: phases:
- data-collection - data-collection
platforms: platforms:
@ -1281,7 +1281,7 @@ tools:
Austausch mit kommerziellen Tools. Austausch mit kommerziellen Tools.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
phases: phases:
- data-collection - data-collection
platforms: platforms:
@ -1313,7 +1313,7 @@ tools:
TestDisk repariert zusätzlich beschädigte Partitionen. TestDisk repariert zusätzlich beschädigte Partitionen.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- fraud-investigation - fraud-investigation
phases: phases:
- examination - examination
@ -1379,7 +1379,7 @@ tools:
Forensik-Suite. Freeware, aber nicht open source. Forensik-Suite. Freeware, aber nicht open source.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
phases: phases:
- examination - examination
platforms: platforms:
@ -1410,7 +1410,7 @@ tools:
einem System vorhanden waren. Die einfache GUI macht es auch für weniger einem System vorhanden waren. Die einfache GUI macht es auch für weniger
technische Ermittler zugänglich. technische Ermittler zugänglich.
domains: domains:
- law-enforcement - static-investigations
- fraud-investigation - fraud-investigation
phases: phases:
- examination - examination
@ -1443,7 +1443,7 @@ tools:
manueller Registry-Analyse und findet oft übersehene Artefakte. manueller Registry-Analyse und findet oft übersehene Artefakte.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
phases: phases:
- examination - examination
@ -1575,7 +1575,7 @@ tools:
Tool-Sammlung aktuell. Tool-Sammlung aktuell.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- network-forensics - network-forensics
- mobile-forensics - mobile-forensics
@ -1609,7 +1609,7 @@ tools:
Live-System-Umgebung ermöglicht. Live-System-Umgebung ermöglicht.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- mobile-forensics - mobile-forensics
skillLevel: intermediate skillLevel: intermediate
@ -1639,7 +1639,7 @@ tools:
Neuinstallation. Neuinstallation.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- network-forensics - network-forensics
skillLevel: intermediate skillLevel: intermediate
@ -1670,7 +1670,7 @@ tools:
Ansicht. Ständige Updates für neue Windows-Versionen und Cloud-Artefakte. Ansicht. Ständige Updates für neue Windows-Versionen und Cloud-Artefakte.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
phases: phases:
- examination - examination
- analysis - analysis
@ -1770,7 +1770,7 @@ tools:
ab, Profis schwören darauf. Deutlich günstiger als US-Konkurrenz bei ab, Profis schwören darauf. Deutlich günstiger als US-Konkurrenz bei
vergleichbarer Funktionalität. vergleichbarer Funktionalität.
domains: domains:
- law-enforcement - static-investigations
- incident-response - incident-response
phases: phases:
- examination - examination
@ -1801,7 +1801,7 @@ tools:
Automatisierung. Die Zertifizierung (EnCE) ist in vielen Behörden Automatisierung. Die Zertifizierung (EnCE) ist in vielen Behörden
Einstellungsvoraussetzung. Einstellungsvoraussetzung.
domains: domains:
- law-enforcement - static-investigations
- incident-response - incident-response
phases: phases:
- data-collection - data-collection
@ -1835,7 +1835,7 @@ tools:
gleichzeitig. Für High-Volume-Labs die Investition wert, für gleichzeitig. Für High-Volume-Labs die Investition wert, für
Gelegenheitsnutzer Overkill. Gelegenheitsnutzer Overkill.
domains: domains:
- law-enforcement - static-investigations
- incident-response - incident-response
phases: phases:
- data-collection - data-collection
@ -1894,7 +1894,7 @@ tools:
Netzwerkverbindungen und Verschlüsselungsschlüssel. Netzwerkverbindungen und Verschlüsselungsschlüssel.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
phases: phases:
- data-collection - data-collection
@ -1928,7 +1928,7 @@ tools:
Unternehmensumgebungen mit gemischten Betriebssystem-Landschaften. Unternehmensumgebungen mit gemischten Betriebssystem-Landschaften.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
phases: phases:
- data-collection - data-collection
@ -1964,7 +1964,7 @@ tools:
erstellt durchsuchbare Ausgabeformate für effiziente Analyse. erstellt durchsuchbare Ausgabeformate für effiziente Analyse.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
phases: phases:
- data-collection - data-collection
@ -2060,7 +2060,7 @@ tools:
SHA, and digital signature validation. SHA, and digital signature validation.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- cloud-forensics - cloud-forensics
phases: phases:
@ -2084,8 +2084,8 @@ tools:
domains: domains:
- id: incident-response - id: incident-response
name: Incident Response & Breach-Untersuchung name: Incident Response & Breach-Untersuchung
- id: law-enforcement - id: static-investigations
name: Strafverfolgung & Kriminalermittlung name: Datenträgerforensik & Ermittlungen
- id: malware-analysis - id: malware-analysis
name: Malware-Analyse & Reverse Engineering name: Malware-Analyse & Reverse Engineering
- id: fraud-investigation - id: fraud-investigation

View File

@ -12,7 +12,7 @@
Unternehmensumgebungen mit gemischten Betriebssystem-Landschaften. Unternehmensumgebungen mit gemischten Betriebssystem-Landschaften.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
phases: phases:
- data-collection - data-collection
@ -48,7 +48,7 @@
erstellt durchsuchbare Ausgabeformate für effiziente Analyse. erstellt durchsuchbare Ausgabeformate für effiziente Analyse.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
phases: phases:
- data-collection - data-collection
@ -144,7 +144,7 @@
SHA, and digital signature validation. SHA, and digital signature validation.
domains: domains:
- incident-response - incident-response
- law-enforcement - static-investigations
- malware-analysis - malware-analysis
- cloud-forensics - cloud-forensics
phases: phases:
@ -168,8 +168,8 @@
domains: domains:
- id: incident-response - id: incident-response
name: Incident Response & Breach-Untersuchung name: Incident Response & Breach-Untersuchung
- id: law-enforcement - id: static-investigations
name: Strafverfolgung & Kriminalermittlung name: Datenträgerforensik & Ermittlungen
- id: malware-analysis - id: malware-analysis
name: Malware-Analyse & Reverse Engineering name: Malware-Analyse & Reverse Engineering
- id: fraud-investigation - id: fraud-investigation

View File

@ -141,7 +141,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
</div> </div>
<p style="margin-bottom: 1rem; line-height: 1.7;"> <p style="margin-bottom: 1rem; line-height: 1.7;">
Falls eine Anwendung nicht wie vorgesehen funktioniert, ihr Unterstützung braucht, der Speicherplatz ausgeht Falls eine Anwendung nicht wie vorgesehen funktioniert, ihr Unterstützung braucht, der Speicherplatz ausgeht
oder sonstige Probleme auftreten: <strong>Schreibt mir einfach auf Signal!</strong> oder sonstige Probleme auftreten: <strong>Schreibt mir einfach auf Signal</strong> oder an <a href="mailto:mstoeck3@hs-mittweida.de">mstoeck3@hs-mittweida.de</a>.
</p> </p>
<!-- Special Note Box --> <!-- Special Note Box -->
@ -179,6 +179,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
</div> </div>
<!-- Contributing Section --> <!-- Contributing Section -->
<!-- Contribution Section -->
<div class="card" style="margin-bottom: 2rem; border-left: 4px solid var(--color-accent);"> <div class="card" style="margin-bottom: 2rem; border-left: 4px solid var(--color-accent);">
<div style="display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem;"> <div style="display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem;">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--color-accent)" stroke-width="2"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--color-accent)" stroke-width="2">
@ -187,40 +188,43 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<line x1="20" y1="8" x2="20" y2="14"/> <line x1="20" y1="8" x2="20" y2="14"/>
<line x1="23" y1="11" x2="17" y2="11"/> <line x1="23" y1="11" x2="17" y2="11"/>
</svg> </svg>
<h2 style="margin: 0; color: var(--color-accent);">Mitmachen und Beitragen</h2> <h2 style="margin: 0; color: var(--color-accent);">Mitmachen &amp; Beitragen</h2>
</div> </div>
<div style="display: grid; gap: 1.25rem;"> <div style="display: grid; gap: 1.25rem;">
<!-- Suggestions -->
<div style="background-color: var(--color-bg-secondary); padding: 1.25rem; border-radius: 0.5rem;"> <div style="background-color: var(--color-bg-secondary); padding: 1.25rem; border-radius: 0.5rem;">
<h4 style="margin: 0 0 0.5rem 0; color: var(--color-accent);">🔍 Vorschläge</h4> <h4 style="margin: 0 0 0.5rem 0; color: var(--color-accent);">🔍 Vorschläge</h4>
<p style="margin: 0;"> <p style="margin: 0;">
Ich suche stets nach Ergänzungen für die Liste. Falls euch interessante Tools oder Methoden einfallen Du hast eine Idee, wie wir den Hub erweitern können? Reiche deinen Vorschlag unkompliziert
schreibt mir gerne auf Signal oder an <a href="mailto:mstoeck3@hs-mittweida.de">mstoeck3@hs-mittweida.de</a>. über unsere <a href="/contribute#vorschlaege">/contribute</a>-Seite ein.
</p> </p>
</div> </div>
<!-- Corrections & Updates -->
<div style="background-color: var(--color-bg-secondary); padding: 1.25rem; border-radius: 0.5rem;"> <div style="background-color: var(--color-bg-secondary); padding: 1.25rem; border-radius: 0.5rem;">
<h4 style="margin: 0 0 0.5rem 0; color: var(--color-accent);">🔧 Korrekturen & Updates</h4> <h4 style="margin: 0 0 0.5rem 0; color: var(--color-accent);">🔧 Korrekturen &amp; Updates</h4>
<p style="margin: 0;"> <p style="margin: 0;">
Sollte eine Anwendung/Methode nicht mehr aktuell, veraltet oder falsch repräsentiert sein, Ist eine Anwendung veraltet oder falsch dargestellt? Teile uns das bitte direkt unter
gebt mir unbedingt Bescheid. <a href="/contribute#korrekturen">/contribute</a> mit.
</p> </p>
</div> </div>
<!-- Code Contributions -->
<div style="background-color: var(--color-bg-secondary); padding: 1.25rem; border-radius: 0.5rem;"> <div style="background-color: var(--color-bg-secondary); padding: 1.25rem; border-radius: 0.5rem;">
<h4 style="margin: 0 0 0.5rem 0; color: var(--color-accent);">💻 Code-Beiträge</h4> <h4 style="margin: 0 0 0.5rem 0; color: var(--color-accent);">💻 CodeBeiträge</h4>
<p style="margin-bottom: 0.75rem;"> <p style="margin-bottom: 0.75rem;">
Ihr könnt auch direkt am Sourcecode mitarbeiten: Möchtest du direkt am Sourcecode mitarbeiten? Schau dir die Anleitung unter
<a href="/contribute#code">/contribute</a> an oder besuche unser Repository:
</p> </p>
<a href="https://git.cc24.dev/mstoeck3/cc24-hub" target="_blank" rel="noopener noreferrer" <a href="https://git.cc24.dev/mstoeck3/cc24-hub" target="_blank" rel="noopener noreferrer"
style="display: inline-flex; align-items: center; gap: 0.5rem; color: var(--color-accent); font-weight: 500;"> style="display: inline-flex; align-items: center; gap: 0.5rem; color: var(--color-accent); font-weight: 500;">
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"> <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" /> <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
</svg> </svg>
Git-Repository besuchen GitRepository besuchen
</a> </a>
</div> </div>
<div style="background-color: var(--color-bg-secondary); padding: 1.25rem; border-radius: 0.5rem;"> <div style="background-color: var(--color-bg-secondary); padding: 1.25rem; border-radius: 0.5rem;">
<h4 style="margin: 0 0 0.5rem 0; color: var(--color-accent);">⚡ Unterstützung</h4> <h4 style="margin: 0 0 0.5rem 0; color: var(--color-accent);">⚡ Unterstützung</h4>
<p style="margin: 0;"> <p style="margin: 0;">

View File

@ -23,10 +23,10 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
<div class="container" style="max-width: 900px; margin: 0 auto; padding: 2rem 1rem;"> <div class="container" style="max-width: 900px; margin: 0 auto; padding: 2rem 1rem;">
<!-- Header --> <!-- Header -->
<div class="hero-section"> <div style="text-align: center; margin-bottom: 2rem; padding: 2rem; background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%); color: white; border-radius: 1rem;">
<h1>Submit Knowledge Base Article</h1> <h1 style="margin-bottom: 1rem; font-size: 2rem;">Knowledgebase-Artikel</h1>
<p>Share documentation, tutorials, or insights about DFIR tools and methods. Your contribution will be submitted as an issue for maintainer review.</p> <p style="margin: 0.5rem 0; opacity: 0.9;">Danke für deinen Beitrag!</p>
{userEmail && <p><strong>Submitting as:</strong> {userEmail}</p>} {userEmail && <p style="margin: 0.5rem 0; opacity: 0.8;"><strong>Eingeloggt als:</strong> {userEmail}</p>}
</div> </div>
<!-- Main Form --> <!-- Main Form -->
@ -35,13 +35,13 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
<!-- Basic Information --> <!-- Basic Information -->
<div class="form-section"> <div class="form-section">
<h3 class="section-title">Basic Information</h3> <h3 class="section-title">Grundinformationen</h3>
<div class="form-grid-2"> <div class="form-grid-2">
<div class="form-group"> <div class="form-group">
<label for="tool-name" class="form-label">Related Tool (Optional)</label> <label for="tool-name" class="form-label">Zusammenhang zu Tool / Methode / Konzept (Optional)</label>
<select id="tool-name" name="toolName" class="form-input"> <select id="tool-name" name="toolName" class="form-input">
<option value="">Select a tool...</option> <option value="">Auswählen...</option>
{sortedTools.map(tool => ( {sortedTools.map(tool => (
<option value={tool.name}>{tool.name} ({tool.type})</option> <option value={tool.name}>{tool.name} ({tool.type})</option>
))} ))}
@ -49,9 +49,9 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="difficulty" class="form-label">Difficulty Level (Optional)</label> <label for="difficulty" class="form-label">Schwierigkeitsniveau (Optional)</label>
<select id="difficulty" name="difficulty" class="form-input"> <select id="difficulty" name="difficulty" class="form-input">
<option value="">Select difficulty...</option> <option value="">Niveau wählen...</option>
<option value="novice">Novice</option> <option value="novice">Novice</option>
<option value="beginner">Beginner</option> <option value="beginner">Beginner</option>
<option value="intermediate">Intermediate</option> <option value="intermediate">Intermediate</option>
@ -60,27 +60,28 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
</select> </select>
</div> </div>
</div> </div>
<br>
<div class="form-group"> <div class="form-group">
<label for="title" class="form-label">Article Title (Optional)</label> <label for="title" class="form-label">Titel des Artikels (Optional)</label>
<input <input
type="text" type="text"
id="title" id="title"
name="title" name="title"
maxlength="100" maxlength="100"
placeholder="Clear, descriptive title for your article" placeholder="Klarer, deskriptiver Titel"
class="form-input" class="form-input"
/> />
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="description" class="form-label">Description (Optional)</label> <label for="description" class="form-label">Kurzbeschreibung (Optional)</label>
<textarea <textarea
id="description" id="description"
name="description" name="description"
maxlength="300" maxlength="300"
rows="3" rows="3"
placeholder="Brief summary of what this article covers" placeholder="Kurze Zusammenfassung, worum es in dem Artikel geht"
class="form-input" class="form-input"
></textarea> ></textarea>
</div> </div>
@ -88,21 +89,21 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
<!-- Content --> <!-- Content -->
<div class="form-section"> <div class="form-section">
<h3 class="section-title">Content</h3> <h3 class="section-title">Inhalt</h3>
<div class="form-group"> <div class="form-group">
<label for="content" class="form-label">Article Content (Optional)</label> <label for="content" class="form-label">Inhalt (Optional)</label>
<textarea <textarea
id="content" id="content"
name="content" name="content"
rows="8" rows="8"
placeholder="Provide your content, documentation, tutorial steps, or notes here..." placeholder="Schreibt hier so viel Text, wie ihr wollt. Die Formatierung wird später redaktionell angepasst."
class="form-input" class="form-input"
></textarea> ></textarea>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="external-link" class="form-label">External Link (Optional)</label> <label for="external-link" class="form-label">Link (z.B. Primärquelle) (Optional)</label>
<input <input
type="url" type="url"
id="external-link" id="external-link"
@ -115,10 +116,10 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
<!-- File Upload --> <!-- File Upload -->
<div class="form-section"> <div class="form-section">
<h3 class="section-title">Upload Files</h3> <h3 class="section-title">Dateien hochladen</h3>
<div class="form-group"> <div class="form-group">
<label class="form-label">Documents, Images, Videos (Optional)</label> <label class="form-label">Dokumente, Bilder, Videos (Optional)</label>
<div class="upload-area" id="upload-area"> <div class="upload-area" id="upload-area">
<input type="file" id="file-input" multiple accept=".pdf,.doc,.docx,.txt,.md,.zip,.png,.jpg,.jpeg,.gif,.mp4,.webm" style="display: none;"> <input type="file" id="file-input" multiple accept=".pdf,.doc,.docx,.txt,.md,.zip,.png,.jpg,.jpeg,.gif,.mp4,.webm" style="display: none;">
<div class="upload-placeholder"> <div class="upload-placeholder">
@ -127,12 +128,12 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
<polyline points="7 10 12 15 17 10"/> <polyline points="7 10 12 15 17 10"/>
<line x1="12" y1="15" x2="12" y2="3"/> <line x1="12" y1="15" x2="12" y2="3"/>
</svg> </svg>
<p>Click to select files or drag & drop</p> <p>Klicken, um Dateien auszuwählen oder Drag&Drop</p>
<small>PDFs, documents, images, archives, etc.</small> <small>Die Dateien landen in der CC24-Cloud. Keine Malware.</small>
</div> </div>
</div> </div>
<div id="file-list" class="file-list" style="display: none;"> <div id="file-list" class="file-list" style="display: none;">
<h5>Selected Files</h5> <h5>Ausgewählte Dateien</h5>
<div id="files-container"></div> <div id="files-container"></div>
</div> </div>
</div> </div>
@ -140,11 +141,11 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
<!-- Additional Information --> <!-- Additional Information -->
<div class="form-section"> <div class="form-section">
<h3 class="section-title">Additional Information</h3> <h3 class="section-title">Zusatzinformation</h3>
<div class="form-grid-2"> <div class="form-grid-2">
<div class="form-group"> <div class="form-group">
<label for="categories" class="form-label">Categories (Optional)</label> <label for="categories" class="form-label">Kategorien (Optional)</label>
<input <input
type="text" type="text"
id="categories" id="categories"
@ -152,7 +153,7 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
placeholder="setup, configuration, troubleshooting" placeholder="setup, configuration, troubleshooting"
class="form-input" class="form-input"
/> />
<small class="form-help">Comma-separated categories</small> <small class="form-help">Komma-getrennte Kategorien</small>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -164,17 +165,17 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
placeholder="installation, docker, linux, windows" placeholder="installation, docker, linux, windows"
class="form-input" class="form-input"
/> />
<small class="form-help">Comma-separated tags</small> <small class="form-help">Komma-getrennte Tags</small>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="reason" class="form-label">Reason for Contribution (Optional)</label> <label for="reason" class="form-label">Grund für den Beitrag (Optional)</label>
<textarea <textarea
id="reason" id="reason"
name="reason" name="reason"
rows="3" rows="3"
placeholder="Why are you submitting this article? What problem does it solve?" placeholder="Möchtest du sonst noch etwas mitteilen? Welches Problem wurde für dich gelöst??"
class="form-input" class="form-input"
></textarea> ></textarea>
</div> </div>
@ -182,9 +183,9 @@ const sortedTools = data.tools.sort((a: any, b: any) => a.name.localeCompare(b.n
<!-- Submit Button --> <!-- Submit Button -->
<div class="form-actions"> <div class="form-actions">
<a href="/" class="btn btn-secondary">Cancel</a> <a href="/" class="btn btn-secondary">Abbruch</a>
<button type="submit" id="submit-btn" class="btn btn-accent"> <button type="submit" id="submit-btn" class="btn btn-accent">
<span id="submit-text">Submit Article</span> <span id="submit-text">Abschicken</span>
<span id="submit-spinner" style="display: none;">⏳</span> <span id="submit-spinner" style="display: none;">⏳</span>
</button> </button>
</div> </div>

View File

@ -32,7 +32,7 @@ const isEdit = !!editTool;
<!-- Header --> <!-- Header -->
<div style="text-align: center; margin-bottom: 2rem; padding: 2rem; background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%); color: white; border-radius: 1rem;"> <div style="text-align: center; margin-bottom: 2rem; padding: 2rem; background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%); color: white; border-radius: 1rem;">
<h1 style="margin-bottom: 1rem; font-size: 2rem;">{isEdit ? `Edit: ${editTool?.name}` : 'Contribute New Tool/Method/Concept'}</h1> <h1 style="margin-bottom: 1rem; font-size: 2rem;">{isEdit ? `Edit: ${editTool?.name}` : 'Tool / Methode / Konzept beitragen'}</h1>
<p style="margin: 0.5rem 0; opacity: 0.9;"> <p style="margin: 0.5rem 0; opacity: 0.9;">
{isEdit {isEdit
? 'Passt die Informationen für dieses Tool/Methode/Konzept an. Dein Beitrag wird als Git-Issue veröffentlicht.' ? 'Passt die Informationen für dieses Tool/Methode/Konzept an. Dein Beitrag wird als Git-Issue veröffentlicht.'
@ -58,9 +58,9 @@ const isEdit = !!editTool;
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.5rem;"> <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.5rem;">
<div> <div>
<label for="type" style="display: block; margin-bottom: 0.5rem; font-weight: 600;">Type <span style="color: var(--color-error);">*</span></label> <label for="type" style="display: block; margin-bottom: 0.5rem; font-weight: 600;">Typ <span style="color: var(--color-error);">*</span></label>
<select id="type" name="type" required> <select id="type" name="type" required>
<option value="">Select type...</option> <option value="">Auswählen...</option>
<option value="software" selected={editTool?.type === 'software'}>Software/Tool</option> <option value="software" selected={editTool?.type === 'software'}>Software/Tool</option>
<option value="method" selected={editTool?.type === 'method'}>Methode/Prozess</option> <option value="method" selected={editTool?.type === 'method'}>Methode/Prozess</option>
<option value="concept" selected={editTool?.type === 'concept'}>Konzept/Wissen</option> <option value="concept" selected={editTool?.type === 'concept'}>Konzept/Wissen</option>
@ -70,7 +70,7 @@ const isEdit = !!editTool;
<div> <div>
<label for="skillLevel" style="display: block; margin-bottom: 0.5rem; font-weight: 600;">Skill Level <span style="color: var(--color-error);">*</span></label> <label for="skillLevel" style="display: block; margin-bottom: 0.5rem; font-weight: 600;">Skill Level <span style="color: var(--color-error);">*</span></label>
<select id="skillLevel" name="skillLevel" required> <select id="skillLevel" name="skillLevel" required>
<option value="">Select level...</option> <option value="">Auswählen...</option>
<option value="novice" selected={editTool?.skillLevel === 'novice'}>Novice</option> <option value="novice" selected={editTool?.skillLevel === 'novice'}>Novice</option>
<option value="beginner" selected={editTool?.skillLevel === 'beginner'}>Beginner</option> <option value="beginner" selected={editTool?.skillLevel === 'beginner'}>Beginner</option>
<option value="intermediate" selected={editTool?.skillLevel === 'intermediate'}>Intermediate</option> <option value="intermediate" selected={editTool?.skillLevel === 'intermediate'}>Intermediate</option>
@ -224,7 +224,7 @@ const isEdit = !!editTool;
<div style="margin-bottom: 1.5rem;"> <div style="margin-bottom: 1.5rem;">
<label for="tags" style="display: block; margin-bottom: 0.5rem; font-weight: 600;">Tags</label> <label for="tags" style="display: block; margin-bottom: 0.5rem; font-weight: 600;">Tags</label>
<input type="text" id="tags" name="tags" value={editTool?.tags?.join(', ') || ''} <input type="text" id="tags" name="tags" value={editTool?.tags?.join(', ') || ''}
placeholder="Komma-getrennt: Passede Begriffe, nach denen ihr suchen würdet." /> placeholder="Komma-getrennt: Passende Begriffe, nach denen ihr suchen würdet." />
</div> </div>
<div style="margin-bottom: 1.5rem;"> <div style="margin-bottom: 1.5rem;">