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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
retdec — RetDec هو مفكك تعليمات برمجية آلي قابل لإعادة التوجيه مبني على LLVM. | Kitploit
أدوات/GitHubGitHub/avast/retdec
التحليل الثابتالهندسة العكسيةتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubavast/retdec

retdec

RetDec هو مفكك تعليمات برمجية آلي قابل لإعادة التوجيه مبني على LLVM.

عرض المستودعالموقع الإلكتروني
8.6k997منذ 3 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

تحذير

مشروع RetDec حاليًا في وضع الصيانة المحدودة بسبب نقص الموارد:

  • طلبات السحب (Pull Requests) مرحب بها. يتم مراجعتها بأولوية، إن أمكن دون تأخير.
  • يتم الرد على المشكلات (Issues) مع تأخير يصل إلى ربع سنة. لا يتم حل المشكلات بنشاط إلا إذا كانت تتعلق بصيانة المشروع الأساسية.
  • تستمر الصيانة الأساسية للمشروع.
  • يتم تطوير محدود جدًا فقط.

RetDec

Travis CI build status TeamCity build status))/statusIcon) RetDec CI

RetDec هو مفكك كود آلة قابل لإعادة الاستهداف مبني على LLVM.

ليس المفكك مقيدًا بأي بنية معمارية مستهدفة أو نظام تشغيل أو تنسيق ملف قابل للتنفيذ:

  • تنسيقات الملفات المدعومة: ELF, PE, Mach-O, COFF, AR (أرشيف), Intel HEX, وكود آلة خام
  • البنى المعمارية المدعومة:
    • 32-bit: Intel x86, ARM, MIPS, PIC32, و PowerPC
    • 64-bit: x86-64, ARM64 (AArch64)

الميزات:

  • تحليل ثابت للملفات القابلة للتنفيذ مع معلومات مفصلة.
  • كشف المترجمين وبرامج الضغط.
  • التحميل وفك تعليمات التشفير.
  • إزالة الكود المكتبي المرتبط بشكل ثابت بناءً على التوقيعات.
  • استخراج واستخدام معلومات التصحيح (DWARF, PDB).
  • إعادة بناء تعابير التعليمات.
  • كشف وإعادة بناء هرمية الفئات في C++ (RTTI, vtables).
  • فك تشفير الرموز من ثنائيات C++ (GCC, MSVC, Borland).
  • إعادة بناء الدوال والأنواع والإنشاءات عالية المستوى.
  • مفكك مدمج.
  • مخرجات بلغتين عاليتي المستوى: C ولغة مشابهة لـ Python.
  • توليد رسوم بيانية للاستدعاءات ورسوم بيانية لتدفق التحكم وإحصائيات متنوعة.

لمزيد من المعلومات، طالع

  • الويكي (قيد التطوير)
  • محاضرة Botconf 2017: الشرائح، الفيديو
  • محاضرة REcon Montreal 2018: الشرائح
  • المنشورات

التثبيت

هناك طريقتان للحصول على وتثبيت RetDec:

  1. تحميل وفك ضغط حزمة مبنية مسبقًا مستقرة أو أحدث إصدار واتبع التعليمات في قسم الاستخدام من ملف retdec/share/retdec/README.md بعد فك الضغط.
  2. بناء RetDec بنفسك من المصادر باتباع قسم البناء والتثبيت. بعد التثبيت، اتبع التعليمات أدناه.

ندعم حاليًا Windows (7 أو أحدث)، Linux، macOS، و (بشكل تجريبي) FreeBSD. تتطلب النسخة المثبتة من RetDec ما يقرب من 5 إلى 6 جيجابايت من مساحة القرص الحرة.

الاستخدام

يرجى التأكد من قراءة التعليمات المقابلة لإصدار RetDec المستخدم. إذا كنت غير متأكد، راجع ملف retdec/share/retdec/README.md في التثبيت.

Windows

  1. بعد تثبيت RetDec، قم بتثبيت Microsoft Visual C++ Redistributable لـ Visual Studio 2017.

  2. قم بتثبيت البرامج التالية:

    • UPX (اختياري: إذا كنت ترغب في استخدام أداة فك ضغط UPX في مرحلة المعالجة المسبقة)
    • Graphviz (اختياري: إذا كنت ترغب في توليد رسوم بيانية للاستدعاء أو تدفق التحكم)
  3. لفك ترجمة ملف ثنائي باسم test.exe، قم بتشغيل

    root@kitploit:~
    $RETDEC_INSTALL_DIR\bin\retdec-decompiler.exe test.exe
    

    لمزيد من المعلومات، قم بتشغيل retdec-decompiler.exe مع --help.

