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

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

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

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

دليل الأدوات

الفئات

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

web3-decoder

إضافة لـ Burp Suite لفك ترميز استدعاءات Ethereum JSON-RPC وتفاعلات العقود الذكية، مع دعم سلاسل متعددة واسترجاع تلقائي لـ ABI.

عرض المستودع
2154116منذ 9 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

مفكك Web3

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

مفاتيح API لمستكشفي البلوكتشين

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

لإضافة مفاتيح API لديك خياران:

  • يمكنك إضافة مفاتيح API الخاصة بك عن طريق تعديل ملف .api_keys.json
  • يمكنك إضافة متغيرات بيئة بنفس الأسماء الموجودة في ملف API_KEYS.json
    • مثال: export ETHERSCAN_API=YOURAPIKEY

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

يقوم الامتداد بتخزين ملفات ABI التي تم تنزيلها من مستكشفي البلوكتشين مثل etherscan داخل مجلد باسم .abi_caches بصيغة JSON. يمكنك ببساطة إضافة ملف جديد داخل هذا المجلد، باتباع اصطلاح التسمية التالي:

{chain_id}_{contract_address.lower()}.abi

على سبيل المثال:

root@kitploit:~
# شبكة إيثريوم الرئيسية (معرف السلسلة 1)، العقد 0xfbdca68601f835b27790d98bbb8ec7f05fdeaa9b
1_0xfbdca68601f835b27790d98bbb8ec7f05fdeaa9b.abi

# Polygon (معرف السلسلة 137)، العقد 0x447646e84498552e62ecf097cc305eabfff09308
137_0x447646e84498552e62ecf097cc305eabfff09308.abi

انتباه مستخدمي Windows و macOS:

هذه الوثائق تنطبق على Windows و Linux؛ يمكن لمستخدمي macOS استخدام ملف DMG.

تحقق من وجود Git و Python على نظامك.

https://git-scm.com/install/windows

https://www.python.org/ftp/python/3.13.12/python-3.13.12-amd64.exe

ابدأ جلسة طرفية (Terminal) بصلاحيات المسؤول.

الملفات الثنائية المجمعة مسبقًا وبيئة Python3 الافتراضية

يتطلب هذا الامتداد مكتبات python3 مثل web3.py والتي للأسف غير متوفرة لـ python 2.7 لاستخدامها مباشرة مع Jython 2.7. كـ 'حل مؤقت'، الوظيفة الرئيسية مكتوبة في مكتبة python 3 يتم تنفيذها بواسطة الامتداد من خلال بيئة python افتراضية (نتحدث عن حل قذر...)

لقد قمت بإنشاء ملفات ثنائية مجمعة مسبقًا لمكتبة python3 المستخدمة، لأنظمة Linux و Windows و Mac OSX. سيستخدم الامتداد هذه الملفات الثنائية إذا لم يتمكن من تنفيذ المكتبة. للأداء الأفضل أو للتطوير، يمكنك إنشاء virtualenv، وتثبيته كما يلي:

root@kitploit:~
cd "web3-decoder"
virtualenv -p python3 venv
source venv/bin/activate
pip install web3 py-evm

سيقوم الامتداد باستدعاء المكتبة باستخدام virtualenv الذي تم إنشاؤه.

بمجرد إنشاء virtualenv، يمكنك إضافة امتداد python عن طريق تحديد ملف burp_web3_decoder.py في علامة التبويب Extender في Burp Suite

الميزات والمهام المتبقية

  • إضافة علامة تبويب محرر Burp للطلبات والاستجابات المتوافقة
  • فك تشفير استدعاءات JSON-RPC من نوع eth_call
  • فك تشفير استدعاءات JSON-RPC من نوع eth_sendRawTransaction (والدوال الداخلية لها)
  • فك تشفير نتائج الاستجابات من eth_call
  • دعم إعادة ترميز الدوال المفككة من eth_call
  • تنزيل تلقائي لـ ABI للعقد الذكي المستدعى من واجهات برمجة تطبيقات etherscan (إذا كان العقد موثقًا)
  • فك تشفير مدخلات الدوال في كل من eth_call و eth_sendRawTransaction
  • فك تشفير مدخلات الدوال التي تستخدم عقود "Delegate Proxy"
  • فك تشفير مدخلات الدوال المستدعاة عبر عقود "Multicall"
  • إضافة يدوية لملفات ABI للعقود غير الموثقة في etherscan
    • السماح بذلك من واجهة Burp، بدلاً من كتابة JSON إلى ملف
  • ملفات ثنائية مجمعة مسبقًا للسماح للامتداد بالعمل دون إعداد
  • دعم شبكات أخرى متوافقة (Polygon و Arbitrum و Fantom و BSC وغيرها)
  • دعم إعادة توقيع rawTransaction معدلة ومفككة (يتطلب إدخال المفتاح الخاص)

السلاسل المدعومة حتى الآن

