# marin-m/pbtk

A toolset for reverse engineering and fuzzing Protobuf-based apps

Repository: https://github.com/marin-m/pbtk
Canonical: https://ross.abutalabs.com/products/pbtk
Homepage: https://fossplant.re/wiki/Main_page
Language: Python
License: GPL-3.0
License Family: copyleft
Topics: reverse-engineering, protobuf, decompiler, fuzzing, python
Last push: 2026-08-26T09:38:17+00:00

## Health v2 (maintenance only)
Score: 99/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 98, longevity 100
- inputs: {"age_days": 3487, "days_push": 7, "days_rel": 12, "gap_med": 11, "n_releases_24m": 8}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1679, forks 201 (observed 2026-08-28T04:05:21.367487+00:00)

## What it is
pbtk (Protobuf toolkit) is a Python-based set of scripts with a unified GUI for extracting Protobuf data structures from programs (Java runtimes, binaries with reflection metadata, web apps) back into readable .proto files. It also lets users edit, replay, and fuzz data sent to Protobuf network endpoints through a graphical field editor.

## Use cases
- extract .proto definitions from an Android APK
- recover protobuf schemas from a compiled binary
- fuzz a protobuf-based network endpoint
- edit and replay protobuf messages sent to a server
- reverse engineer an app's network protocol
- decompile protobuf structures with Proguard support

## When to choose
- you need to reverse engineer Protobuf structures from Java/Android apps or native binaries
- you want a GUI to live-edit and fuzz Protobuf messages against endpoints
- you need to recover .proto files from apps lacking source

## When to avoid
- you need to extract schemas from modern web apps using JsProtoUrl (needs update)
- you work with very recent Java protobuf obfuscation in new APKs
- you need a maintained, actively developed tool (project is stable but ageing)

## Facets
- artifact type: cli-tool
- maturity: maintenance
- function: reverse-engineering, fuzzing, serialization, parser, gui
- domain: reverse-engineering, security, developer-tools, parsers
- platform: windows, python, cli
- tags: protobuf, android, apk-analysis, protocol-analysis, security-audit, linux, macos

## Member repositories
- marin-m/pbtk (main) score 99

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:21.367487+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:41:31.671635+00:00, confidence not recorded.
  - readme: https://github.com/marin-m/pbtk (fetched 2026-08-28T04:05:21.367487+00:00, sha 11a8c4976abe)
  - homepage: https://fossplant.re/wiki/Main_page (fetched 2026-08-29T11:14:52.247680+00:00, sha a0ed9079bc39)
  - registry_pypi: https://pypi.org/pypi/pbtk/json (fetched 2026-08-29T11:14:52.252472+00:00, sha e67fadbe18b1)
- Data as of 2026-08-30T08:39:29.467469+00:00.
