Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9063009
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T15:52:54+00:00 2026-06-16T15:52:54+00:00

I’m trying to connect to Google Chrome sync (that synchronizes your Chrome settings and

  • 0

I’m trying to connect to Google Chrome sync (that synchronizes your Chrome settings and your currently opened tabs).
For now I’m concentrating on on the tab syncing. I connected to the Google Talk servers and I’m receiving messages from tango bot whenever I navigate to a new webpage in Chrome.

But I have difficulties decoding those messages as they are encodes in Google’s protobuf format – because there are tons of different protobuf classes dedicated to Chrome Sync and I think there’s no way of figuring out the type of a binary protobuf message?

A typical message would look like this (base64 encoded, XXXX’t out my mail adress):

CAAilQEKQAoGCgQIAxACEiUKBgoECAMQARISCZwF6dZYmkeFEXZLABNN3/yMGgcIhSwQAxgBINP80ri/JyoIMTgxOTgxMjYaUQpPCgwI7AcSB1NFU1NJT04QARiw64/I0se0AiIyVzpDaGZDeU9JWUZXdXFuUmRXaGtJWk94VkRSM1lmTGU1M0FoRGVxT2EwOHVQUHcyOD0wASoGCgQIAxACMAI4AUIrCG8SJxAEGAIiFGRlbHXXXXXXXXdAZ21haWwuY29tQgl0YW5nb19yYXdIAQ==

I tried decoding it with some of the protobuf classes (that I compiled for Java), but with none of them I got any useful data.

Does anyone have more information on this topic? Some insight on how to find the right protobuf class for decoding a certain binary message would be great. It would even help me to some point to be able to decode that exact message I gave as an example above.
There is very little public documentation and the Chromium source code is really difficult to look trough if you’re not a C++ guy…
(I’m developing in Java, if that matters)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T15:52:56+00:00Added an answer on June 16, 2026 at 3:52 pm

    Yes, that is broadly possible; however, it cannot be done with the data you have posted because you have corrupted it irretrievably in your attempt to remove your email address. Protobuf is very sensitive to that; I tried replacing the XXXXXXXX with the base-64 for a 6-letter email-address, but the byte immediate before that is 199, and 199 cannot be legal there (the data immediately before string contents is the length of the string encoded as a varint, and a varint can never end with the most-significant-bit of the last byte set, because the MSB is a continuation flag).

    If you have raw protobuf binary, you can try running it through protoc --decode_raw, and see what it says; that may give you enough to start reconstructing the layout. Alternatively, you can try parsing it manually with your preferred implementation’s “reader” API (if it has one). For example, using protobuf-net and ProtoReader, I was able to piece together (the numbers in brackets are the offsets after reading each field-header):

    {
        (1) field 1: varint, value 0 if int
        (3) field 4: string, looks like sub-message
        // everything after this point is really really suspect
            (6) field 1, string, looks like sub-message
                (8) field 1, string, looks like sub-message
                (16) field 2, string, looks like sub-message
                (55) field 4, varint, 1357060030035 assuming int64
                (62) field 5, string; "18198126"
            (72) field 3, string, looks like sub-message
                (64) field 1, string, looks like some encoded session data
        (155) field 5: string, looks like sub-message
            (157) field 1: string, looks like sub-message
        (163) field 6: varint, value 2 if int
        (165) field 7: varint, value 1 if int
        (167) field 8: string, looks like sub-message
            (169) field 1: varint, value 111 if int
            (171) field 2: string, looks like sub-message
    }
    

    The problem is that due to the corruption (because of your replacement), it is impossible to say much beyond that field 4; by that point, everything could be completely gibberish due to the lengths being off. So I have very little confidence past that point. The main point of the above is simply to illustrate: yes, you can parse protobuf data without knowing the schema in advance, to reverse engineer a schema – but it requires:

    • patience and a little guesswork to interpret each field (each wire-type can mean multiple things)
      • if you know what the values being stored, without necessarily knowing how each maps to fields, then you have a headstart; for example, if you know you are being sent something with the values 22, 1325, “hello world”, and 123.45F; then you should be able to figure out the mapping easily enough
    • intact data (which is sadly missing in this case)
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this
I'm trying to convert HTML to plain text. I get many &\#8217; &\#8220; etc.
I'm trying to create an if statement in PHP that prevents a single post
I am trying to understand how to use SyndicationItem to display feed which is
Basically, what I'm trying to create is a page of div tags, each has
I am trying to find ID3V2 tags from MP3 file using jid3lib in Java.
link Im having trouble converting the html entites into html characters, (&# 8217;) i
That's pretty much it. I'm using Nokogiri to scrape a web page what has
this is what i have right now Drawing an RSS feed into the php,
I've got a string that has curly quotes in it. I'd like to replace

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.