Linux

  1. بعد تثبيت RetDec، قم بتثبيت الحزم التالية عبر مدير الحزم في توزيعتك:

    • UPX (اختياري: إذا كنت ترغب في استخدام أداة فك ضغط UPX في مرحلة المعالجة المسبقة)
    • Graphviz (اختياري: إذا كنت ترغب في توليد رسوم بيانية للاستدعاء أو تدفق التحكم)
  2. لفك ترجمة ملف ثنائي باسم test.exe، قم بتشغيل

    root@kitploit:~
    $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
    

    لمزيد من المعلومات، قم بتشغيل retdec-decompiler مع --help.

macOS

  1. بعد تثبيت RetDec، قم بتثبيت الحزم التالية:

    • UPX (اختياري: إذا كنت ترغب في استخدام أداة فك ضغط UPX في مرحلة المعالجة المسبقة)
    • Graphviz (اختياري: إذا كنت ترغب في توليد رسوم بيانية للاستدعاء أو تدفق التحكم)
  2. لفك ترجمة ملف ثنائي باسم test.exe، قم بتشغيل

    root@kitploit:~
    $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
    

    لمزيد من المعلومات، قم بتشغيل retdec-decompiler مع --help.

FreeBSD (تجريبي)

  1. لا توجد حاليًا حزم "ports" مبنية مسبقًا لـ FreeBSD. ستحتاج إلى بناء وتثبيت المفكك بنفسك. العملية موصوفة أدناه.

  2. لفك ترجمة ملف ثنائي باسم test.exe، قم بتشغيل

    root@kitploit:~
    $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
    

    لمزيد من المعلومات، قم بتشغيل retdec-decompiler مع --help.

استخدام مكتبات RetDec

يمكنك استخدام مكتبات RetDec المختلفة بسهولة في مشاريعك - إذا كانت مبنية باستخدام CMake. يحتوي تثبيت RetDec على جميع الرؤوس والمكتبات وملفات CMake الضرورية.

إذا قمت بتثبيت RetDec في موقع تثبيت قياسي لنظامك (مثل /usr، /usr/local)، كل ما عليك فعله لاستخدام مكوناته هو:```cmake find_package(retdec 5.0 REQUIRED COMPONENTS [...] ) target_link_libraries(your-project PUBLIC retdec:: [...] )

root@kitploit:~
إذا لم تقم بتثبيت RetDec في مكان يمكن اكتشافه تلقائياً، فستحتاج إلى مساعدة CMake في العثور عليه قبل استخدام `find_package()`. هناك طريقتان عامتان للقيام بذلك (اختر واحدة فقط واستخدمها):

1. أضف دليل تثبيت RetDec إلى [`CMAKE_PREFIX_PATH`](https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html):
    ```cmake
    list(APPEND CMAKE_PREFIX_PATH ${RETDEC_INSTALL_DIR})
    ```

2. عيّن المسار إلى نصوص CMake المثبتة لـ RetDec إلى `retdec_DIR`:
    ```cmake
    set(retdec_DIR ${RETDEC_INSTALL_DIR}/share/retdec/cmake)
    ```

راجع صفحة [نظرة عامة على المستودع](https://github.com/avast/retdec/wiki/Repository-Overview) في الويكي للحصول على قائمة بمكونات RetDec المتاحة، أو [retdec-build-system-tests](https://github.com/avast/retdec-build-system-tests) للحصول على عروض توضيحية حول كيفية استخدامها.

## البناء والتثبيت

يصف هذا القسم بناء وتثبيت محلي لـ RetDec. ترد تعليمات Docker في القسم التالي.

### المتطلبات

#### لينكس

* مترجم C++ ومكتبة C++ قياسية تدعم C++17 (مثل GCC >= 7)
* [CMake](https://cmake.org/) (الإصدار >= 3.6)
* [Git](https://git-scm.com/)
* [OpenSSL](https://www.openssl.org/) (الإصدار >= 1.1.1)
* [Python](https://www.python.org/) (الإصدار >= 3.4)
* [autotools](https://en.wikipedia.org/wiki/GNU_Build_System) ([autoconf](https://www.gnu.org/software/autoconf/autoconf.html)، [automake](https://www.gnu.org/software/automake/)، و [libtool](https://www.gnu.org/software/libtool/))
* [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)
* [m4](https://www.gnu.org/software/m4/m4.html)
* [zlib](http://zlib.net/)
* اختياري: [Doxygen](http://www.stack.nl/~dimitri/doxygen/) و [Graphviz](http://www.graphviz.org/) لتوليد وثائق API

على التوزيعات المبنية على Debian (مثل Ubuntu)، يمكن تثبيت الحزم المطلوبة باستخدام `apt-get`:```sh
sudo apt-get install build-essential cmake git openssl libssl-dev python3 autoconf automake libtool pkg-config m4 zlib1g-dev upx doxygen graphviz

