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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
web3-decoder — امتداد لـ Burp Suite لفك ترميز حركة مرور Web3 JSON-RPC، بما في ذلك استدعاءات دوال العقود الذكية، والاستجابات، وحل ABI مع دعم الوكيل والاستدعاءات المتعددة. | Kitploit
أدوات/GitHubGitHub/nccgroup/web3-decoder
تحليل الثغرات الأمنيةالهندسة العكسيةجمع المعلوماتأمن الويباختبار الاختراقأمن واجهات برمجة التطبيقات
GitHubnccgroup/web3-decoder

web3-decoder

امتداد لـ Burp Suite لفك ترميز حركة مرور Web3 JSON-RPC، بما في ذلك استدعاءات دوال العقود الذكية، والاستجابات، وحل ABI مع دعم الوكيل والاستدعاءات المتعددة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Web3 Decoder

Web3 Decoder هو امتداد لـ Burp Suite يساعد في تحليل العمليات المتعلقة بالعقود الذكية في Web3. ويشمل ذلك بشكل أساسي استدعاءات JSON-RPC الموجهة إلى عُقد Ethereum وعُقد الشبكات المتوافقة الأخرى (مثل Polygon وArbitrum وBSC...).

التحميل والتثبيت

حمّل أحدث ملف JAR للامتداد — هذا الرابط يوفّر دائمًا أحدث إصدار:

⬇ web3-decoder.jar (latest)

الإصدارات الأقدم متوفرة في صفحة Releases.

ثم قم بتحميله في Burp Suite:

  1. انتقل إلى Extensions → Installed → Add.
  2. اضبط Extension type على Java واختر الملف الذي حمّلته web3-decoder.jar.
  3. انقر Next — ستظهر علامة تبويب Web3 وعلامتا تبويب المحرر Web3 Request/Web3 Response فور تحميله.

يتطلب إصدارًا من Burp مرفقًا بـ JRE 21 (إصدارات Burp Suite الحالية). ملف JAR مكتفٍ ذاتيًا — جميع التبعيات (web3j، وغيرها) مضمّنة فيه.

البناء من المصدر

root@kitploit:~
./gradlew jar

يُكتب ملف JAR الخاص بالامتداد دائمًا في مسار ثابت — web3-decoder/build/libs/web3-decoder.jar — بغض النظر عن الإصدار، لذا يمكنك توجيه Burp إليه مرة واحدة والسماح له بإعادة التحميل تلقائيًا عند كل إعادة بناء. عملية الإصدار موثّقة في docs/RELEASING.md.

لقطات الشاشة

هكذا تبدو علامات تبويب محرر Web3 المحسّنة لدينا بعد فك ترميز طلبات واستجابات JSON-RPC بنجاح:

Web3 decoded requests and responses

أدناه علامة تبويب Web3 المعاد تصميمها، مع جميع الإعدادات وABIs المكتشفة والمزيد! (شكرًا Claude Design!)

Web3 Tab

التوثيق

التوثيق المفصّل موجود في مجلد docs/:

  • Architecture — الطبقات والمكونات ومسارات فك الترميز/الترميز الرئيسية (مع رسوم بيانية).
  • Project Structure — تخطيط الدلائل ومسؤوليات كل حزمة على حدة.
  • Tech Stack — التبعيات والبناء/التغليف وبيئة التشغيل ووضع CLI.
  • Features — كتالوج كامل للقدرات مع مؤشرات على التنفيذ.

مفاتيح API لمستكشفي الكتل

معظم مستكشفي الكتل المدعومين، مثل etherscan.io، يتطلبون مفتاح API للسماح بأكثر من طلب واحد كل 5 ثوانٍ.

تتيح لك الواجهة الجديدة إدارة الشبكات ومستكشفي الكتل ومفاتيح API

إضافة ABI لعقد يدويًا

يقوم الامتداد بتخزين ABIs التي تم تنزيلها من مستكشفي الكتل مثل etherscan مؤقتًا. يمكنك أيضًا إضافتها مباشرة من علامة تبويب Web3، إما بالحصول عليها تلقائيًا من مستكشف الكتل، أو بإضافتها يدويًا.

