# Manuell hinzufügen

Hier müssen Artikel, die eingebettet werden sollen, manuell abgespeichert werden.
Da diese anders lizensiert sein können, sind sie nicht Bestandteil des Open-Source-Repositorys.

**Artikel-Quelle:** https://cloud.cc24.dev/f/47971 (Interner Nextcloud-Share)

Bei Bedarf bitte Kontakt aufnehmen mit mstoeck3@hs-mittweida.de.

# Artikel-Schema

## Dateistruktur

Alle Artikel müssen als Markdown-Dateien im Format `src/content/knowledgebase/` gespeichert werden:

```
src/content/knowledgebase/
├── tool-autopsy-grundlagen.md
├── tool-volatility-memory-analysis.md
├── method-timeline-analysis.md
└── concept-hash-functions.md
```

### Namenskonventionen

- **Tool-Artikel**: `tool-{toolname}-{topic}.md`
- **Methoden-Artikel**: `method-{methodname}-{topic}.md`  
- **Konzept-Artikel**: `concept-{conceptname}-{topic}.md`

## Frontmatter-Schema

Jeder Artikel muss einen YAML-Frontmatter-Header mit folgender Struktur haben:

### Pflichtfelder

```yaml
---
title: "Titel des Artikels"
description: "Kurze Beschreibung für die Übersicht und SEO"
last_updated: 2024-01-15  # Datum im YYYY-MM-DD Format
author: "Name des Autors"
published: true
---
```

### Optionale Felder

```yaml
---
# Tool-Verknüpfung
tool_name: "Autopsy"  # Exakter Name aus tools.yaml
related_tools: 
  - "Volatility 3"
  - "YARA"

# Klassifizierung
difficulty: "intermediate"  # novice, beginner, intermediate, advanced, expert
categories: 
  - "Tutorial"
  - "Best Practices"
tags:
  - "memory-analysis"
  - "malware"
  - "windows"

# Zugriffskontrolle
gated_content: false  # true = Authentifizierung erforderlich
---
```

## Vollständiges Beispiel

**Dateiname:** `tool-volatility-memory-analysis-grundlagen.md`

```yaml
---
title: "Volatility 3 Memory Analysis Grundlagen"
description: "Einführung in die RAM-Analyse mit Volatility 3 für Windows-Systeme"
last_updated: 2024-01-15
tool_name: "Volatility 3"
related_tools: 
  - "Autopsy"
  - "YARA"
author: "Max Mustermann"
difficulty: "intermediate"
categories: 
  - "Tutorial"
  - "Memory Analysis"
tags:
  - "volatility"
  - "memory-dump"
  - "malware-analysis"
  - "incident-response"
published: true
gated_content: false
---

# Volatility 3 Memory Analysis Grundlagen

Dieses Tutorial zeigt die Grundlagen der Speicher-Analyse...

## Installation

Volatility 3 kann über pip installiert werden:

```bash
pip install volatility3
```

## Erste Schritte

### Memory Dump laden

```bash
vol -f memory.dmp windows.info
```

### Prozesse auflisten

```bash
vol -f memory.dmp windows.pslist
```

## Video-Demonstration

<video src="/videos/volatility-basics.mp4" title="Volatility Grundlagen Tutorial" controls preload="metadata"></video>

## Weiterführende Links

- [Offizielle Dokumentation](https://volatility3.readthedocs.io/)
- [Cheat Sheet](/downloads/volatility-cheat-sheet.pdf)
```

## Content-Features

### Markdown-Unterstützung

- Standard Markdown-Syntax
- Code-Blöcke mit Syntax-Highlighting
- Tabellen
- Listen und verschachtelte Inhalte
- Automatische Inhaltsverzeichnis-Generierung

### Video-Einbindung

Videos können direkt in Markdown eingebettet werden und werden automatisch mit responsiven Containern erweitert:

#### Basis-Video-Einbindung