يمكن العثور على جميع السلاسل المدعومة في ملف chains.json. هذه هي السلاسل التي لديها مستكشف بلوكتشين بنفس واجهات برمجة التطبيقات مثل etherscan. إذا كنت تريد إضافة المزيد من مستكشفي البلوكتشين، أضفهم إلى ملف chains.json، واختبره، ثم أنشئ طلب سحب (pull request)!

  • شبكة إيثريوم الرئيسية
  • Ropsten
  • Rinkeby
  • Goerli
  • Optimism
  • Cronos
  • Kovan
  • BSC
  • Huobi ECO
  • Polygon
  • Fantom
  • Arbitrum
  • Sepolia
  • Aurora
  • Avalanche

أمثلة

لمزيد من الأمثلة، بما في ذلك استدعاءات proxy و multicall، راجع EXAMPLES.md

eth_call:

خام: image

مفكك: image

eth_sendRawTransaction (اختبار Uniswap v2):

root@kitploit:~
{
    "method": "eth_sendRawTransaction", 
    "params": [
        "0x02f9015b820539808459682f00850df8475800830493e0947a250d5630b4cf539739df2c5dacb4c659f2488d880de0b6b3a7640000b8e47ff36ab500000000000000000000000000000000000000000000009e0950598867d8000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002105eaa660ff62b14a5e093fc348e13ab63af2e600000000000000000000000000000000000000000000000000000000623b16570000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006b175474e89094c44da98b954eedeac495271d0fc001a005cfdf9ff11dea2d3e8781cb6ba140ae6e86a0922bfa75938b6f2456f513e24ca057f02b3f7125edb59e22651d503bc296153860e3843f9d495ad21d898c8e20c3"
    ], 
    "id": 4700418092893, 
    "jsonrpc": "2.0"
}

مفكك:

root@kitploit:~
[
  {
    "chain_id": 1337, 
    "access_list": [], 
    "nonce": 0, 
    "r": 2628844986784880378434698689940765181553490914879903463877191830852582236748, 
    "s": 39775559607776431912363889945449043629789293388076288013264795388376358199491, 
    "max_priority_fee_per_gas": 1500000000, 
    "gas": 300000, 
    "max_fee_per_gas": 60000000000, 
    "from": "0x2105Eaa660ff62b14a5e093fc348e13ab63AF2E6", 
    "y_parity": 1, 
    "to": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D", 
    "value": 1000000000000000000,
    "data": "0x7ff36ab500000000000000000000000000000000000000000000009e0950598867d8000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002105eaa660ff62b14a5e093fc348e13ab63af2e600000000000000000000000000000000000000000000000000000000623b16570000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006b175474e89094c44da98b954eedeac495271d0f", 
    "decoded_function": {
      "args": {
        "amountOutMin": 2915256698432979992576, 
        "path": [
          "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", 
          "0x6B175474E89094C44Da98b954EedeAC495271d0F"
        ], 
        "to": "0x2105Eaa660ff62b14a5e093fc348e13ab63AF2E6", 
        "deadline": 1648039511
      }, 
      "function": "swapExactETHForTokens(uint256,address[],address,uint256)", 
      "to": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
      "abi": {
        "outputs": [
          {
            "internalType": "uint256[]", 
            "type": "uint256[]", 
            "name": "amounts"
          }
        ], 
        "inputs": [
          {
            "internalType": "uint256", 
            "type": "uint256", 
            "name": "amountOutMin"
          }, 
          {
            "internalType": "address[]", 
            "type": "address[]", 
            "name": "path"
          }, 
          {
            "internalType": "address", 
            "type": "address", 
            "name": "to"
          }, 
          {
            "internalType": "uint256", 
            "type": "uint256", 
            "name": "deadline"
          }
        ], 
        "stateMutability": "payable", 
        "type": "function", 
        "name": "swapExactETHForTokens"
      }
    }
  }
]

كيف يعمل

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

كمثال على الاستخدام، لفك تشفير استدعاءات الدوال، نحتاج إلى ABI (واجهة التطبيق الثنائية) للعقد، والذي يحتوي على جميع الدوال التي يمكن استدعاؤها في العقد ومدخلاتها ومخرجاتها. حاليًا، يعمل مع العقود الموثقة في مستكشف البلوكتشين، أو عن طريق إضافة ABI يدويًا. في الإصدارات المستقبلية، سنستكشف إمكانية توليد ABI تلقائيًا عن طريق البحث عن محددات الدوال في قواعد البيانات العامة.

يوضح مخطط "التدفق" التالي بطريقة مبسطة العملية التي تتبعها مكتبة eth_decoder عند فك تشفير استدعاءات JSON-RPC من نوع eth_call:

image

القيود المعروفة

  • قد يكون فك تشفير المعاملات الخام في Windows محدود الوظائف بسبب توافق المكتبات
تنزيل الأداة