الميزات المنفَّذة

  • تكامل مع Burp
    • علامة تبويب Web3 Request في المحرر لطلبات JSON-RPC (مخفية عند حركة المرور التي لا تحتوي على eth_call / eth_sendRawTransaction).
    • علامة تبويب Web3 Response في المحرر لاستجابات JSON-RPC المقابلة.
    • علامة تبويب Web3 مخصصة في الحزمة مع أدوات الشبكة/ABI/calldata.
    • صفوف سجل الوكيل (Proxy) مُعلَّمة بتوقيع الدالة المُفكَّك في ملاحظاتها (يتم فك الترميز خارج الخيط، وتُحفظ على صف السجل المباشر).
  • تجربة محرر فك الترميز
    • توفّر علامتا تبويب المحرر عرضًا هيكليًا شجريًا افتراضيًا، مع عرض JSON على بُعد نقرة واحدة — ويبقى JSON هو المصدر المرجعي الأساسي لإعادة الترميز.
    • يحتفظ عرض JSON بتمييز الأكواد على المستويين الصياغي والدلالي، وأرقام الأسطر، ومطابقة الأقواس، والتحقق المباشر من الصحة، وشريط البحث.
  • فك ترميز طلبات JSON-RPC
    • يفكك calldata الخاصة بـ eth_call إلى function + وسائط args مُنمّطة.
    • يدعم حمولات JSON-RPC الفردية والدفعية (batch).
    • بالنسبة للحمولات الدفعية، يتم الإبلاغ عن كل عنصر بحالته (decoded أو skipped أو ) مع السبب عند التخطي/الفشل.

الشبكات المدعومة حتى الآن

القائمة الكاملة والحالية للشبكات المدمجة موجودة في web3-decoder/src/main/resources/chains.json — الامتداد الآن يأتي مع مجموعة Etherscan v2 متعددة الشبكات (Ethereum وSepolia وBNB Smart Chain وPolygon وBase وArbitrum وLinea وBlast وOptimism وAvalanche وGnosis وScroll وTaiko وBerachain وغيرها الكثير، بما في ذلك شبكاتها التجريبية). تتيح الواجهة أيضًا إضافة شبكاتك الخاصة أثناء التشغيل — أي شبكة يُظهر مستكشف الكتل الخاص بها واجهات برمجة بنمط Etherscan ستعمل. راجع Features لتفاصيل إدارة الشبكات (بما في ذلك ترحيل معرّفات الشبكات القديمة).

كيف يعمل

يُرسل طلب JSON-RPC من نوع eth_chainId إلى العقدة قيد الاستخدام لتحديد الشبكة التي نعمل عليها، واعتمادًا على الشبكة، يختار واجهة برمجة لمستكشف الكتل عبر البحث في ملف chains.json.

لفك ترميز استدعاءات الدوال، نحتاج إلى ABI (الواجهة الثنائية للتطبيق) الخاص بالعقد، والتي تحتوي على جميع الدوال التي يمكن استدعاؤها في العقد ومدخلاتها ومخرجاتها. يحل الامتداد الـ ABIs بالترتيب التالي:

  1. ABI مخزّن مؤقتًا (Cached ABI) للشبكة + عنوان العقد (استمرارية على نطاق مشروع Burp).
  2. ABIs مدمجة (Builtin) للعقود المعروفة (مثل Multicall3).
  3. البحث في مستكشف الكتل (واجهة برمجة بنمط Etherscan) للعقود الموثّقة.
  4. مجموعة ABIs المكتشفة (Detected ABI pool) — ABIs التي استخرجها الماسح السلبي من حزم واجهات dApp الأمامية، مفهرسة بمنتقي الدوال ذي الـ 4 بايت. غير مرتبطة بشبكة معينة.
  5. الاحتياطي عبر 4byte — البحث عن المنتقي ← التوقيع في api.4byte.sourcify.dev، مع بناء ABI اصطناعي من أي مرشح مطابق.

إذا تعذّر تحديد معرّف الشبكة (مثلًا عندما لا يستجيب الطرف endpoint لـ eth_chainId)، يتم تخطي الخطوات المرتبطة بالشبكة (1–3) ويظل المفكك يحاول تنفيذ الخطوات غير المرتبطة بالشبكة (4 و5).

