Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
FreeMOCA — Speicherfreies kontinuierliches Lernframework zur Malware-Klassifizierung mittels modenverbindungsbasierter Interpolation. Unterstützt klasseninkrementelle und domäneninkrementelle Szenarien auf den Datensätzen EMBER und Androzoo. | Kitploit
Tools/GitHubGitHub/iqsec-lab/freemoca
Android-SicherheitStatische AnalyseMalware-AnalyseMaschinelles LernenPapers & ForschungLernen & Bildung
GitHubiqsec-lab/freemoca

FreeMOCA

Speicherfreies kontinuierliches Lernframework zur Malware-Klassifizierung mittels modenverbindungsbasierter Interpolation. Unterstützt klasseninkrementelle und domäneninkrementelle Szenarien auf den Datensätzen EMBER und Androzoo.

Repository anzeigen
3vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

FreeMOCA: Speicherfreies kontinuierliches Lernen für die Analyse von Schadcode

[ArXiv-Papier-Link]

Zahra Asadi*, Haeseung Jeon*, Sohyun Han, Md Mahmuduzzaman Kamol, Se Eun Oh, Mohammad Saidur Rahman†

*Gleichberechtigte Autoren. †Korrespondierender Autor.

[!NOTE] Dies ist die offizielle Implementierung des Papers FreeMOCA: Memory-Free Continual Learning for Malicious Code Analysis.

FreeMOCA-Pipeline

FreeMOCA_Overview_v3

FreeMOCA arbeitet nach folgendem Prozess:

  1. Aufgaben treffen nacheinander ein, wobei jede neue Malware-Familien einführt.
  2. Das Modell für jede Aufgabe wird aus der vorherigen Aufgabe initialisiert (Warmstart), um die Aufgaben-Minima im Parameterraum auszurichten.
  3. Nach dem Training wird eine auf Modenkonnektivität basierende Interpolation zwischen den Optima der aktuellen und der vorherigen Aufgabe berechnet. Dieser Prozess kann eine adaptive schichtweise Interpolation basierend auf der Größe der Parameteraktualisierung verwenden.
  4. Das interpolierte Modell ersetzt das aktuelle Modell und wird für die nächste Aufgabe verwendet.
  5. Es werden keine früheren Daten, Merkmale oder generierten Stichproben gespeichert, was zu speicherfreiem kontinuierlichem Lernen führt.

Der gesamte Prozess konstruiert eine Kette verbundener Lösungen, die auf einer Mannigfaltigkeit mit geringem Verlust liegen, wodurch katastrophales Vergessen erheblich reduziert wird.

Datensätze

FreeMOCA wurde mit zwei groß angelegten Malware-Datensätzen evaluiert: EMBER und Androzoo. Datenquellen:

  • EMBER: https://github.com/elastic/ember
  • Androzoo (AZ): https://zenodo.org/records/14537891

Laden Sie den Datensatz herunter und richten Sie ihn im folgenden Verzeichnis ein:

root@kitploit:~
FreeMOCA/data/
├── AZ_Class
│   ├── AZ_Class_Test.npz
│   └── AZ_Class_Train.npz
│
├── AZ_Domain
│   ├── 2008_Domain_AZ_Test_Transfo...
│   ├── 2008_Domain_AZ_Train_Transfo...
│   ├── 2009_Domain_AZ_Test_Transfo...
│   └── ...
│
├── EMBER_Class
│   ├── XY_test.npz
│   └── XY_train.npz
│
└── EMBER_Domain
    ├── 2018-01
    ├── 2018-02
    ├── 2018-03
    └── ...

FreeMOCA ausführen

Dieses Repository unterstützt zwei Szenarien des kontinuierlichen Lernens:

  • Klasseninkrementelles Lernen (Class-IL): Im Laufe der Aufgaben werden neue Klassen (Malware-Familien) eingeführt.
  • Domäneninkrementelles Lernen (Domain-IL): Der Labelraum ist festgelegt, aber die Datenverteilung verschiebt sich über die Zeit (z. B. Monate/Jahre).

Schritt 1. Installation

Führen Sie den folgenden Befehl für die

root@kitploit:~
conda create -n freemoca python=3.9
conda activate freemoca
pip install -r requirements.txt

Schritt 2. FreeMOCA ausführen (Class-IL & Domain-IL)

root@kitploit:~
# EMBER Class-IL
cd ./FreeMOCA_Class/EMBER_Class
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data
root@kitploit:~
# AZ Class-IL
cd ./FreeMOCA_Class/AZ_Class
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data
root@kitploit:~
# EMBER Domain-IL
cd ./FreeMOCA_Domain/EMBER_Domain
CUDA_VISIBLE_DEVICES=0 python main.py --data_root /path/to/data/directory
root@kitploit:~
# AZ Domain-IL
cd ./FreeMOCA_Domain/AZ_Domain
CUDA_VISIBLE_DEVICES=0 python main.py --data_root /path/to/data/directory

Für eine detailliertere Einrichtung der Hyperparameter siehe Anhang A. Häufige Argumente für FreeMOCA.

Anhang A. Häufige Argumente für FreeMOCA

Um die Hyperparameter oder experimentellen Einstellungen anzupassen, verwenden Sie die folgenden Argumente:

Um die Standardeinstellungen der Argumente zu ändern, prüfen Sie die Datei arguments.py.

Basislinien

Unser Repository unterstützt Experimente mit den folgenden Standard-Basislinien:

  • None: Nur auf der aktuellen Aufgabe trainieren (untere Schranke)
  • Joint: Auf allen bisher gesehenen Daten trainieren (obere Schranke, unpraktikabel)

Sie können es mit dem folgenden Befehl ausführen:

root@kitploit:~
cd /path/to/experiment/directory
CUDA_VISIBLE_DEVICES=0 python none.py --arugment_you_want
CUDA_VISIBLE_DEVICES=0 python joint.py --arugment_you_want

sowie die folgenden früheren Arbeiten:

  • CLeWI: Modifiziert auf Basis von diesem GitHub-Repository, basierend auf der Arbeit "Continual Learning with Weight Interpolation."
  • WSC: Modifiziert auf Basis von diesem GitHub-Repository, basierend auf der Arbeit "Forget Forgetting: Continual Learning in a World of Abundant Memory."
  • Generative Replay (GR): Modifiziert auf Basis von diesem GitHub-Repository, basierend auf der Arbeit "Continual learning with deep generative replay."
  • EWC: Modifiziert auf Basis von diesem GitHub-Repository, basierend auf der Arbeit "Overcoming catastrophic forgetting in neural networks."
  • LwF: Modifiziert auf Basis von diesem GitHub-Repository, basierend auf der Arbeit "Learning without Forgetting."
  • iCaRL: Modifiziert auf Basis von diesem GitHub-Repository, basierend auf der Arbeit "iCaRL: Incremental Classifier and Representation Learning."
  • TAMiL: Modifiziert auf Basis von diesem GitHub-Repository, basierend auf der Arbeit "Task-Aware Information Routing from Common Representation Space in Lifelong Learning."
  • MalCL: Modifiziert auf Basis von diesem GitHub-Repository, basierend auf der Arbeit "MalCL: Leveraging GAN-Based Generative Replay to Combat Catastrophic Forgetting in Malware Classification."

Sie können die Basislinien mit dem folgenden Befehl ausführen:

root@kitploit:~
# CLeWI for EMBER-Class
cd ./baselines/CLeWI
CUDA_VISIBLE_DEVICES=6 python main.py --model="clewi" \
  --dataset="seq_ember" --n_tasks=11 \
  --lr=0.001 --buffer_size=500 --n_epochs=50 \
  --seed=42 --optim_wd=0.0 --optim_mom=0.0 \
  --batch_size=512 --sub_dataset="ember"

# CLeWI for AZ-Class
cd ./baselines/CLeWI
CUDA_VISIBLE_DEVICES=6 python main.py --model="clewi" \
  --dataset="seq_ember" --n_tasks=11 \
  --lr=0.001 --buffer_size=500 --n_epochs=50 \
  --seed=42 --optim_wd=0.0 --optim_mom=0.0 \
  --batch_size=512 --sub_dataset="az"
root@kitploit:~
# WSC for EMBER-Class
cd ./baselines/WSC
MODEL_NAME=wsc_20_ember
python main.py --config=./exps/wsc_memory/$MODEL_NAME.json
root@kitploit:~
# WSC for AZ-Class
cd ./baselines/WSC
MODEL_NAME=wsc_20_az
python main.py --config=./exps/wsc_memory/$MODEL_NAME.json
root@kitploit:~
# GR for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=EMBER --tasks=11 --replay=generative --metrics --logger_file gr --scenario=class

# GR for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=ANDROZOO --tasks=11 --replay=generative --metrics --logger_file gr --scenario=class
root@kitploit:~
# EWC for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=EMBER --tasks=11 --ewc --lambda=50 --metrics --logger_file ewc --scenario=class

# EWC for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=ANDROZOO --tasks=11 --ewc --lambda=50 --metrics --logger_file ewc --scenario=class
root@kitploit:~
# LwF for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=EMBER  --tasks=11 --replay=current --distill --metrics --logger_file lwf --scenario=class

# LwF for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=AZ  --tasks=11 --replay=current --distill --metrics --logger_file lwf --scenario=class
root@kitploit:~
# iCaRL for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=1 python main.py --data_set=EMBER --tasks=11 --icarl --budget=2000 --metrics --logger_file=icarl --scenario=class

# iCaRL for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=ANDROZOO --tasks=11 --icarl --budget=2000 --metrics --logger_file=icarl --scenario=class
root@kitploit:~
# TAMiL for EMBER-Class
cd ./baselines/TAMiL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py

# TAMiL for AZ-Class
cd ./baselines/TAMiL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py
root@kitploit:~
# MalCL for EMBER-Class
cd ./baselines/MalCL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data

# MalCL for AZ-Class
cd ./baselines/AZ_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data
Tool herunterladen
ArgumentBeschreibung
--init_classesAnzahl der Klassen bei Aufgabe 0
--epochsEpochen pro Aufgabe
--batchsizeBatch-Größe
--lrLernrate
--momentumSGD-Momentum
--weight_decayWeight Decay
--lambda_minMinimales Interpolationsgewicht
--lambda_maxMaximales Interpolationsgewicht