Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
View8 — يفكّك تجميع كود V8 الثنائي المتسلسل (ملفات JSC) إلى كود JavaScript عالي المستوى قابل للقراءة ويشبه الكود الأصلي، مع دعم لإصدارات متعددة من V8، وإخراج شجري، وتسمية حتمية للدوال لتحليل البرمجيات الخبيثة. | Kitploit
أدوات/GitHubGitHub/suleram/view8
التحليل الثابتتحليل الثغرات الأمنيةالهندسة العكسيةتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubsuleram/view8

View8

يفكّك تجميع كود V8 الثنائي المتسلسل (ملفات JSC) إلى كود JavaScript عالي المستوى قابل للقراءة ويشبه الكود الأصلي، مع دعم لإصدارات متعددة من V8، وإخراج شجري، وتسمية حتمية للدوال لتحليل البرمجيات الخبيثة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

View8

View8 هي أداة تحليل ثابتة مصممة لفك تجميع كائنات V8 bytecode المتسلسلة (ملفات JSC) إلى كود قابل للقراءة عالي المستوى. لتحليل وتفكيك هذه الكائنات المتسلسلة، تستخدم View8 ثنائي V8 مُجمّعًا ومُعدّلًا. ونتيجة لذلك، تُنتج View8 مخرجات نصية مشابهة لجافاسكريبت.

المتطلبات

  • Python 3.x
  • ثنائي المفكك. الإصدارات المتاحة:
    • إصدار V8 9.4.146.24 (المستخدم في Node V16.x)
    • إصدار V8 10.2.154.26 (المستخدم في Node V18.x)
    • إصدار V8 11.3.244.8 (المستخدم في Node V20.x)

للإصدارات المُجمّعة، قم بزيارة صفحة الإصدارات.

الاستخدام

وسائط سطر الأوامر

  • --inp, -i: اسم ملف الإدخال.
  • --out, -o: مسار المخرج. اعتمادًا على الخيارات المحددة، قد يكون المخرج ملفًا واحدًا أو شجرة مجلدات.
  • --input_format, -f: تحديد صيغة الإدخال. الخيارات هي:
    • raw: الإدخال هو ملف JSC خام.
    • disassembled: ملف الإدخال مفكك بالفعل.
    • serialized: الإدخال مفكك التجميع بالفعل ومخزن في صيغة متسلسلة. الصيغة المتسلسلة الحالية هي Python pickle؛ استخدم الإدخال الموثوق فقط.
  • --export_format, -e: تحديد صيغة (صيغ) التصدير. الخيارات هي v8_opcode وtranslated وdecompiled وserialized. يمكن دمج خيارات متعددة. الافتراضي: decompiled.
  • --path, -p: مسار ثنائي المفكك. مطلوب إذا كان الإدخال بصيغة raw ولم تتمكن View8 من تحديد موقع المفكك المطابق تلقائيًا.
  • --scope: نشر وسائط النطاق. الافتراضي: 1.
  • --normalize: استبدال معرفات الدوال المشتقة من العناوين بأسماء حتمية بناءً على ترتيب التحليل.
  • --normalize-map [CSV]: أثناء استخدام --normalize، كتابة ملف CSV يربط كل اسم دالة أصلي باسمه المُطبّع. عند حذف المسار، تستنتج View8 <output>.name_map.csv من --out، أو من --inp عندما لا يتم تعيين مسار مخرج.
  • --tree, -t: تقسيم المخرج إلى بنية شجرية بدلاً من تخزين جميع الدوال في ملف واحد. حدد الدالة التي ستُستخدم كجذر الشجرة. للبدء من الدالة الرئيسية الافتراضية، استخدم start.
  • --split_mode: وضع تقسيم الشجرة. الخيارات هي declarers وcalls وreferences. الافتراضي: declarers.
  • --inline_depth, -d: في وضعي calls وreferences، تضمين الدوال التي يمكن الوصول إليها من جذر الشجرة المحدد حتى العمق N في ملف الشجرة الرئيسي. العمق 0 يعني الجذر المحدد فقط؛ العمق 1 يشمل المستدعين/المراجع المباشرة؛ العمق 2 يشمل توابعهم. لا يُستخدم مع declarers.
  • --inline_branch_limit, -l: في وضع الشجرة، تضمين فروع فرعية كاملة تحتوي على N دوال على الأكثر في ملف الشجرة الرئيسي عندما يتم تضمين الفروع الفرعية بواسطة --inline_depth. يتم حفظ الفروع الأكبر بشكل منفصل.
  • --split_depth: في وضعي calls وreferences، تحديد مدى عمق اجتياز فروع الاستخدام المُصدَّرة. الافتراضي: 4.
  • --include, -n: ملف يحتوي على الدوال المراد تضمينها في المخرج.
  • --exclude, -x: ملف يحتوي على الدوال المراد استبعادها من المخرج.
  • --func: عرض دالة محددة.
  • --show_all: في وضع عرض الدالة، إظهار الأسطر المميزة كمخفية أيضًا.
  • --verbosity, -v: مستوى التفصيل. النطاق المقبول: 0 إلى 3.

