Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
FreeMOCA — إطار عمل تعلّم مستمر بدون حفظ للذاكرة لتصنيف البرمجيات الخبيثة باستخدام الاستيفاء القائم على اتصال الأنماط. يدعم سيناريوهات الزيادة الصفية والزيادة النطاقية على مجموعتي بيانات EMBER وAndrozoo. | Kitploit
أدوات/GitHubGitHub/iqsec-lab/freemoca
أمان أندرويدالتحليل الثابتتحليل البرمجيات الخبيثةتعلم الآلةالأوراق والأبحاثالتعلم والتعليم
GitHubiqsec-lab/freemoca

FreeMOCA

إطار عمل تعلّم مستمر بدون حفظ للذاكرة لتصنيف البرمجيات الخبيثة باستخدام الاستيفاء القائم على اتصال الأنماط. يدعم سيناريوهات الزيادة الصفية والزيادة النطاقية على مجموعتي بيانات EMBER وAndrozoo.

عرض المستودع
3منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

FreeMOCA: التعلم المستمر الخالي من الذاكرة لتحليل الشيفرات الخبيثة

[رابط ورقة ArXiv]

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

*مؤلفون متساوون في التقدير. †المؤلف المراسل.

[!NOTE] هذا هو التنفيذ الرسمي للورقة العلمية FreeMOCA: Memory-Free Continual Learning for Malicious Code Analysis.

خط أنابيب FreeMOCA

FreeMOCA_Overview_v3

يعمل FreeMOCA وفق العملية التالية:

  1. تصل المهام تباعًا، وتقدم كل مهمة عائلات برمجيات خبيثة جديدة.
  2. تُهيأ النماذج لكل مهمة انطلاقًا من المهمة السابقة (البدء الدافئ) لمحاذاة الحدود الدنيا للمهام في فضاء المعلمات.
  3. بعد التدريب، يُحسب استيفاء قائم على اتصال الأنماط بين النقاط المثلى للمهمة الحالية والسابقة. يمكن أن تستخدم هذه العملية استيفاءً تكيفيًا على مستوى الطبقات استنادًا إلى حجم تحديث المعلمات.
  4. يستبدل النموذج المُستوفى النموذج الحالي ويُستخدم في المهمة التالية.
  5. لا تُخزَّن أي بيانات سابقة أو ميزات أو عينات مولدة، مما يؤدي إلى تعلم مستمر خالٍ من الذاكرة.

تبني العملية برمتها سلسلة من الحلول المترابطة الواقعة على مشعب منخفض الخسارة، مما يقلل بشكل كبير من النسيان الكارثي.

مجموعات البيانات

تم تقييم FreeMOCA باستخدام مجموعتي بيانات واسعتي النطاق للبرمجيات الخبيثة: EMBER وAndrozoo. مصادر مجموعات البيانات:

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

نزّل مجموعة البيانات وجهّزها في الدليل التالي:

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

يدعم هذا المستودع سيناريوهين للتعلم المستمر:

  • التعلم التزايدي للفئات (Class-IL): تُقدَّم فئات جديدة (عائلات برمجيات خبيثة) عبر المهام.
  • التعلم التزايدي للنطاقات (Domain-IL): فضاء التسميات ثابت، لكن توزيع البيانات يتغير بمرور الوقت (مثل الأشهر/السنوات).

الخطوة 1: التثبيت

شغّل الأمر التالي من أجل

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

الخطوة 2: تشغيل 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

للحصول على إعداد أكثر تفصيلًا للوسائط الفائقة، راجع الملحق أ: الوسائط الشائعة لـ FreeMOCA.

الملحق أ: الوسائط الشائعة لـ FreeMOCA

لضبط الوسائط الفائقة أو إعدادات التجارب، استخدم الوسائط التالية:

لتغيير الإعداد الافتراضي للوسائط، راجع ملف arguments.py.

خطوط الأساس

يدعم مستودعنا إجراء التجارب على خطوط الأساس القياسية التالية:

  • None: التدريب على المهمة الحالية فقط (الحد الأدنى)
  • Joint: التدريب على جميع البيانات المُشاهدة حتى الآن (الحد الأعلى، غير عملي)

يمكنك تشغيله بالأمر التالي:

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

وكذلك الأعمال السابقة التالية:

  • CLeWI: مُعدَّل من مستودع GitHub هذا، من عمل "التعلم المستمر مع استيفاء الأوزان."
  • WSC: مُعدَّل من مستودع GitHub هذا، من عمل "انسَ النسيان: التعلم المستمر في عالم من الذاكرة الوفيرة."
  • Generative Replay (GR): مُعدَّل من مستودع GitHub هذا، من عمل "التعلم المستمر مع إعادة التشغيل التوليدية العميقة."
  • EWC: مُعدَّل من مستودع GitHub هذا، من عمل "التغلب على النسيان الكارثي في الشبكات العصبية."
  • LwF: مُعدَّل من مستودع GitHub هذا، من عمل "التعلم دون نسيان."
  • iCaRL: مُعدَّل من مستودع GitHub هذا، من عمل "iCaRL: تعلم التصنيف والتمثيل التزايدي."
  • TAMiL: مُعدَّل من مستودع GitHub هذا، من عمل "توجيه المعلومات المراعي للمهمة من فضاء التمثيل المشترك في التعلم مدى الحياة."
  • MalCL: مُعدَّل من مستودع GitHub هذا، من عمل "MalCL: استغلال إعادة التشغيل التوليدية القائمة على GAN لمكافحة النسيان الكارثي في تصنيف البرمجيات الخبيثة."

يمكنك تشغيل خطوط الأساس بالأمر التالي:

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
تنزيل الأداة
الوسيطالوصف
--init_classesعدد الفئات في المهمة 0
--epochsعدد الحقبات لكل مهمة
--batchsizeحجم الدفعة
--lrمعدل التعلم
--momentumزخم SGD
--weight_decayاضمحلال الأوزان
--lambda_minالحد الأدنى لوزن الاستيفاء
--lambda_maxالحد الأقصى لوزن الاستيفاء