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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pe_tree — وحدة Python لعرض ملفات Portable Executable (PE) في عرض شجري باستخدام pefile و PyQt5. يمكن استخدامها أيضًا مع IDA Pro و Rekall لتفريغ ملفات PE الموجودة في الذاكرة وإعادة بناء الاستيرادات. | Kitploit
أدوات/GitHubGitHub/blackberry/pe_tree
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالهندسة العكسيةمصممي الأخطاءالتحقيق الجنائي الرقميتحليل البرمجيات الخبيثةالتحاليل الرقمية الجنائيةتحليل الملفات الثنائيةArchived
GitHubblackberry/pe_tree

pe_tree

وحدة Python لعرض ملفات Portable Executable (PE) في عرض شجري باستخدام pefile و PyQt5. يمكن استخدامها أيضًا مع IDA Pro و Rekall لتفريغ ملفات PE الموجودة في الذاكرة وإعادة بناء الاستيرادات.

1.3k1737منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

PE Tree

PE Tree هي وحدة بايثون لعرض ملفات Portable Executable (PE) في عرض شجري باستخدام pefile و PyQt5. يمكن استخدامها أيضًا مع IDA Pro, Ghidra, Volatility, Rekall و minidump لعرض وتفريغ ملفات PE الموجودة في الذاكرة، بالإضافة إلى إعادة بناء جدول الاستيراد.

جدول المحتويات

  1. الميزات
  2. التطبيق
    • المتطلبات
    • الميزات
    • التثبيت
      • ويندوز
      • ماك/لينكس
      • للمطورين
    • الاستخدام
    • الوضع الداكن
  3. IDAPython
    • المتطلبات
    • الميزات
    • التثبيت
      • باستخدام setuptools
      • التثبيت يدويًا
      • للمطورين
    • الاستخدام
    • مثال
      • تفريغ ملفات PE في الذاكرة
  4. Rekall
    • المتطلبات
    • الميزات
    • التثبيت
    • الاستخدام
  5. Volatility
    • المتطلبات
    • الميزات
    • التثبيت
    • الاستخدام
  6. Ghidra
    • المتطلبات
    • الميزات
    • التثبيت
    • الاستخدام
  7. Minidump
    • المتطلبات
    • الميزات
    • التثبيت
    • الاستخدام
  8. الإعدادات
    • نظرة عامة
    • الخيارات
    • الموقع
    • مشاركة البيانات مع جهات خارجية
  9. استكشاف الأخطاء وإصلاحها
  10. المساهمة
    • توثيق المطور
  11. الترخيص

الميزات

  • تطبيق مستقل مع إضافات لـ:
    • IDA Pro
    • Ghidra
    • Volatility
    • Rekall
    • Minidumps
    • التنقيب (Carving)
  • يدعم ويندوز ولينكس وماك
  • تحليل ملفات PE وصور الذاكرة من:
    • نظام الملفات
    • أرشيفات ZIP (بما في ذلك المحمية بكلمة مرور)
    • صور ذاكرة ويندوز (raw, EWF, vmem إلخ.)
    • ذاكرة ويندوز المباشرة (باستخدام rekall)
    • Minidump ويندوز
    • قاعدة بيانات IDA Pro
    • قاعدة بيانات Ghidra
    • تنقيب الملفات الثنائية
  • خريطة PE قوس قزح:
    • توفر نظرة عامة عالية المستوى لهياكل PE وحجمها وموقع الملف
    • تسمح بنظرة سريعة بصرية ومقارنة عينات PE
  • يعرض رؤوس PE التالية في عرض شجري:
    • رأس MZ
    • DOS stub
    • رؤوس Rich
    • رؤوس NT/File/Optional
    • أدلة البيانات
    • الأقسام
    • الاستيرادات
    • التصديرات
    • معلومات التصحيح
    • تكوين التحميل
    • TLS
    • الموارد
    • معلومات الإصدار
    • الشهادات
    • التراكب (Overlay)
  • استخراج وحفظ البيانات من:
    • DOS stub
    • الأقسام
    • الموارد
    • الشهادات
    • التراكب
    • التصدير إلى CyberChef لمزيد من المعالجة
  • إجراء عمليات بحث في VirusTotal عن:
    • تجزئات الملفات
    • مسار PDB
    • الطوابع الزمنية
    • تجزئة/اسم القسم
    • تجزئة/اسم الاستيراد
    • اسم التصدير
    • تجزئة المورد
    • تسلسل الشهادة
  • تفريغ صور PE المحملة من الذاكرة:
    • تصحيح مؤشرات وأحجام الأقسام
    • تصحيح رؤوس PE:
      • إزالة مؤشرات أدلة البيانات غير الضرورية
      • إعادة حساب مجموع PE الاختباري
      • تحديث نقطة الدخول
    • إعادة بناء جداول عنوان الاستيراد وجدول دليل الاستيراد (IAT/IDT) باستخدام عدة طرق:
      1. استخدام IAT/IDT الموجود
      2. إعادة بناء IDT من IAT الموجود
      3. إعادة بناء IAT و IDT من التفكيك (باستخدام IDA Pro أو Ghidra أو capstone)

