Entwickler
Willkommen beim Raspirus Entwickler Guide! Auf dieser Seite finden Sie alles, was Sie brauchen, um effektiv zu helfen, von der Einrichtung Ihrer Umgebung bis zum Verständnis der Architektur und der Aktualisierung der YARA-Regeln.
Setup
Um mit der Entwicklung zu beginnen, folgen Sie diesen Schritten:
- Repository klonen:
sh git clone https://github.com/Raspirus/raspirus.git cd raspirus
- [Rust]installieren (https://www.rust-lang.org/tools/install).
- Installieren Sie das Raspirus-Paket:
sh Ladungsinstallation .
- Entwicklung beginnen:
sh Güterlauf
- Oder bauen Sie Raspirus:
sh Güterbau
Probleme bei der Fehlerbehebung
Wenn du Probleme beim Bau oder Betrieb von Raspirus findest:
- Stellen Sie sicher, dass Rust korrekt installiert ist.
- Überprüfen Sie, dass Logs und Konfigurationsdateien korrekt erstellt werden.
- Prüfen Sie auf Abhängigkeitskonflikte und fehlende Pakete.
Dokumentation
Da Raspirus in Rust geschrieben ist, kannst du Entwicklerdokumentation generieren mit:
frachtsdoc --no-deps --open
Dies öffnet die generierte Dokumentation in Ihrem Browser.
Architektur
Raspirus folgt einer frontend-backend Architektur, wobei beide Komponenten in Rust geschrieben sind.
Frontend
- Verwendet eised-rs für GUI-Rendering.
- Priorität für die Benutzererfahrung – idealerweise sollten Benutzer niemals die Einstellungsseite öffnen müssen.
- Entworfen für Touch-Support und minimiert die Eingabe der Tastatur.
- Plug-and-play: Kann bei Bedarf durch ein anderes Frontend ersetzt werden.
- Einfache Struktur, ähnlich einer Website mit nur wenigen Seiten.
Backend
- Multi-Threadd für effizientes Scannen.
- Behandelt Scannen, Regelverarbeitung und Einstellungsverwaltung.
- Implementiert YARA-Regeln zur Malware-Erkennung.
- Gut dokumentierte Funktionen – im Zweifel überprüfen Sie den Code direkt.
- Trotz seiner Komplexität wird es einfacher, zu navigieren, sobald man mit ihm beginnt.
Konfiguration
Die Konfigurationsdatei ist im Standardordner für Systemkonfigurationen gespeichert:
{
"config_version": "6",
"rules_version": "v1.1. ",
"min_matches": 0,
"max_matches": 20,
"max_threads": 12,
"logging_is_active": true
"mirror": "https://api. ithub.com/repos/Raspirus/yara-rules/releases/latest",
"language": "en",
"dark_mode": true
}
Schlüsselfelder
config_version
: Legt fest, ob eine ältere Konfiguration überschrieben werden muss.rules_version
: Trackt die zuletzt heruntergeladene YARA-Regelversion.min_matches
: Mindestanzahl an Regeln, die erforderlich sind, um eine Datei kennzeichnen zu können.max_matches
: Maximale Übereinstimmung mit Regeln, bevor weitere Prüfungen angehalten werden.max_threads
: Anzahl der CPU-Threads, die zum Scannen verwendet werden.logging_is_active
: Aktiviert /deaktiviert Protokollierung (nützlich, wenn der Speicher begrenzt ist).mirror
: API Endpunkt für das Abrufen von Regelaktualisierungen.language
: Aktuelle Sprache (unterstütztfr
,en
,it
,de
).dark_mode
: Schaltet den dunklen Modus der Anwendung um.
Spiegel
Die Einstellung mirror
in der Konfigurationsdatei sollte auf eine Git-API verweisen. Benutzerdefinierte Spiegel müssen JSON mit der folgenden Struktur versorgen:
{
"tag_name": "v1.1",
"zipball_url": "http://example.com/download.zip"
}
tag_name
: Gibt die Version für Update-Prüfungen an.zipball_url
: Direkter Link auf das.zip
Archiv mit YARA Regeln.
Updater
Raspirus hat einen Built-from-scratch Updater dass:
- Prüft die neueste verfügbare Version mit dem konfigurierten Spiegel.
- Lädt das
.zip
Archiv in den Cache. - Kompiliert alle
.yar
-Dateien in ein.yarac
(kompilierte YARA-Regeln). - Speichert die kompilierten Regeln in:
- Linux/macOS:
~/.local/share/raspirus
- Windows:
%appdata%\Roaming\Raspirus\Data
- macOS (App Bundle):
/Applications/Raspirus/data
Archivstruktur freigeben
Die Aktualisierung .zip
sollte nicht kompilierte YARA .yar
Dateien enthalten. Die Ordnerstruktur innerhalb des Archivs spielt keine Rolle, da Dateien rekursiv hinzugefügt werden.
📌 Windows Users: Wenn Windows Defender die kompilierten YARA-Regeln durchführt, kann ein optionales Skript die Defender-Scan deaktivieren. Siehe dieses Skript.