الخدمات الخارجية ومصادر البيانات

لفك ترميز حركة المرور، يتواصل الامتداد مع عدد قليل من المصادر الخارجية. هذه المصادر اختيارية ويمكنك إيقاف تشغيلها من علامة تبويب Web3. تُرسل جميع الطلبات الصادرة عبر حزمة HTTP الخاصة بـ Burp (api.http().sendRequest)، لذا فهي تحترم إعدادات البروكسي وTLS العلوية في Burp وتظهر في حركة مرور Burp.

ملاحظة خصوصية: عمليات البحث عن ABI ترسل عنوان العقد إلى مستكشف الكتل المُعدّ، بينما يرسل الاحتياطي عبر 4byte منتقي الدالة إلى api.4byte.sourcify.dev. يتم تخزين ABIs التي تم تنزيلها محليًا مؤقتًا بحيث لا تُعاد الاستعلامات عند تكرار فك الترميز. معظم المستكشفين (مثل etherscan.io) يحتاجون إلى مفتاح API لأكثر من ~طلب واحد / 5 ثوانٍ — أدر المفاتيح من علامة تبويب Web3.

يقرأ الماسح السلبي لـ ABI أجسام استجابات HTTP التي التقطها Burp بالفعل ويعمل محليًا بالكامل — لا يتم توليد أي حركة مرور بواسطة الاكتشاف نفسه.