التطبيق

يجد تطبيق PE Tree المستقل ملفات PE القابلة للتنفيذ في الملفات والمجلدات وأرشيفات ZIP.

تطبيق PE Tree المستقل

المتطلبات

  • Python 3.5+

الميزات

  • مسح الملفات والمجلدات بحثًا عن ملفات PE
  • استخراج ملفات PE من أرشيفات ZIP (بما في ذلك المحمية بكلمة مرور باستخدام infected)
  • تنقيب ملفات PE من الملفات الثنائية
  • النقر المزدوج على عنوان VA/RVA للتفكيك باستخدام capstone
  • عرض سداسي عشري للبيانات

التثبيت

باستخدام pip (موصى به)

قم بالتثبيت مباشرة من GitHub باستخدام بيئة افتراضية جديدة و pip:

ويندوز
root@kitploit:~
> virtualenv env
> env\Scripts\activate
> pip install --upgrade pip
> pip install git+https://github.com/blackberry/pe_tree.git
ماك/لينكس
root@kitploit:~
$ python3 -m venv env
$ source ./env/bin/activate
$ pip install --upgrade pip
$ pip install git+https://github.com/blackberry/pe_tree.git

للمطورين

قم باستنساخ المستودع وإعداد التطوير:

ويندوز
root@kitploit:~
> git clone https://github.com/blackberry/pe_tree.git
> cd pe_tree
> virtualenv env
> env\Scripts\activate
> pip install -e .
ماك/لينكس
root@kitploit:~
$ git clone https://github.com/blackberry/pe_tree.git
$ cd pe_tree
$ python3 -m venv env
$ source ./env/bin/activate
$ pip install -e .

الاستخدام

قم بتشغيل PE Tree وابحث عن ملفات PE القابلة للتنفيذ في الملفات والمجلدات وأرشيفات ZIP:

root@kitploit:~
$ pe-tree -h
usage: pe-tree [-h] [filenames [filenames ...]]

PE-Tree

positional arguments:
  filenames   Path(s) to file/folder/zip

optional arguments:
  -h, --help  show this help message and exit

قم بتشغيل PE Tree وحاول التنقيب عن ملفات PE القابلة للتنفيذ من ملف ثنائي:

root@kitploit:~
$ pe-tree-carve -h
usage: pe-tree-carve [-h] filename

PE-Tree (Carve)

positional arguments:
  filename    Path to file to carve

optional arguments:
  -h, --help  show this help message and exit

الوضع الداكن

يمكن تفعيل الوضع الداكن عن طريق تثبيت QDarkStyle:

root@kitploit:~
$ pip install qdarkstyle

IDAPython

تجد إضافة PE Tree IDAPython ملفات PE القابلة للتنفيذ في قواعد بيانات IDA.

إضافة PE Tree IDAPython

المتطلبات

  • IDA Pro 7.0+ مع Python 2.7
  • IDA Pro 7.4+ مع Python 2.7 أو 3.5+

الميزات

  • سهولة التنقل في هياكل ملفات PE
  • النقر المزدوج على عنوان ذاكرة في PE Tree للعرض في IDA-view أو hex-view
  • البحث في IDB عن صور PE في الذاكرة و;
    • إعادة بناء الاستيرادات (IAT + IDT)
    • تفريغ ملفات PE المعاد بناؤها
    • التعليق تلقائيًا على هياكل ملفات PE في IDB
    • وضع علامات على إزاحات IAT في IDB تلقائيًا

