How we reverse-engineered Google Maps pagination

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB - Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • pbtk

    A toolset for reverse engineering and fuzzing Protobuf-based apps

    In this story, you'll see the process of decoding URL parameters for pagination on Google Maps. It involved deobfuscation of Closure-compiled JavaScript, reverse-engineering of Protobuf data structures, and a bit of math. We tried to decode URL parameters by ourselves, by using pbtk, and attempted to outsource this work. In the end, we succeeded after several pair programming sessions.

  • InfluxDB

    Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.

    InfluxDB logo
  • protobuf

    Protocol Buffers for JavaScript & TypeScript.

    Google Maps URLs contain the pb parameter contains string-encoded Protobuf. The format is the same as for the data parameter in the browser URL on Google Maps. It contains !-separated values. There are several answers on StackOverflow, gists on GitHub, some blog posts about decoding, and even a kinda official guide on reverse engineering protobuf, but none of this touches pagination.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Eval("quire".replace(/^/,"re"))(moduleName)

    1 project | news.ycombinator.com | 14 Jan 2024
  • Add extra stuff to a “standard” encoding? Sure, why not

    11 projects | news.ycombinator.com | 19 Sep 2023
  • Question about compressing JSON in multiplayer position updates

    1 project | /r/node | 5 Apr 2023
  • Looking for ideas on how to implement serialization and deserialization between C++ and Javascript

    1 project | /r/cpp_questions | 8 Feb 2023
  • Protobuf-ES: The Protocol Buffers TypeScript/JavaScript runtime we all deserve

    14 projects | news.ycombinator.com | 31 Oct 2022