الاستخدام الأساسي

لفك تجميع ملف V8 bytecode وتصدير الكود المفكك:

python view8.py -i input_file -o output_file

مسار المفكك

افتراضيًا، تكتشف View8 إصدار V8 bytecode لملف الإدخال باستخدام VersionDetector.exe وتبحث تلقائيًا عن ثنائي مفكك متوافق في مجلد Bin. يمكن تغيير ذلك بتحديد ثنائي مفكك مختلف باستخدام خيار --path أو -p:

python view8.py -i input_file -o output_file --path /path/to/disassembler

معالجة الملفات المفككة

لتخطي عملية التفكيك وتقديم ملف مفكك بالفعل كإدخال، استخدم خيار --input_format disassembled أو -f disassembled:

python view8.py -i input_file -o output_file -f disassembled

أسماء الدوال الحتمية وملف CSV للربط

استخدم --normalize لاستبدال أسماء الدوال المشتقة من العناوين بمعرفات حتمية. للحفاظ على العلاقة بين الأسماء الأصلية والمطبّعة، أضف --normalize-map:

python view8.py \
  --input_format disassembled \
  --inp sample.jsc.disasm.txt \
  --normalize \
  --normalize-map \
  --out decompiled/sample.dec.txt \
  --export_format decompiled serialized

يكتب هذا ملف decompiled/sample.dec.name_map.csv بالأعمدة التالية:

original_name,normalized_name
func_start_0x268514e9dcd9,func_start_0x100000000
func_rne_0x268514eb0779,func_rne_0x100000001

يمكن أيضًا تقديم مسار CSV صريح:

python view8.py \
  --input_format disassembled \
  --inp sample.jsc.disasm.txt \
  --normalize \
  --normalize-map mappings/sample.names.csv \
  --out decompiled/sample.dec.txt

إنشاء ومعالجة الملفات المتسلسلة

أحيانًا يكون من المفيد فك تجميع الملف إلى صيغة متسلسلة تحافظ على الكائنات والهياكل المُحلَّلة. قد يكون هذا النوع من المخرجات أسهل في المعالجة اللاحقة من الصيغة النصية، على سبيل المثال أثناء مزيد من إزالة التعتيم. لإنشاء مخرج متسلسل، استخدم صيغة التصدير serialized:

python view8.py -i input_file -o output_file -e serialized

تحذير أمني: الصيغة المتسلسلة الحالية هي ملف Python pickle (.pkl). يمكن أن يؤدي إلغاء تسلسل البيانات من مصادر غير موثوقة إلى تنفيذ كود عشوائي. قم فقط بتحميل الملفات المتسلسلة التي أنشأتها بنفسك.

لتحميل مخرج متسلسل مرة أخرى وتصديره بصيغة أخرى، استخدم --input_format serialized أو -f serialized:

python view8.py -i input_file -o output_file -f serialized

صيغ التصدير

حدد صيغة (صيغ) التصدير باستخدام خيار --export_format أو -e. يمكنك دمج صيغ متعددة:

  • v8_opcode
  • translated
  • decompiled
  • serialized

على سبيل المثال، لتصدير كل من V8 opcodes والكود المفكك جنبًا إلى جنب:

python view8.py -i input_file -o output_file -e v8_opcode decompiled

افتراضيًا، الصيغة المستخدمة هي decompiled.

مخرج الشجرة

بالنسبة للحمولات المجمّعة الكبيرة، قد يكون كتابة جميع الدوال المفككة في ملف واحد صعب التحليل. يقسم مخرج الشجرة الجذر المحدد والدوال ذات الصلة إلى بنية مجلدات.

استخدم --tree لتحديد جذر الشجرة:

python view8.py \
  --inp input.pkl \
  --input_format serialized \
  --out ./tree_out/ \
  --tree start

القيمة الخاصة start تعني الدالة الرئيسية الافتراضية التي استعادتها View8.

أوضاع تقسيم الشجرة

يمكن تقسيم الشجرة باستخدام أحد الأوضاع الثلاثة:

  • declarers: يتبع علاقات التصريح المعجمي، أي الدوال المُصرَّح عنها داخل أو تحت دالة أخرى. هذا مفيد لفهم البنية المجمّعة أو الشبيهة بالوحدات، لكنه لا يمثل تدفق التنفيذ.
  • calls: يتبع استدعاءات الدوال المباشرة، مثل func_x(...). هذا مفيد لاستعادة الهيكل التنفيذي من جذر محدد.
تنزيل الأداة