Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
FreeMOCA — Estrutura de aprendizado contínuo sem memória para classificação de malware usando interpolação baseada em conectividade de modos. Suporta cenários incrementais por classe e por domínio nos conjuntos de dados EMBER e Androzoo. | Kitploit
Ferramentas/GitHubGitHub/iqsec-lab/freemoca
Segurança AndroidAnálise EstáticaAnálise de MalwareAprendizado de MáquinaPapers e PesquisaAprendizado e Educação
GitHubiqsec-lab/freemoca

FreeMOCA

Estrutura de aprendizado contínuo sem memória para classificação de malware usando interpolação baseada em conectividade de modos. Suporta cenários incrementais por classe e por domínio nos conjuntos de dados EMBER e Androzoo.

Ver Repositório
3há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

FreeMOCA: Aprendizado Contínuo Sem Memória para Análise de Código Malicioso

[Link para o Artigo no ArXiv]

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

*Autores com contribuição igualitária. †Autor correspondente.

[!NOTE] Esta é a implementação oficial do artigo FreeMOCA: Memory-Free Continual Learning for Malicious Code Analysis.

Pipeline do FreeMOCA

FreeMOCA_Overview_v3

O FreeMOCA opera por meio do seguinte processo:

  1. As tarefas chegam sequencialmente, cada uma introduzindo novas famílias de malware.
  2. O modelo de cada tarefa é inicializado a partir da tarefa anterior (warm-start) para alinhar os mínimos das tarefas no espaço de parâmetros.
  3. Após o treinamento, uma interpolação baseada em conectividade de modos é calculada entre os ótimos da tarefa atual e da anterior. Esse processo pode usar interpolação adaptativa por camadas com base na magnitude da atualização dos parâmetros.
  4. O modelo interpolado substitui o modelo atual e é usado para a próxima tarefa.
  5. Nenhum dado passado, característica ou amostra gerada é armazenado, resultando em aprendizado contínuo sem memória.

O processo inteiro constrói uma cadeia de soluções conectadas que se encontram em uma variedade de baixa perda, reduzindo significativamente o esquecimento catastrófico.

Conjuntos de Dados

O FreeMOCA foi avaliado com dois conjuntos de dados de malware em larga escala, EMBER e Androzoo. Fontes dos conjuntos de dados:

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

Baixe e configure o conjunto de dados no seguinte diretório:

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
    └── ...

Executando o FreeMOCA

Este repositório suporta dois cenários de aprendizado contínuo:

  • Aprendizado Incremental de Classes (Class-IL): novas classes (famílias de malware) são introduzidas ao longo das tarefas.
  • Aprendizado Incremental de Domínio (Domain-IL): o espaço de rótulos é fixo, mas a distribuição dos dados muda ao longo do tempo (ex.: meses/anos).

Passo 1. Instalação

Execute o seguinte comando para o

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

Passo 2. Execute o FreeMOCA (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

Para uma configuração mais detalhada dos hiperparâmetros, consulte o Apêndice A. Argumentos Comuns para o FreeMOCA.

Apêndice A. Argumentos Comuns para o FreeMOCA

Para ajustar os hiperparâmetros ou as configurações experimentais, use os seguintes argumentos:

Para alterar a configuração padrão dos argumentos, verifique o arquivo arguments.py.

Linhas de base

Nosso repositório suporta experimentos com as seguintes linhas de base padrão:

  • None: Treinar apenas na tarefa atual (limite inferior)
  • Joint: Treinar em todos os dados vistos até o momento (limite superior, impraticável)

Você pode executá-las com o seguinte comando:

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

e os seguintes trabalhos anteriores:

  • CLeWI: Modificado a partir deste repositório do GitHub, baseado no trabalho "Continual Learning with Weight Interpolation."
  • WSC: Modificado a partir deste repositório do GitHub, baseado no trabalho "Forget Forgetting: Continual Learning in a World of Abundant Memory."
  • Generative Replay (GR): Modificado a partir deste repositório do GitHub, baseado no trabalho "Continual learning with deep generative replay."
  • EWC: Modificado a partir deste repositório do GitHub, baseado no trabalho "Overcoming catastrophic forgetting in neural networks."
  • LwF: Modificado a partir deste repositório do GitHub, baseado no trabalho "Learning without Forgetting."
  • iCaRL: Modificado a partir deste repositório do GitHub, baseado no trabalho "iCaRL: Incremental Classifier and Representation Learning."
  • TAMiL: Modificado a partir deste repositório do GitHub, baseado no trabalho "Task-Aware Information Routing from Common Representation Space in Lifelong Learning."
  • MalCL: Modificado a partir deste repositório do GitHub, baseado no trabalho "MalCL: Leveraging GAN-Based Generative Replay to Combat Catastrophic Forgetting in Malware Classification."

Você pode executar as linhas de base com o seguinte comando:

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
Baixar ferramenta
ArgumentDescription
--init_classesNúmero de classes na tarefa 0
--epochsÉpocas por tarefa
--batchsizeTamanho do lote
--lrTaxa de aprendizado
--momentumMomentum do SGD
--weight_decayDecaimento de peso
--lambda_minPeso mínimo de interpolação
--lambda_maxPeso máximo de interpolação