التثبيت

لتثبيت وتشغيل كإضافة IDAPython يمكنك استخدام setuptools أو التثبيت يدويًا.

باستخدام setuptools

  1. قم بتنزيل pe_tree وقم بتثبيته لمفسر Python العام المستخدم من قبل IDA:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ python setup.py develop --ida
    
  2. انسخ pe_tree_ida.py إلى مجلد إضافات IDA

التثبيت يدويًا

  1. قم بتنزيل pe_tree وقم بتثبيت المتطلبات لمفسر Python العام المستخدم من قبل IDA:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ pip install -r requirements.txt
    
  2. انسخ pe_tree_ida.py ومحتويات ./pe_tree/ إلى مجلد إضافات IDA

للمطورين

لتجنب التثبيت كإضافة، وتشغيلها ببساطة كنص برمجي تحت IDA، قم أولاً بتثبيت متطلبات حزمة pe_tree لمثبّت Python العام:

root@kitploit:~
$ pip install -r requirements.txt

ثم قم بتشغيل pe_tree_ida.py تحت IDA:

File -> Script file... -> pe_tree_ida.py -> Open

مجلد إضافات IDA

نظام التشغيلمجلد الإضافات
ويندوز%ProgramFiles%\IDA Pro 7.X\plugins
لينكس/opt/ida-7.X/plugins
ماك~/.idapro/plugins

الاستخدام

  1. قم بتشغيل IDA Pro وفك تجميع ملف PE (اختر دائمًا Manual Load و Load Resources للحصول على أفضل النتائج!)

  2. قم بتحميل إضافة PE Tree:

    Edit -> Plugins -> PE Tree

مثال

تفريغ ملفات PE في الذاكرة

فيما يلي الخطوات الأساسية لتفريغ ملف PE مضغوط (على سبيل المثال MPRESS أو UPX) وإعادة بناء الاستيرادات (بافتراض أن قاعدة الصورة/نقطة الدخول قياسية إلى حد ما):

  1. قم بتشغيل IDA Pro وفك تجميع ملف PE مضغوط بـ MPRESS أو UPX (اختر Manual Load و Load Resources)

  2. اختر مصححًا (ويندوز أو Bochs) وقم بتشغيله حتى OEP (عادة 0x00401000، ولكن ليس دائمًا!)

  3. في هذه المرحلة يمكنك أخذ لقطة ذاكرة (حفظ جميع القطاعات) وحفظ IDB لاحقًا

  4. تأكد من أن IDA قد عثر على جميع الكود:

    Options -> General -> Analysis -> Reanalyze program

  5. افتح إضافة PE Tree IDAPython، وانقر بزر الماوس الأيمن في اللوحة اليمنى واختر:

    Add PE -> Search IDB

    سيقوم هذا بمسح IDB بحثًا عن رؤوس MZ/PE وعرض أي وحدات يجدها.

  6. انقر بزر الماوس الأيمن على HEADER-0x00400000 (أو اسم الوحدة المناسب) واختر Dump...

  7. حدد AddressOfEntryPoint (عادة 0x1000، ولكن مرة أخرى، ليس دائمًا!)

  8. تأكد من تحديد Rebuild IDT/IAT

  9. قم بالتفريغ!

سيتم إنشاء ملف تنفيذي جديد باستخدام بيانات القسم غير المضغوطة التي تم الحصول عليها من الذاكرة/IDB، بينما سيتم إلحاق قسم جديد باسم .pe_tree يحتوي على IAT المعاد بناؤه وجدول أسماء التلميحات (hint name table) و IDT بملف PE (مثل قسم .idata). إذا تم تعليم قطاع الذاكرة الخاص بنقطة الدخول على أنه قابل للكتابة أثناء التنفيذ (عبر VirtualProtect على سبيل المثال)، فسيتم أيضًا تعليم خصائص قطاع نقطة الدخول على أنها قابلة للكتابة. أخيرًا، يتم وضع علامة على أدلة البيانات BASERELOC و BOUND_IMPORT و SECURITY على أنها فارغة، ويتم إعادة حساب المجموع الاختباري لـ OPTIONAL_HEADER (إذا تم تحديده).