على توزيعات RPM (مثل Fedora)، يمكن تثبيت الحزم المطلوبة باستخدام dnf:```sh sudo dnf install gcc gcc-c++ cmake make git openssl openssl-devel python3 autoconf automake libtool pkg-config m4 zlib-devel upx doxygen graphviz

root@kitploit:~
على Arch Linux، يمكن تثبيت الحزم المطلوبة باستخدام `pacman`:```sh
sudo pacman --needed -S base-devel cmake git openssl python3 autoconf automake libtool pkg-config m4 zlib upx doxygen graphviz

ويندوز

  • Microsoft Visual C++ (إصدار >= Visual Studio 2017 الإصدار 15.7)
  • CMake (إصدار >= 3.6)
  • Git
  • OpenSSL (إصدار >= 1.1.1)
  • Python (إصدار >= 3.4)
  • اختياري: Doxygen و Graphviz لإنشاء توثيق API

ماك أو إس

يُفضل تثبيت الحزم عبر Homebrew.

  • ماك أو إس >= 10.15
  • تثبيت كامل لـ Xcode (بما في ذلك أدوات سطر الأوامر، انظر #425 و #433)
  • CMake (إصدار >= 3.6)
  • Git
  • OpenSSL (إصدار >= 1.1.1)
  • Python (إصدار >= 3.4)
  • autotools (autoconf، automake، و libtool)
  • اختياري: Doxygen و Graphviz لإنشاء توثيق API

فري بي إس دي (تجريبي)

يجب تثبيت الحزم عبر مستودع الحزم المجمعة مسبقاً لـ FreeBSD باستخدام الأمر pkg أو بناؤها من الصفر باستخدام طريقة قاعدة بيانات ports.

  • تعليمات كاملة لأداة "pkg": طريقة pkg في الدليل
    • pkg install cmake python37 git autotools أو
  • تعليمات كاملة لـ "ports": طريقة ports في الدليل
    • portsnap fetch
    • portsnap extract
  • على سبيل المثال، cmake سيكون
    • whereis cmake
    • cd /usr/ports/devel/cmake
    • make install clean

العملية

ملاحظة: على الرغم من أن RetDec يدعم الآن التثبيت على مستوى النظام (#94)، إلا أنه ما لم تستخدم مدير حزم توزيعة Linux لتثبيته، فإننا نوصي بتثبيت RetDec محلياً في دليل مخصص. السبب في ذلك هو أن إلغاء التثبيت سيكون أسهل حيث ستحتاج فقط إلى إزالة دليل واحد. لإجراء تثبيت محلي، قم بتشغيل cmake مع المعامل -DCMAKE_INSTALL_PREFIX=<path>، حيث <path> هو الدليل الذي سيتم تثبيت RetDec فيه (مثل $HOME/projects/retdec-install على Linux وmacOS، و C:\projects\retdec-install على ويندوز).

  • استنساخ المستودع:
    • git clone https://github.com/avast/retdec
  • لينكس:
    • cd retdec
    • mkdir build && cd build
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
    • make -jN (N هو عدد العمليات المستخدمة للبناء المتوازي، عادةً عدد النوى + 1 يعطي أسرع وقت ترجمة)
    • make install
  • ويندوز:
    • افتح موجه الأوامر (مثل cmd.exe)
    • cd retdec
    • mkdir build && cd build
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path> -G<generator>
    • cmake --build . --config Release -- -m

يجب تمرير المعاملات التالية إلى cmake:

  • -DCMAKE_INSTALL_PREFIX=<path> لتعيين مسار التثبيت إلى <path>. ضع علامات الاقتباس حول المسار إذا كنت تستخدم الشرطة المائلة العكسية على ويندوز (مثل -DCMAKE_INSTALL_PREFIX="C:\retdec").
  • (ويندوز فقط) -G<generator> هو -G"Visual Studio 15 2017" للبناء 32 بت باستخدام Visual Studio 2017، أو -G"Visual Studio 15 2017 Win64" للبناء 64 بت باستخدام Visual Studio 2017. يمكن استخدام إصدارات أحدث من Visual Studio.

يمكنك تمرير المعاملات الإضافية التالية إلى cmake:

  • -DRETDEC_DOC=ON للبناء مع توثيق API (يتطلب Doxygen و Graphviz، معطل افتراضياً).
  • -DRETDEC_TESTS=ON للبناء مع الاختبارات (معطل افتراضياً).
  • -DRETDEC_DEV_TOOLS=ON للبناء مع أدوات التطوير (معطل افتراضياً).
  • -DRETDEC_COMPILE_YARA=OFF لتعطيل تجميع قواعد YARA في خطوة التثبيت (مفعل افتراضياً).
  • -DCMAKE_BUILD_TYPE=Debug للبناء مع معلومات التصحيح، وهو مفيد أثناء التطوير. افتراضياً، يُبنى المشروع في وضع Release. هذا ليس له تأثير على ويندوز، ولكن يمكن تحقيق نفس الشيء بتشغيل cmake --build . مع المعامل --config Debug.
  • -D<dep>_LOCAL_DIR=<path> حيث <dep> من {CAPSTONE, GOOGLETEST, KEYSTONE, LLVM, YARA, YARAMOD} (مثل -DCAPSTONE_LOCAL_DIR=<path>) لاستخدام نسخة المستودع المحلية عند لاعتماديات RetDec بدلاً من تنزيل نسخة جديدة في وقت البناء. يمكن استخدام عدة خيارات من هذا النوع في نفس الوقت.

البناء في Docker

دعم Docker يتم صيانته من قبل المجتمع. إذا كان هناك شيء لا يعمل لديك أو لديك اقتراحات للتحسين، افتح مشكلة (issue) أو طلب سحب (PR).

بناء الصورة

البناء في Docker لا يتطلب تثبيت المكتبات المطلوبة محلياً. هذا خيار جيد لتجربة RetDec دون إعداد سلسلة أدوات البناء الكاملة.

لبناء صورة Docker الخاصة بـ RetDec، قم بتشغيل``` docker build -t retdec - < Dockerfile

root@kitploit:~
يؤدي هذا إلى بناء الصورة من فرع master لهذا المستودع.

لبناء الصورة باستخدام النسخة المحلية من المستودع، استخدم Dockerfile التطويري، `Dockerfile.dev`:```
docker build -t retdec:dev . -f Dockerfile.dev

تشغيل الحاوية

إذا لم يكن uid الخاص بك هو 1000، فتأكد من أن الدليل الذي يحتوي على ملفاتك الثنائية المدخلة يمكن الوصول إليه بواسطة RetDec:``` chmod 0777 /path/to/local/directory

root@kitploit:~
الآن، يمكنك تشغيل أداة التفكيك داخل حاوية:```
docker run --rm -v /path/to/local/directory:/destination retdec retdec-decompiler /destination/binary

ملاحظة: لا تقم بتعديل جزء /destination. كل ما عليك فعله هو تغيير /path/to/local/directory. سيتم بعد ذلك إنشاء ملفات الإخراج إلى /path/to/local/directory.

الإصدارات الليلية

نقوم بإنشاء حزم RetDec المحدثة من أحدث commit في فرع master بطريقتين:

  • باستخدام خوادم TeamCity الخاصة بنا
  • باستخدام إجراءات GitHub.

هذه الإصدارات مخصصة بشكل أساسي لمطوري RetDec والمساهمين والأشخاص الآخرين الذين يجربون المنتج (على سبيل المثال، اختبار ما إذا كانت مشكلة موجودة في الإصدار الرسمي لا تزال موجودة في الفرع master الحالي).

يمكنك استخدامها كما تشاء، ولكن ضع في اعتبارك أنه لا توجد ضمانات بأنها ستعمل على نظامك (خاصة إصدار Linux)، وأن احتمالية وجود تراجعات واردة. للحصول على إصدار مستقر من RetDec، إما قم بتنزيل أحدث حزمة رسمية مسبقة البناء أو قم ببناء آخر علامة إصدار لـ RetDec.

TeamCity

  • Windows Server 2016, الإصدار 10.0
  • Ubuntu Bionic Linux, الإصدار 18.04
  • Mac OS X, الإصدار 10.14.6

إجراءات GitHub

يمكنك العثور على إصدارات لنظامي macOS وLinux وWindows في أحدث تشغيل لسير عمل RetDec CI.

توثيق المشروع

اطلع على توثيق المشروع للحصول على مرجع برمجي محدث تم إنشاؤه بواسطة Doxygen يتوافق مع أحدث commit في فرع master.

المستودعات ذات الصلة

  • retdec-idaplugin -- يدمج RetDec في IDA (مفكك تفاعلي) ويجعل استخدامه أسهل بكثير.
  • retdec-r2plugin -- يدمج RetDec في Radare2 ويجعل استخدامه أسهل بكثير.
  • retdec-regression-tests-framework -- إطار عمل لكتابة وتشغيل اختبارات الانحدار لـ RetDec والأدوات ذات الصلة. هذا أمر لا بد منه إذا كنت تخطط للمساهمة في مشروع RetDec.
  • retdec-regression-tests -- مجموعة من اختبارات الانحدار لـ RetDec والأدوات ذات الصلة.
  • retdec-build-system-tests -- مجموعة من الاختبارات لنظام بناء RetDec. يمكن أن يكون هذا أيضًا بمثابة مجموعة من العروض التوضيحية حول كيفية استخدام مكتبات RetDec.
  • vim-syntax-retdecdsm -- ملف تمييز بناء الجملة لـ Vim لمخرجات مفكك RetDec (ملفات .dsm).

الترخيص

حقوق الطبع والنشر (c) 2017 Avast Software، مرخص بموجب ترخيص MIT. راجع ملف LICENSE لمزيد من التفاصيل.

يحتوي RetDec على مكتبة PeLib معدلة. الوحدات الجديدة التي أضافتها Avast Software مرخصة بموجب ترخيص MIT. المصادر الأصلية مرخصة بموجب الترخيص التالي:

  • حقوق الطبع والنشر (c) 2004 - 2005 Sebastian Porst ([email protected])، مرخص بموجب ترخيص zlib/libpng. راجع ملف LICENSE-PELIB لمزيد من التفاصيل.

يستخدم RetDec مكتبات تابعة لجهات خارجية أو موارد أخرى مدرجة، إلى جانب تراخيصها، في ملف LICENSE-THIRD-PARTY.

المساهمة

راجع إرشادات المساهمة في RetDec.

شكر وتقدير

هذا البرنامج مدعوم من تمويل البحث TACR (وكالة التكنولوجيا في جمهورية التشيك)، برنامج ALFA رقم TA01010667.

تنزيل الأداة
  • cmake --build . --config Release --target install
  • بدلاً من ذلك، يمكنك فتح retdec.sln الذي تم إنشاؤه بواسطة cmake في بيئة Visual Studio IDE
  • ماك أو إس:
    • cd retdec
    • mkdir build && cd build
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
    • make -jN (N هو عدد العمليات المستخدمة للبناء المتوازي، عادةً عدد النوى + 1 يعطي أسرع وقت ترجمة)
    • make install
  • فري بي إس دي:
    • sudo pkg install git cmake
    • git clone https://github.com/avast/retdec
    • cd retdec
    • mkdir build && cd build
    • root@kitploit:~
      # FreeBSD (and other BSDs) do need cmake, python3, git, autotools. OpenSSL is pre-installed in the OS but check its version.
      # Later versions may be available for each of the packages.
      # See what is installed:
      sudo pkg info cmake python37 autotools
      # Install/upgrade them:
      sudo pkg install cmake python37 autotools
      
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
    • make -jN (N هو عدد العمليات المستخدمة للبناء المتوازي، عادةً عدد النوى + 1 يعطي أسرع وقت ترجمة)
    • make install
  • <path>
  • -DRETDEC_ENABLE_<component>=ON لبناء المكون(ات) المحدد فقط (يمكن استخدام عدة خيارات من هذا النوع دفعة واحدة)، وتبعياته (تبعياتها). افتراضياً، تُبنى جميع المكونات. إذا تم تمكين مكون واحد على الأقل عبر هذه الآلية، فلن تُبنى جميع المكونات الأخرى التي لم يتم تمكينها صراحة (وليست مطلوبة كتبعيات للمكونات الممكّنة). انظر cmake/options.cmake لجميع خيارات المكونات المتاحة.
    • -DRETDEC_ENABLE_ALL=ON يمكن استخدامه لتمكين (إعادة تمكين) جميع المكونات.
    • بدلاً من ذلك، يمكن استخدام -DRETDEC_ENABLE=<قائمة مكونات مفصولة بفواصل> بدلاً من -DRETDEC_ENABLE_<component>=ON (مثل -DRETDEC_ENABLE=fileformat,loader,ctypesparser يعادل -DRETDEC_ENABLE_FILEFORMAT=ON -DRETDEC_ENABLE_LOADER=ON -DRETDEC_ENABLE_CTYPESPARSER=ON).