أداة فك ترميز Protocol Buffers
افحص رسالة Protocol Buffers مشفّرة من دون رفعها أو الادعاء بمعرفة مخططها. تقبل هذه الأداة العاملة في المتصفح إدخالًا صريحًا بنظام الست عشري أو Base64 أو Base64URL أو UTF-8 خامًا أو ملفًا ثنائيًا. تمرّ على جميع أنواع السلك الصالحة في protobuf، وتحافظ على دقة أعداد 64 بت، وتحدد مواضع الأخطاء، وتعرض كل التفسيرات الكاملة الممكنة للبايتات محددة الطول. تبقى الحمولة داخل متصفحك، ولا تتصل الأداة مطلقًا بالخدمات المذكورة داخل البيانات.
كيف تعمل
-
1
اختر الترميز بدقة
حدد hex أو Base64 أو Base64URL أو UTF-8 خامًا أو ملفًا ثنائيًا. لا تخمّن الأداة تنسيق الإدخال تلقائيًا.
-
2
افحص حقول السلك
فك ترميز الوسوم وأرقام الحقول وقيم السلك، ثم وسّع كل احتمال متداخل أو مضغوط صالح من دون افتراض نوع في المخطط.
-
3
صدّر التقرير
نزّل تقرير JSON بلا مخطط، أو CSV محميًا من الصيغ، أو تقريرًا نصيًا واضحًا لمزيد من التحليل.
ما الذي يستطيع فك ترميز Protobuf بلا مخطط إثباته؟
تخزّن Protocol Buffers سلسلة من وسوم الحقول وقيمها، لا تصريحات ملف .proto الأصلية. يعرّف دليل ترميز protobuf الرسمي كل وسم بإزاحة رقم الحقل ثلاث بتات ثم دمجه مع نوع السلك، أي ما يكافئ field_number × 8 + wire_type. لذلك تستطيع الأداة إثبات رقم الحقل ونوع السلك وحدود البايتات والترميزات الممكنة بنيويًا. لكنها لا تستطيع الجزم بأن varint عُرّف على أنه uint64 أو int64 أو sint64 أو bool أو enum، لأن هذه التصريحات قد تشترك في البايتات نفسها.
يُختار وضع الإدخال دائمًا صراحة. يقبل hex المسافات البيضاء ASCII وبادئة 0x واحدة على الأكثر. ويُتحقق من Base64 وBase64URL كلٌ على حدة، بما في ذلك الطول والحشو وبتات الحشو غير المستخدمة، ولا يجوز خلط الأبجدية القياسية بالآمنة لعناوين URL. يعني النص الخام البايتات الدقيقة بترميز UTF-8 التي ينشئها TextEncoder في المتصفح، ولا تُفسّر تسلسلات الشرطة المائلة. أما الملف فيُقرأ ببايتاته الأصلية.
أنواع السلك والتفسيرات
| نوع السلك | القيمة المشفّرة | ما يعرضه التقرير |
|---|---|---|
| 0 | Varint | قيمة غير موقعة دقيقة، وقيمة موقعة بالمتمم الثنائي، وقيمة ZigZag؛ وBoolean فقط للقيمتين 0 و1 |
| 1 | ثمانية بايتات بترتيب little-endian | عددا fixed64 وsfixed64 بدقة، مع احتمال double |
| 2 | طول تتبعه بايتات | Hex وBase64، ونص UTF-8 صارم عند صلاحيته، وكل احتمال متداخل أو مضغوط كامل |
| 3 / 4 | وسمَا بدء المجموعة ونهايتها | عناصر مجموعة بوسمي حقل متطابقين؛ وسم النهاية فاصل وليس سجلًا مستقلًا |
| 5 | أربعة بايتات بترتيب little-endian | عددا fixed32 وsfixed32 بدقة، مع احتمال float |
لا يستطيع نوع العدد العادي في JavaScript تمثيل كل عدد صحيح من 64 بت بدقة. تستخدم الأداة BigInt في محلل السلك كله، وتحول الأعداد الدقيقة إلى سلاسل عشرية للعرض والتصدير. كما تصدّر القيم العائمة الخاصة مثل NaN واللانهاية والصفر السالب كسلاسل حتى لا يحولها JSON بصمت إلى قيمة أخرى.
فهم غموض القيم محددة الطول
يُستخدم نوع السلك 2 للسلاسل النصية والبايتات الخام والرسائل المضمّنة والقيم العددية المتكررة المضغوطة. ومن دون مخطط قد يصلح تسلسل بايتات واحد لعدة أدوار في آن واحد. فمثلًا، 2a 03 01 02 03 هو الحقل 5 ويحتوي ثلاثة بايتات. تصلح هذه البايتات كقيم varint مضغوطة [1, 2, 3]، لكنها تظل أيضًا بايتات عادية. تعرض الأداة الاحتمالين ولا ترجّح أحدهما.
لا يظهر احتمال الرسالة المتداخلة إلا إذا تحلّل جسم القيمة كاملًا كرسالة سليمة. وبالمثل، لا تظهر احتمالات varint أو fixed32 أو fixed64 المضغوطة إلا إذا استهلك التفسير جميع البايتات. ويتطلب احتمال UTF-8 الصارم فك التسلسل كاملًا من دون محارف استبدال. تكشف هذه الاختبارات الإمكانات البنيوية، لا نوع الحقل المصرح به.
تُعالَج المجموعات وفق قواعد صيغة السلك رغم أن المخططات الحديثة تفضّل الرسائل المضمّنة. يجب أن يُغلق وسم بدء المجموعة بوسم نهاية يحمل رقم الحقل نفسه. ويؤدي وسم نهاية في الجذر، أو وسم غير مطابق، أو نهاية مفقودة إلى إيقاف الفك عند موضع البايت الدقيق. تبقى الحقول المكتملة قبل الخطأ ظاهرة، ولا تتحول البايتات المفقودة أو القيم المجهولة إلى صفر زائف.
الحدود والتأطير والتعامل الآمن
تقبل الأداة رسالة واحدة غير مؤطرة بحجم يصل إلى 10 MiB. ولا تفصل stream مسبوقًا بالطول أو إطار gRPC أو ملف رسائل محددة الطول أو غلاف نقل. أزل التأطير أولًا ثم فك رسالة واحدة. ويضع المحلل حدودًا لعدد السجلات وعمق التداخل والصفوف المرئية وعمل فحص الاحتمالات. تتماشى هذه الضوابط مع روح الإرشادات الرسمية حول مجموعات البيانات الكبيرة وحدود التنفيذ: protobuf فعّال، لكن تبويب التشخيص في المتصفح يحتاج أيضًا إلى حدود للذاكرة والعمل.
يجب أن تكون أرقام الحقول بين 1 و536,870,911. وتحذّر الأداة من النطاق 19,000–19,999 لأن الإرشاد الرسمي لأرقام الحقول يحجزه للتنفيذ. نوعا السلك 6 و7 غير صالحين.
تجري عملية التحليل والتصدير محليًا. قد يحتفظ العرض متعدد الخطوات بحمولة محدودة في sessionStorage لهذا التبويب لمدة تصل إلى ساعتين، ويؤدي البدء من جديد إلى حذفها. لا يوضع شيء في عنوان URL ولا يُرسل إلى الخادم. مخرج JSON هو صراحةً تقرير فك بالتنسيق الخاص بهذه الأداة، وليس ProtoJSON. يبدأ CSV بعلامة UTF-8 BOM وتُسبق الخلايا الشبيهة بالصيغ لتكون أكثر أمانًا عند فتحها في جداول البيانات. ومع ذلك قد تحتوي التقارير بيانات تطبيق سرية، لذا راجعها قبل مشاركتها.
الأسئلة الشائعة
لا. تحتفظ صيغة السلك بأرقام الحقول وترميزاتها، لكن أنواعًا عددية مختلفة قد تشترك في البايتات نفسها. لا توجد الأسماء والتعليقات ومعظم مقصد المخطط في الرسالة.
لا. يجري التحقق والتحليل والتصفية والتصدير داخل متصفحك. لا تُرسل الحمولة عبر الخادم ولا توضع في عنوان URL.
يمكن أن تمثل القيمة محددة الطول بايتات أو نص UTF-8 أو رسالة مضمّنة أو قيمًا مضغوطة. ومن دون مخطط يكون عرض كل احتمال كامل أكثر صدقًا من التخمين.
كان هناك وسم أو varint أو قيمة ثابتة العرض أو طول مصرح به أو حد مجموعة غير مكتمل أو غير صالح. تبقى الحقول المكتملة السابقة في التقرير الجزئي.
ليس مباشرة. تقرأ الأداة رسالة protobuf واحدة ولا تزيل تأطير gRPC أو طول varint أو أي غلاف نقل آخر. استخرج حمولة رسالة واحدة أولًا.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
عدّاد FPS
قِس معدل الإطارات FPS في المتصفح عبر requestAnimationFrame: تنعيم، وأدنى وأقصى معدل إطارات، وحد تنبيه، ورسم بياني اختياري. يعمل محليًا بلا رفع ملفات وبلا API.
أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator)
إزالة التشفير من كود جافا سكريبت مُصغَّر أو مُعبَّأ باستخدام إعادة تسمية المتغيرات، وفك ترميز السلاسل النصية ومصفوفات البيانات، بالإضافة إلى عكس تسطيح تدفق التحكم وتحسين هيكله.
مرجع اختصارات لوحة المفاتيح
ابحث في الاختصارات الافتراضية الموثقة لـ VS Code وChrome وBash مع GNU Readline على macOS وWindows وLinux.
مولد تراخيص
قم بإنشاء النص الكامل لترخيصات المصدر المفتوح مع إدخال اسمك والسنة المقابلة، ويشمل ذلك تراخيص MIT وApache 2.0 وGPLv3 وBSD-3 وMPL-2.0 وCC.
الأداة متاحة بلغات أخرى
- Protocol Buffers 디코더 [KO]
- Công cụ giải mã Protocol Buffers [VI]
- Protocol Buffers-avkodare [SV]
- Dekoder Protocol Buffers [PL]
- Protocol-Buffers-Decoder [DE]
- Protocol Buffers-decoder [NL]
- ตัวถอดรหัส Protocol Buffers [TH]
- Decodificador de Protocol Buffers [ES]
- Dekoder Protocol Buffers [ID]
- Décodeur Protocol Buffers [FR]
- Decodificador de Protocol Buffers [PT]
- Protocol Buffers デコーダー [JA]
- Protocol Buffers Decoder [EN]
- Decodificatore Protocol Buffers [IT]
- Декодер Protocol Buffers [RU]
- Protocol Buffers Kod Çözücü [TR]
- Protocol Buffers 解码器 [ZH]