باستخدام النهج أعلاه، يمكن تفريغ العديد من ملفات PE في الذاكرة التي تم فك ضغطها أو حقنها أو تحميلها انعكاسيًا أو تجويفها (hollowed) إلخ.

Rekall

تجد إضافة PE Tree Rekall ملفات PE القابلة للتنفيذ في صور ذاكرة ويندوز.

إضافة PE Tree Rekall

المتطلبات

  • Python 3+

الميزات

  • تعمل على صورة ذاكرة ويندوز أو على نظام مباشر
  • عرض وتفريغ وإعادة بناء وحدات PE من؛
    • العمليات النشطة و DLLs
    • برامج تشغيل وضع kernel المحملة

التثبيت

  1. قم بتثبيت Rekall من GitHub.
  2. قم بتثبيت تطبيق PE Tree المستقل (انظر التثبيت) ضمن نفس البيئة الافتراضية.

الاستخدام

قم بتشغيل Rekall وعرض العمليات النشطة و DLLs وبرامج التشغيل على نظام مباشر:

root@kitploit:~
$ rekall --live Memory
[1] Live (Memory) 00:00:00> run -i pe_tree_rekall.py

بدلاً من ذلك، قم بتشغيل Rekall/PE Tree على صورة ذاكرة موجودة:

root@kitploit:~
$rekall -f memory.vmem
[1] memory.vmem 00:00:00> run -i pe_tree_rekall.py

Volatility

تجد إضافة PE Tree Volatility ملفات PE القابلة للتنفيذ في صور ذاكرة ويندوز.

إضافة PE Tree Volatility

المتطلبات

  • Python 3.5+

الميزات

  • تعمل على صورة ذاكرة ويندوز
  • عرض وتفريغ وإعادة بناء وحدات PE من؛
    • العمليات النشطة و DLLs
    • برامج تشغيل وضع kernel المحملة

التثبيت

  1. قم بتثبيت Volatility3 من GitHub.
  2. قم بتثبيت تطبيق PE Tree المستقل (انظر التثبيت) ضمن نفس البيئة الافتراضية.

الاستخدام

root@kitploit:~
$ pe-tree-vol -h
usage: pe-tree-vol [-h] filename

PE-Tree (Volatility)

positional arguments:
  filename    Path to memory dump

optional arguments:
  -h, --help  show this help message and exit

Ghidra

تجد إضافة PE Tree Ghidra ملفات PE القابلة للتنفيذ في قواعد بيانات Ghidra.

إضافة PE Tree Ghidra

المتطلبات

  • Python 3.5+
  • Ghidra Bridge

الميزات

  • سهولة التنقل في هياكل ملفات PE
  • النقر المزدوج على عنوان ذاكرة في PE Tree للعرض في Ghidra (التفكيك/العرض السداسي)
  • إعادة بناء الاستيرادات (IAT + IDT)
  • تفريغ ملفات PE المعاد بناؤها

التثبيت

  1. قم بتثبيت PE Tree (انظر التثبيت)
  2. قم بتثبيت Ghidra Bridge

الاستخدام

  1. قم بتشغيل خادم Ghidra Bridge
  2. قم بتشغيل إضافة PE Tree Ghidra
root@kitploit:~
$ pe-tree-ghidra -h
usage: pe-tree-ghidra [-h] [--server SERVER] [--port PORT]

PE-Tree (Ghidra)

optional arguments:
  -h, --help       show this help message and exit
  --server SERVER  Ghidra bridge server IP (default: 127.0.0.1)
  --port PORT      Ghidra bridge server port (default: 4768)

Minidump

تجد إضافة PE Tree Minidump ملفات PE القابلة للتنفيذ في Windows Minidumps.

إضافة PE Tree Minidump

المتطلبات

  • Python 3.6+
  • minidump

الميزات

  • عرض وتفريغ وإعادة بناء وحدات PE من ملف Windows Minidump (.dmp)

التثبيت

  1. قم بتثبيت PE Tree (انظر التثبيت)
  2. قم بتثبيت minidump (pip install minidump)

الاستخدام

root@kitploit:~
$ pe-tree-minidump -h
usage: pe-tree-minidump [-h] filename

PE-Tree (Minidump)

positional arguments:
  filename    Path to .dmp file

optional arguments:
  -h, --help  show this help message and exit

الإعدادات

نظرة عامة

يتم تخزين الإعدادات في ملف INI وتكون القيم الافتراضية كما يلي:

root@kitploit:~
[config]
debug = False
fonts = Consolas,Monospace,Courier
passwords = ,infected
virustotal_url = https://www.virustotal.com/gui/search
cyberchef_url = https://gchq.github.io/CyberChef

الخيارات

الموقع

مشاركة البيانات مع جهات خارجية

ستتم مشاركة المعلومات التالية مع تطبيقات ويب تابعة لجهات خارجية (حسب الإعدادات) في ظل الشروط التالية:

VirusTotal

إذا تم تحديد عنوان URL لـ VirusTotal في الإعدادات، فسيتم إرسال البيانات الوصفية مثل تجزئات الملفات والطوابع الزمنية وما إلى ذلك إلى VirusTotal للمعالجة عندما ينقر المستخدم على الروابط المميزة أو يختار "VirusTotal search" من قائمة السياق بزر الفأرة الأيمن.

CyberChef

إذا كان عنوان URL لـ CyberChef موجودًا في الإعدادات، فسيتم ترميز أي بيانات ملف بتنسيق base64 وإرسالها إلى CyberChef للمعالجة عندما يختار المستخدم "CyberChef" من قائمة السياق بزر الفأرة الأيمن.

استكشاف الأخطاء وإصلاحها

AttributeError: module 'pip' has no attribute 'main'

أو

فشل تثبيت PyQt5 تحت لينكس

حاول ترقية pip إلى الإصدار 20.0+:

root@kitploit:~
$ pip install --upgrade pip

ModuleNotFoundError: No module named 'PyQt5.sip'

حاول إلغاء تثبيت PyQt5 وإعادة تثبيته كما يلي:

root@kitploit:~
pip uninstall PyQt5
pip uninstall PyQt5-sip
pip install PyQt5 PyQt5-sip

استيرادات مفقودة بعد التفريغ

تأكد من أن IDA قد عثر على جميع الكود وقام بتفكيكه:

Options -> General -> Analysis -> Reanalyze program

بعد الانتهاء من ذلك، حاول التفريغ/إعادة بناء الاستيرادات مرة أخرى.

المساهمة

لا تتردد في المساهمة! نرحب بالمشكلات وطلبات السحب.

توثيق المطور

لبناء التوثيق من المصدر باستخدام Sphinx:

root@kitploit:~
$ pip install sphinx
$ sphinx-apidoc -o ./doc/source/ .
$ sphinx-build -b html ./doc/source ./doc/build -E

لعرض التوثيق، افتح ./doc/build/index.html في متصفح ويب.

المؤلفون

توم بونر - tombonner - @thomas_bonner

الترخيص

يتم توزيع PE Tree بموجب ترخيص Apache. راجع LICENSE لمزيد من المعلومات.

تنزيل الأداة
القسمالخيارالنوعالوصف
configdebugbooleanطباعة pefile.dump() إلى المخرجات
configfontsstringقائمة بأسماء الخطوط مفصولة بفواصل للواجهة
configpasswordsstringقائمة بكلمات مرور ملفات ZIP مفصولة بفواصل
configvirustotal_urlstringعنوان URL لبحث VirusTotal
configcyberchef_urlstringعنوان URL لـ CyberChef
النوعنظام التشغيلالمسار
التطبيقويندوز%TEMP%\pe_tree.ini
التطبيقلينكس/ماك/tmp/pe_tree.ini
IDAPythonويندوز%APPDATA%\HexRays\IDA Pro\pe_tree.ini
IDAPythonلينكس/ماك~/.idapro/pe_tree.ini
Rekallويندوز%TEMP%\pe_tree_rekall.ini
Rekallلينكس/ماك/tmp/pe_tree_rekall.ini
Volatilityويندوز%TEMP%\pe_tree_volatility.ini
Volatilityلينكس/ماك/tmp/pe_tree_volatility.ini
Ghidraويندوز%TEMP%\pe_tree_ghidra.ini
Ghidraلينكس/ماك/tmp/pe_tree_ghidra.ini
Minidumpويندوز%TEMP%\pe_tree_minidump.ini
Minidumpلينكس/ماك/tmp/pe_tree_minidump.ini
Carveويندوز%TEMP%\pe_tree_carve.ini
Carveلينكس/ماك/tmp/pe_tree_carve.ini