Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
rewerse-engineering — Reverse Engineering der Rewe-API in Go | Kitploit
Tools/GitHubGitHub/bytesizedmarius/rewerse-engineering
Reverse EngineeringScripting & AutomatisierungWebsicherheitKryptographieLernen & BildungAPI-Sicherheit
GitHubbytesizedmarius/rewerse-engineering

rewerse-engineering

Reverse Engineering der Rewe-API in Go

Repository anzeigen
82526vor 18h 12mVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

rewerse engineering

Projektlogo

Ein inoffizieller REWE-API-Client in Go und Python. Er implementiert die öffentlich zugänglichen (unauthentifizierten) Endpunkte, die die REWE-App zum Abfragen aktueller Rabatte (Angebote), Produkte, Märkte und Rückrufe verwendet.

Aktuell unterstützte APK-Version: 5.18.1 (Stand 29.09.26)

[!CAUTION] Die für die Kommunikation mit der rewe api erforderlichen Zertifikate sind nicht in diesem Repository enthalten. Du musst sie aus der APK extrahieren. Dokumentation & ein Extraktionsskript für Windows findest du im Verzeichnis docs.

Siehe auch rewerse-ui.

quick start

Zertifikate extrahieren aus der rewe apk; siehe docs für Anweisungen

Die Bibliothek verwenden:

  • Go: go get github.com/ByteSizedMarius/rewerse-engineering – docs
  • Python: pip install rewerse – docs

Oder die CLI installieren:

  • Lade ein Release herunter
  • Oder installiere via Go: go install github.com/ByteSizedMarius/rewerse-engineering/cmd@latest
  • Oder klone und baue: go build -o rewerse ./cmd

Überprüfen: rewerse --help

Beispiel: Aktuelle Rabatte für einen Markt abrufen:

$ rewerse discounts -market 840174

Top-Angebote in deinem Markt
	Haribo Goldbären oder Color-Rado, 0.77€
	Coca-Cola, Fanta oder Sprite, 0.99€
Obst & Gemüse
	Heidelbeeren, 1.49€
	Rispentomaten, 0.99€
...

intro

Im März 2024 begann Rewe, Cloudflare MTLS zu verwenden, um ihre api-Endpunkte abzusichern, was bestehende Lösungen unbrauchbar machte, die es beispielsweise ermöglichten, Rabatte für einen bestimmten Rewe-Markt abzurufen. Der Github-Nutzer @torbenpfohl war besessen hartnäckig genug, um das herauszufinden, das Zertifikat und sein Passwort zu finden. Dieses Repo basiert auf seiner Arbeit und zielt darauf ab, die erforderlichen Verfahren zu dokumentieren und einige der Endpunkte zu implementieren.

disclaimer

Dieses Projekt ist nicht mit REWE-ZENTRALFINANZ eG verbunden, wird von ihr nicht unterstützt oder gesponsert. „REWE" ist eine eingetragene Marke des jeweiligen Inhabers.

Dies ist ein inoffizieller Client, der auf öffentlich beobachtbarem Netzwerkverkehr aus der REWE-Mobile-App basiert. Er wird zu Bildungs- und Forschungszwecken bereitgestellt. Die zugrunde liegende API ist undokumentiert und kann sich jederzeit ohne Vorankündigung ändern oder nicht mehr funktionieren.

Die Nutzung dieser Software erfolgt auf eigenes Risiko. Nutzer sind dafür verantwortlich, sicherzustellen, dass ihre Nutzung den geltenden Nutzungsbedingungen entspricht.

contents

  • Eine grundlegende Go-Implementierung der rewe api ist im Verzeichnis pkg verfügbar; siehe pkg/readme für die api-Dokumentation der Go-Bibliothek einschließlich Anwendungsbeispielen.
  • Ein ffi-Python-Wrapper ist als rewerse auf PyPI verfügbar – siehe python/readme für Details und Quellcode.
  • Der Quellcode der CLI für die Go-Bibliothek befindet sich in cmd.
  • Releases sind in releases.

[!NOTE] Bitte beachte, dass dies eine unsignierte Go-Binary ist, die eine Verschlüsselung/Entschlüsselung von Zertifikaten durchführt und Webanfragen an die rewe api sendet, weshalb sie wahrscheinlich von deinem Antivirus gemeldet wird. Es gibt keine Abhängigkeiten, sodass du sie leicht selbst kompilieren kannst – was aus Sicherheitsperspektive immer empfohlen wird.

removed endpoints

Die App hat keinen Autocomplete-Endpunkt mehr und verwendet einfach die normale Produktsuche, daher sind Produktvorschläge weggefallen.

cli

Usage: ./rewerse.exe [flags] <command> [subcommand] [flags]

Flags:
  -cert <path>    Certificate file (default: certificate.pem)
  -key <path>     Key file (default: private.key)
  -json           Output as JSON

Commands:
  markets         Search and get market details
  products        Search, browse, and get product info
  discounts       Get market discounts
  categories      Get product categories
  recipes         Search recipes, get details and popular terms
  recalls         Get product recalls
  services        Get service portfolio by zip

Examples:
  ./rewerse.exe markets search -query Köln
  ./rewerse.exe products search -market 831002 -query Milch
  ./rewerse.exe products category -market 831002 -slug obst-gemuese
  ./rewerse.exe discounts -market 840174
  ./rewerse.exe categories -market 831002
  ./rewerse.exe services -zip 50667
  ./rewerse.exe recipes search -term Lachs -difficulties 1
  ./rewerse.exe recipes details -id blt4aaa7361ba69f8c8

Run './rewerse.exe <command>' for subcommand help.

tests

Tests befinden sich in pkg/*_test.go. Es gibt zwei Arten:

  • Unit-Tests unmarshallen JSON-Payloads in unsere Structs. Die Payloads stammen aus echten API-Antworten. Diese laufen ohne Zertifikate und erkennen Typabweichungen zwischen unseren Structs und den tatsächlichen API-Formen. go test ./pkg/ -run Unmarshal
  • Integrationstests greifen auf die Live-API zu und erfordern Zertifikate. Sie werden automatisch übersprungen, wenn keine Zertifikate gefunden werden. go test ./pkg/

Wenn du eine Struct-Änderung beiträgst, ziehe bitte in Betracht, einen Unmarshal-Test hinzuzufügen oder zu aktualisieren. Verwende eine echte API-Antwort, wenn du eine erfassen kannst, andernfalls ist ein synthetischer JSON-Payload, der das tatsächliche API-Verhalten widerspiegelt, in Ordnung.

contributing

Öffne gerne GitHub-Issues für Vorschläge, Fragen, Bugs. PRs willkommen. E-Mail: rewe at byte dot rest.

attribution

  • https://github.com/foo-git/rewe-discounts
  • https://github.com/torbenpfohl/rewe-discounts
  • https://github.com/egonelbre/gophers
Tool herunterladen