
كشف سريع ودقيق لأنواع محتوى الملفات باستخدام الذكاء الاصطناعي
Magika هي أداة مبتكرة للكشف عن أنواع الملفات مدعومة بالذكاء الاصطناعي، تعتمد على التقدم الحديث في التعلم العميق لتوفير كشف دقيق. تحت الغطاء، تستخدم Magika نموذجًا مخصصًا ومحسّنًا للغاية لا يزن سوى بضعة ميغابايتات، ويمكّن من تحديد الملفات بدقة خلال أجزاء من الثانية، حتى عند التشغيل على وحدة معالجة مركزية واحدة. تم تدريب Magika وتقييمها على مجموعة بيانات تضم حوالي 100 مليون عينة عبر أكثر من 200 نوع محتوى (تغطي كلاً من صيغ الملفات الثنائية والنصية)، وهي تحقق متوسط دقة يبلغ حوالي 99% على مجموعة الاختبار الخاصة بنا.
فيما يلي مثال على شكل مخرجات سطر أوامر Magika:
تُستخدم Magika على نطاق واسع للمساعدة في تحسين أمان مستخدمي Google من خلال توجيه ملفات Gmail وDrive وSafe Browsing إلى فاحصات الأمان وسياسات المحتوى المناسبة، حيث تعالج مئات المليارات من العينات على أساس أسبوعي. كما تم دمج Magika مع VirusTotal (مثال) وabuse.ch (مثال).
لمزيد من السياق، يمكنك قراءة منشور الإعلان الأولي على مدونة Google's OSS، ويمكنك الاطلاع على موقع Magika، ويمكنك قراءة المزيد في ورقتنا البحثية، المنشورة في المؤتمر الدولي لهندسة البرمجيات (ICSE) 2025 التابع لـ IEEE/ACM.
يمكنك تجربة Magika دون تثبيت أي شيء باستخدام العرض التوضيحي على الويب، والذي يعمل محليًا في متصفحك!
-r لفحص دليل بشكل متكرر.high-confidence وmedium-confidence وbest-guess.توفّر Magika واجهة سطر أوامر (CLI) مكتوبة بلغة Rust، ويمكن تثبيتها بعدة طرق.
عبر حزمة magika الخاصة بـ Python:
pipx install magika
عبر brew (macOS / Linux)
brew install magika
عبر سكربت التثبيت:
curl -LsSf https://securityresearch.google/magika/install.sh | sh
أو:
powershell -ExecutionPolicy Bypass -c "irm https://securityresearch.google/magika/install.ps1 | iex"
عبر حزمة magika-cli الخاصة بـ Rust:
cargo install --locked magika-cli
pip install magika
npm install magika
ستجد هنا عددًا من الأمثلة السريعة للبدء فقط.
لمعرفة كيفية عمل Magika من الداخل، راجع قسم المفاهيم الأساسية على موقع Magika.
% cd tests_data/basic && magika -r * | head
asm/code.asm: Assembly (code)
batch/simple.bat: DOS batch file (code)
c/code.c: C source (code)
css/code.css: CSS source (code)
csv/magika_test.csv: CSV document (code)
dockerfile/Dockerfile: Dockerfile (code)
docx/doc.docx: Microsoft Word 2007+ document (document)
docx/magika_test.docx: Microsoft Word 2007+ document (document)
eml/sample.eml: RFC 822 mail (text)
empty/empty_file: Empty file (inode)
% magika ./tests_data/basic/python/code.py --json
[
{
"path": "./tests_data/basic/python/code.py",
"result": {
"status": "ok",
"value": {
"dl": {
"description": "Python source",
"extensions": [
"py",
"pyi"
],
"group": "code",
"is_text": true,
"label": "python",
"mime_type": "text/x-python"
},
"output": {
"description": "Python source",
"extensions": [
"py",
"pyi"
],
"group": "code",
"is_text": true,
"label": "python",
"mime_type": "text/x-python"
},
"score": 0.996999979019165
}
}
}
]
% cat tests_data/basic/ini/doc.ini | magika -
-: INI configuration file (text)
% magika --help
Determines file content types using AI
Usage: magika [OPTIONS] [PATH]...
Arguments:
[PATH]...
List of paths to the files to analyze.
Use a dash (-) to read from standard input (can only be used once).
Options:
-r, --recursive
Identifies files within directories instead of identifying the directory itself
--no-dereference
Identifies symbolic links as is instead of identifying their content by following them
--colors
Prints with colors regardless of terminal support
--no-colors
Prints without colors regardless of terminal support
-s, --output-score
Prints the prediction score in addition to the content type
-i, --mime-type
Prints the MIME type instead of the content type description
-l, --label
Prints a simple label instead of the content type description
--json
Prints in JSON format