تنزيل الأداة
error
  • فك ترميز استجابات JSON-RPC
    • يفكك result لطلبات eth_call التي تم فك ترميزها سابقًا.
    • يدعم الاستجابات الفردية والدفعية، مع مطابقة العناصر عبر معرّف id الخاص بـ JSON-RPC (أو بالرجوع إلى الفهرس كبديل).
  • إعادة الترميز وسير عمل التحرير
    • يمكنك تعديل الوسائط المُفككة في محرر الطلبات وإعادة كتابتها إلى calldata مُرمَّزة.
    • تستطيع أداة calldata المستقلة فك الترميز وإعادة الترميز خارج سجل الطلبات.
  • حل ABI والتخزين المؤقت
    • أولوية البحث عن ABI: ABI المخزّن مؤقتًا، ثم المدمج (builtin)، ثم مستكشف الكتل (المتوافق مع Etherscan)، ثم المجموعة المكتشفة سلبيًا، ثم 4byte.
    • يتم تخزين ABIs التي تم تنزيلها مؤقتًا تلقائيًا لعمليات فك الترميز المستقبلية.
    • يتم تتبّع مصدر ABI (cache أو builtin أو etherscan أو detected أو 4byte) في المخرجات المُفككة.
  • الاكتشاف السلبي لـ ABI (جديد)
    • يقوم فحص PassiveScanCheck من Burp بفحص أجسام استجابات HTTP (عادةً حزم JS المصغّرة لواجهات dApp الأمامية) بحثًا عن ABIs الخاصة بـ Solidity، ويخزّن كل ما يجده في مجموعة على نطاق المشروع مفهرسة بمنتقي الدالة.
    • يتعامل مع كل من JSON الصارم وصيغة JS-object-literal الموجودة في الحزم المصغّرة، بما في ذلك الاختصارات المنطقية !0/!1 التي يصدرها Terser/esbuild/Svelte.
    • عندما تفشل سلسلة المصادر الحالية (cache، ثم builtin، ثم etherscan)، يرجع المفكك إلى المجموعة المكتشفة قبل الانتقال إلى 4byte. يتم وسم المخرجات المُفككة بـ decodeSource: "detected".
    • يعمل حتى عندما يتعذر تحديد eth_chainId: المجموعة المكتشفة و4byte غير مرتبطتين بشبكة معينة، لذا يحاول المفكك استخدامهما بدلاً من الرفض المباشر.
    • كل ABI جديد يُنشئ إشعارًا معلوماتيًا في Burp ("تم اكتشاف ABI لعقد Solidity") مع قائمة الأساليب الكاملة — كل دالة/حدث/خطأ مع توقيعه الأساسي ومنتقي الـ 4 بايت — وعنوان URL الذي عُثر فيه على الـ ABI.
  • فك الترميز الاحتياطي عبر 4byte
    • إذا فشل البحث عن ABI، يتم إجراء بحث عن منتقي الدالة في api.4byte.sourcify.dev.
    • يتم توليد تعريفات ABI اصطناعية من التواقيع المرشحة واستخدامها في مسارات فك الترميز/إعادة الترميز.
  • فك ترميز مدرك للبروكسي
    • يكتشف عقود التنفيذ (implementation) لأنماط البروكسي المفوض (delegate proxy) ويفكك الترميز باستخدام ABI الخاص بعقد التنفيذ.
    • كاشفات البروكسي المنفَّذة: خانة التخزين ERC1967 وخانة التخزين القديمة ZeppelinOS/OpenZeppelin.
  • فك ترميز تكراري لـ Multicall
    • يفكك الاستدعاءات المتداخلة للأنواع الشائعة من Multicall: aggregate وtryAggregate وaggregate3 وaggregate3Value وblockAndAggregate وtryBlockAndAggregate.
    • يفكك الاستدعاءات المتداخلة بشكل تكراري مع تحديد أقصى عمق وحالة لكل عقدة.
  • واجهة إدارة الشبكات والمستكشفين
    • إضافة/تعديل/إزالة تعريفات الشبكات (معرّف الشبكة، الاسم، المستكشف).
    • إدارة مفاتيح API للمستكشف لكل شبكة على حدة.
    • دعم مفتاح API مشترك لعائلة Etherscan مع إمكانية التجاوز على مستوى كل شبكة.
    • تحميل الشبكات الافتراضية من chains.json وحفظ التخصيصات في تفضيلات Burp.
    • يشمل ترحيل معرّفات الشبكات القديمة إلى بدائلها الحديثة (للتكوينات المحفوظة).
  • واجهة إدارة ABIs المخزنة مؤقتًا
    • إضافة ABI مخزّن يدويًا (لصق JSON) أو جلبه من المستكشف المُعدّ.
    • إزالة إدخالات ABI المخزنة مؤقتًا.
    • فتح ABIs المخزنة مؤقتًا في المحرر، والتحقق من صحة JSON، وحفظ التحديثات.
  • واجهة تصفح ABIs المكتشفة (جديدة)
    • لوحة جانبية أسفل علامة تبويب Web3 تعرض كل ABI راكمه الماسح السلبي.
    • يعرض كل صف بصمة قصيرة وعدد الدوال وعنوان URL الذي شوهد فيه الـ ABI لأول مرة.
    • انقر على صف لعرض JSON الخاص بالـ ABI للقراءة فقط في محرر ABI؛ وأزل الإدخالات غير المرغوب فيها من المجموعة.
  • لوحة فك ترميز / إعادة ترميز Calldata
    • فك ترميز calldata باستخدام معرّف الشبكة + سياق عنوان العقد.
    • دعم اختياري لعنوان URL لـ RPC لفك الترميز المدرك للبروكسي في الأداة المستقلة.
    • تعرض تفاصيل فك ترميز multicall المتداخل عند الاقتضاء.
  • فك ترميز استدعاءات JSON-RPC الخاصة بـ eth_sendRawTransaction (ودوالها الداخلية)
  • الخدمةنقطة النهاية (Endpoint)الغرض
    عقدة JSON-RPC (النقطة الطرفية الموجودة بالفعل في حركة مرورك)عنوان RPC الذي يتم تمريره عبر البروكسيeth_chainId لتحديد الشبكة النشطة، وeth_getStorageAt لقراءة خانات تنفيذ البروكسي (ERC-1967 / ZeppelinOS القديمة).
    Etherscan (متعدد الشبكات v2)https://api.etherscan.io/v2/api?chainid=…جلب ABIs الخاصة بالعقود الموثّقة. يتراجع إلى مضيف المستكشف القديم للشبكة (/api) عندما لا يدعم v2 تلك الشبكة.
    قاعدة بيانات تواقيع 4bytehttps://api.4byte.sourcify.devتحويل منتقي دوال غير معروف ذي 4 بايت إلى تواقيع مرشحة عند عدم توفر ABI (يُبنى عندها ABI اصطناعي من المطابقة).