```html
<video src="/videos/demo.mp4" title="Tool-Demonstration" controls></video>
```

#### Vollständige Video-Konfiguration

```html
<video 
  src="/videos/advanced-tutorial.mp4" 
  title="Erweiterte Analysefunktionen"
  controls
  preload="metadata"
  width="720"
  height="405"
  muted
  poster="/images/video-thumbnail.jpg"
>
  <p>Ihr Browser unterstützt das Video-Element nicht.</p>
</video>
```

#### Unterstützte Video-Attribute

**Basis-Attribute:**
- `src`: **Erforderlich** - Pfad zur Videodatei (relativ zu `/public/`)
- `title`: **Empfohlen** - Beschreibung für Metadaten und Accessibility
- `controls`: Zeigt Player-Steuerung (Standard-Empfehlung)

**Erweiterte Attribute:**
- `autoplay`: Automatisches Abspielen (nicht empfohlen für UX)
- `muted`: Stummgeschaltet (erforderlich für Autoplay in den meisten Browsern)
- `loop`: Endlosschleife
- `preload`: `"none"` | `"metadata"` | `"auto"` (Standard: `"metadata"`)
- `poster`: Vorschaubild-URL
- `width`/`height`: Feste Dimensionen (Optional, responsive Container anpasst sich automatisch)

**Accessibility-Attribute:**
- `aria-label`: Alternative Beschreibung
- `aria-describedby`: ID eines Elements mit detaillierter Beschreibung

#### iframe-Einbindung (YouTube, Vimeo, etc.)

```html
<iframe 
  src="https://www.youtube.com/embed/VIDEO_ID" 
  title="YouTube-Tutorial: Forensic Analysis mit Tool XYZ"
  width="560" 
  height="315" 
  frameborder="0" 
  allowfullscreen
></iframe>
```

**iframe-Attribute:**
- `src`: **Erforderlich** - Embed-URL des Video-Dienstes
- `title`: **Erforderlich** - Beschreibung für Accessibility
- `width`/`height`: Empfohlene Dimensionen (werden responsive angepasst)
- `frameborder`: Auf `"0"` setzen für modernen Look
- `allowfullscreen`: Vollbild-Modus erlauben
- `loading`: `"lazy"` für Performance-Optimierung

### Automatische Video-Verarbeitung

Das System erweitert Video-Tags automatisch:

**Input:**
```html
<video src="/videos/demo.mp4" title="Demo" controls></video>
```

**Output (automatisch generiert):**
```html
<div class="video-container">
  <video 
    src="/videos/demo.mp4" 
    title="Demo" 
    controls 
    preload="metadata"
    data-video-title="Demo"
  >
    <p>Your browser does not support the video element.</p>
  </video>
  <div class="video-metadata">
    <div class="video-title">Demo</div>
  </div>
</div>
```

### Firefox-Kompatibilität

**Wichtiger Hinweis:** Videos müssen in Firefox-kompatiblen Formaten bereitgestellt werden:

#### Empfohlene Formate

**Primäre Formate (höchste Kompatibilität):**
- **MP4 (H.264/AVC)**: `.mp4` - Beste Kompatibilität across Browser
- **WebM (VP8/VP9)**: `.webm` - Moderne Browser, gute Kompression

**Sekundäre Formate:**
- **OGG Theora**: `.ogv` - Fallback für ältere Firefox-Versionen

#### Format-Konvertierung

```bash
# Mit ffmpeg zu Firefox-kompatiblem MP4 konvertieren
ffmpeg -i input.mov -c:v libx264 -c:a aac -movflags +faststart output.mp4

# Mit ffmpeg zu WebM konvertieren
ffmpeg -i input.mov -c:v libvpx-vp9 -c:a libvorbis output.webm

# Multi-Format-Bereitstellung
<video title="Demo" controls>
  <source src="/videos/demo.mp4" type="video/mp4">
  <source src="/videos/demo.webm" type="video/webm">
  <p>Ihr Browser unterstützt das Video-Element nicht.</p>
</video>
```

