DevToys Web Pro iconDevToys Web Proבלוג
דרגו אותנו:
נסו את תוסף הדפדפן:

מפענח / מקודד Protobuf

מפוענח
פורמט:

protobuf מקודד Base64

  • שדות שפוענחו (2)

  • שדה #סוג Wireערך
    1Varint(0)150
    2Length-delimited(2)testing
    פרטים טכניים

    איך מפענח Protobuf עובד

    מה הכלי עושה

    מפענח Protobuf מנתח נתונים בינאריים גולמיים של Protocol Buffer בלי לדרוש קובץ סכימה ‎.proto, ומציג את מספרי השדות, הסוגים והערכים בפורמט על-החוט. הוא גם תומך בקידוד JSON חזרה לבינארי של protobuf כאשר מספקים הגדרת ‎.proto. כך ניתן לבדוק מטעני protobuf אטומים שנלכדו מתעבורת רשת או נשמרו במסדי נתונים בלי גישה לסכימה המקורית.

    מקרי שימוש נפוצים למפתחים

    מפתחי Backend משתמשים בפענוח protobuf ללא סכימה כדי לבצע Reverse Engineering ל-API-ים של gRPC שאינם מתועדים, לדבג הודעות מסוריאליזציה בנושאי Kafka, או לבדוק מטענים בינאריים בעמודות מסד נתונים. חוקרי אבטחה מנתחים תעבורת רשת המקודדת ב-protobuf במהלך בדיקות חדירה. מצב הקידוד מסייע למפתחים לוודא שהגדרות ה-‎.proto שלהם מייצרות את הפלט הבינארי הצפוי לפני פריסת שינויי סכימה לשירותי פרודקשן.

    פורמטי נתונים, טיפוסים או וריאנטים

    Protocol Buffers משתמשים בפורמט על-החוט קומפקטי עם חמישה סוגי wire: varint ‏(int32, int64, bool, enum), ‏64-bit fixed ‏(double, fixed64), ‏length-delimited ‏(string, bytes, הודעות מוטמעות, שדות חוזרים ארוזים), ‏32-bit fixed ‏(float, fixed32), וסוגי group התחלה/סיום שהוצאו משימוש. ללא סכימה, המפענח אינו יכול להבחין בין מחרוזת לבין הודעה מוטמעת (שתיהן length-delimited), ולכן הוא מנסה את שתי הפרשנויות ומציג את הניתוח הסביר ביותר.

    מלכודות נפוצות ומקרי קצה

    פענוח ללא סכימה הוא מעורפל מטבעו — varint יכול להיות int32 חתום (zigzag), uint32 לא חתום או ערך בוליאני, ושדות עם אורך מוגדר יכולים להיות מחרוזות, bytes או הודעות מקוננות. שמות השדות אובדים בקידוד הבינארי ומופיעים רק כתגיות שדה מספריות. שדות חוזרים ארוזים נראים זהים לשדה bytes יחיד ללא הקשר של סכימה. תמיד יש להצליב את הפלט המפוענח עם כל תיעוד זמין כדי לפתור עמימויות.

    מתי להשתמש בכלי הזה לעומת קוד

    השתמשו בכלי הדפדפן הזה לבדיקה מהירה של מטעני protobuf שנלכדו כאשר אין לכם את קובץ ה-.proto או כשאתם רוצים לאמת את הקידוד בלי להקים שרשרת כלי build. עבור מערכות ייצור, השתמשו ב-protoc עם קובצי סכימה מתאימים, קוד שנוצר ייעודית לשפה, ושירותי gRPC reflection שמספקים בטיחות טיפוסים מלאה, תאימות קדימה ושילוב עם מערכת ה-build של היישום שלכם.