#### Firefox-spezifische Probleme

Das System erkennt automatisch Firefox und implementiert Error-Recovery:

- **Automatische Fehlererkennung** für nicht unterstützte Formate
- **Fallback-Mechanismen** bei Codec-Problemen
- **Erweiterte Logging** für Debugging

**Bekannte Firefox-Probleme:**
- H.265/HEVC nicht unterstützt
- Proprietäre Codecs teilweise eingeschränkt
- MIME-Type-Sensitivität höher als bei Chrome

### Video-Datei-Management

#### Dateistruktur

```
public/
├── videos/
│   ├── tools/
│   │   ├── autopsy-basics.mp4
│   │   ├── volatility-tutorial.webm
│   │   └── yara-rules-demo.mp4
│   ├── methods/
│   │   ├── timeline-analysis.mp4
│   │   └── disk-imaging.mp4
│   └── concepts/
│       ├── hash-functions.mp4
│       └── chain-custody.mp4
└── images/
    └── video-thumbnails/
        ├── autopsy-thumb.jpg
        └── volatility-thumb.jpg
```

#### Dateigröße-Empfehlungen

- **Streaming-Qualität**: 5-15 MB/Minute (720p)
- **High-Quality Tutorials**: 20-40 MB/Minute (1080p)
- **Mobile-Optimiert**: 2-8 MB/Minute (480p)

#### Konventionen

**Dateinamen:**
- Lowercase mit Bindestrichen: `tool-autopsy-installation.mp4`
- Präfix nach Kategorie: `tool-`, `method-`, `concept-`
- Beschreibender Suffix: `-basics`, `-advanced`, `-troubleshooting`

**Video-Titel:**
- Beschreibend und suchfreundlich
- Tool/Methode im Titel erwähnen
- Skill-Level angeben: "Grundlagen", "Erweitert", "Expertenlevel"

### Code-Blöcke

```bash
# Bash-Beispiel
volatility -f memory.dmp --profile=Win7SP1x64 pslist
```

```python
# Python-Beispiel
import volatility.conf as conf
import volatility.registry as registry
```

### Tabellen

| Plugin | Beschreibung | Video-Tutorial |
|--------|--------------|----------------|
| pslist | Prozesse auflisten | [Tutorial ansehen](/videos/pslist-demo.mp4) |
| malfind | Malware finden | [Demo](/videos/malfind-basics.mp4) |

## Artikel-Typen

### 1. Tool-spezifische Artikel (`tool-*.md`)

Artikel die einem konkreten Software-Tool zugeordnet sind:

```yaml
tool_name: "Autopsy"  # Muss exakt mit tools.yaml übereinstimmen
```

### 2. Methoden-Artikel (`method-*.md`)

Artikel zu forensischen Methoden und Vorgehensweisen:

```yaml
tool_name: "Timeline Analysis"  # Verweis auf method-type in tools.yaml
categories: ["Methodology", "Best Practices"]
```

### 3. Konzept-Artikel (`concept-*.md`)

Artikel zu theoretischen Konzepten und Grundlagen:

```yaml
tool_name: "Hash Functions & Digital Signatures"  # Verweis auf concept-type in tools.yaml
categories: ["Theory", "Fundamentals"]
```

Alle Typen erscheinen:
- In der Knowledgebase-Übersicht
- Bei gesetztem `tool_name`: In der Tool-Detailansicht
- Mit entsprechenden Icons und Badges

### 4. Geschützte Artikel

Unabhängig vom Typ können Artikel Authentifizierung erfordern:

```yaml
gated_content: true
```

Erscheinen mit 🔒-Symbol und erfordern Anmeldung.

## Verknüpfungen

### Related Tools

Tools aus dem `related_tools` Array werden automatisch verlinkt:

```yaml
related_tools:
  - "YARA"      # Wird zu Tool-Details verlinkt
  - "Wireshark" # Muss in tools.yaml existieren
```

### Interne Links

```markdown
- [Knowledgebase](/knowledgebase)
- [Tool-Übersicht](/#tools-grid)
- [Anderer Artikel](/knowledgebase/artikel-slug)
```

## SEO und Metadaten

### Automatische Generierung

- URL: `/knowledgebase/{dateiname-ohne-extension}`
- Meta-Description: Aus `description`-Feld
- Breadcrumbs: Automatisch generiert
- Reading-Time: Automatisch berechnet

### Social Sharing

Jeder Artikel erhält automatisch Share-Buttons für:
- URL-Kopieren
- Tool-spezifische Verlinkung

## Validierung

### Pflichtfeld-Prüfung

Das System validiert automatisch:
- ✅ `title` ist gesetzt
- ✅ `description` ist gesetzt  
- ✅ `last_updated` ist gültiges Datum
- ✅ `difficulty` ist gültiger Wert
- ✅ `tool_name` existiert in tools.yaml (falls gesetzt)

### Content-Validierung

- Automatische HTML-Escaping für Sicherheit
- Video-URLs werden validiert
- Broken Links werden geloggt (development)
- Dateinamen-Präfixe helfen bei der Organisation und Verknüpfung

### Video-Validierung

- Dateipfade auf Existenz geprüft (development)
- Format-Kompatibilität gewarnt
- Firefox-spezifische Warnings bei problematischen Formaten

## Deployment

1. Artikel von Nextcloud-Share herunterladen: https://cloud.cc24.dev/f/47971
2. Videos manuell in `public/videos/` bereitstellen (siehe `public/videos/README.md`)
3. Artikel in `src/content/knowledgebase/` ablegen (flache Struktur mit Präfixen)
4. Frontmatter nach Schema überprüfen/anpassen
5. Build-Prozess validiert automatisch
6. Artikel erscheint in Knowledgebase-Übersicht

### Troubleshooting

**Artikel erscheint nicht:**
- `published: true` gesetzt?
- Frontmatter-Syntax korrekt?
- Datei in `src/content/knowledgebase/` (flache Struktur)?
- Dateiname folgt Konvention (`tool-*`, `method-*`, `concept-*`)?

**Tool-Verknüpfung funktioniert nicht:**
- `tool_name` exakt wie in tools.yaml?
- Groß-/Kleinschreibung beachten

**Video lädt nicht:**
- Pfad korrekt? (beginnt mit `/videos/`)
- Datei im `public/videos/` Ordner?
- Unterstütztes Format? (mp4, webm, ogg)
- Firefox-kompatibel? (H.264/AVC für MP4)

**Firefox-Video-Probleme:**
- H.265/HEVC-Codecs vermeiden
- Multiple `<source>`-Tags für Fallbacks nutzen
- Browser-Console auf Codec-Fehler prüfen
- MIME-Types korrekt gesetzt?

## Beispiel-Ordnerstruktur

```
src/content/knowledgebase/
├── tool-autopsy-timeline-analysis.md
├── tool-volatility-basic-commands.md
├── tool-yara-rule-writing.md
├── method-timeline-analysis-fundamentals.md
├── method-disk-imaging-best-practices.md
├── concept-hash-functions-digital-signatures.md
├── concept-regex-pattern-matching.md
└── concept-chain-of-custody.md

public/videos/
├── tools/
│   ├── autopsy-timeline-tutorial.mp4
│   ├── volatility-basics-demo.mp4
│   └── yara-rules-advanced.webm
├── methods/
│   ├── timeline-analysis-walkthrough.mp4
│   └── disk-imaging-best-practices.mp4
└── concepts/
    ├── hash-functions-explained.mp4
    └── chain-custody-procedures.mp4
```