
Dokumentation der Interna des kommerziellen Agents von Fingerprint Pro, nicht der Open-Source-Bibliothek FingerprintJS
143 Signale benannt. Das Bundle entpackt. Das Wire-Format dekodiert.
Im Browser ausführen · Dokumentation lesen · Signalübersicht · Collector-Quellen
| 143 Signale, je eine Zeile | berührte Surfaces, Statuscodes, verglichene Konstanten, Wertstruktur |
| Der Agent, lesbar | CRC32-Namen aufgelöst, Tabellen entschlüsselt, Wrapper gefaltet, Bindungen umbenannt, per Hash gepinnt |
| Jeder Collector als eigene Datei | ein Signal plus nur die Helfer, die es erreicht, statt eines 200-KB-Bundles |
| Die Collector, ausführbar | collect, buildPayload, frame, send aus einer Konsole. Kein Agent, kein Netzwerk |
| Wire-Format, Ende zu Ende | JSON zu Bytes, deflate-raw über 1024, versiegelt mit einem Schlüssel, der im Frame mitgeliefert wird |
Wovon visitor_id eine Funktion ist | 7 Felder brechen einen Abgleich allein, s56 ist ein Bearer-Token, kein Fingerabdruck |
Das gesamte Repository ist veröffentlicht unter
proofofbots.github.io/fingerprint-pro-internals:
der Leitfaden, jede generierte Karte als filterbare Tabelle, alle 143 Collector-Quellen mit Syntax-Hervorhebung,
und der Live-Explorer. npm run site baut es in docs/, was GitHub Pages von main aus ausliefert.
Öffne docs/index.html über HTTP, um einen Build lokal zu testen.
npm install
npm run fetch # download the pinned bundle, verify its hash
npm run all # deobfuscate, verify, regenerate every map
npm run site # rebuild the documentation site into docs/
npm run capture # serve the capture page, open it once per browser
Um zu lesen statt auszuführen, beginne bei der Signalübersicht für das Inventar und den Collector-Quellen für den Code hinter einem einzelnen Signal.
Um den Agenten auf einer Live-Website zu beobachten, füge spy/fpspy.js in DevTools ein.
Um die Collector ohne Agent und ohne Netzwerk auszuführen, öffne
den Explorer, oder stelle das
Repository bereit und öffne collector/index.html für die Roh-Tabelle.
Alles hier beschreibt einen fest gepinnten Build: jsl/4.0.0, sha256 250c7dfe…, geholt am 07.08.2026. Der
Tenant liefert neue Builds aus und die Pfade rotieren. npm run fetch prüft den Pin und npm run diff sagt,
was sich geändert hat.
sources-Tabelle, die die Wire-ID dem Collector zuordnet, die Karte besteht also aus den Bezeichnungen des Agenten, nicht aus zugewiesenen. 143 IDs, 4 davon werden zuerst eingeplant, weil sie langsam sind.
01-architecture,
04-collections56, der Blob, den der Server über den GET-Zweig ausgibt und den der Client wiedergibt, ist ein Bearer-Token. Jeder Payload, der ein gebundenes trägt, wird als dieser Besucher beantwortet, egal was das Gerät meldet. Ist es leer, brechen sieben Felder den Identitätsabgleich für sich allein, und der Rest hält, bis sich sechs Gruppen davon gleichzeitig ändern. 06-identityvisitor_id eine Funktion istDas ausgelieferte Bundle wird hier nicht weiterverteilt. agent/agent.clean.js ist abgeleitete Arbeit: dasselbe Programm ohne die Obfuskation und mit umbenannten Bindungen. agent/pin.json trägt den Hash des Originals, sodass jeder es abrufen und prüfen kann.
Die Captures und Evidenzdateien sind Läufe gegen den eigenen öffentlichen Demo-Tenant von Fingerprint mit dessen öffentlichem API-Schlüssel. Einträge von Drittanbieter-Speichern, Proxy-Sitzungen und IP-Adressen werden entfernt, bevor etwas in den Baum landet, und die gespeicherten Frames werden aus den veröffentlichten Payloads neu aufgebaut, statt wie gesendet aufbewahrt zu werden.
Public Domain, Unlicense. Benutze es, wie du willst, überall, kommerziell oder nicht, ohne dass eine Namensnennung erforderlich ist.
„Fingerprint“ und das Fingerprint-Zeichen sind Marken von Fingerprint. Dieses Projekt ist inoffiziell und weder mit ihnen verbunden, noch von ihnen gebilligt oder unterstützt, und das obige Logo ist eine Ableitung ihrer Marke, die zur Identifizierung des hier Dokumentierten dient.
Kontakt, einschließlich Löschungsaufforderungen und rechtlicher Anfragen: [email protected]
| Verzeichnis | Inhalt |
|---|
docs/ | das Write-up, plus die generierte Website, die GitHub Pages ausliefert |
agent/ | das deobfuskierte Bundle und der Worker, die entschlüsselten String-Tabellen, der Pin |
reference/ | generierte Karten: Signale, Slices, Schema, Envelope, Codes, Endpunkte, beobachtet |
collector/ | fp-collect.js, die Collector und der Codec als ein einfaches Modul |
site/ | Quelle der generierten Website |
spy/ | das DevTools-Instrumentierungsskript |
captures/ | drei Browser-Captures des gepinnten Builds |
profiles/ | ein Geräteprofil, das zu einem Payload kompiliert |
evidence/ | Rohzeilen hinter den Identitäts- und Zuordnungsbefunden |
tools/ | die Toolchain, ein Job pro Datei |
artifacts/ | alles Generierte, das nicht eingecheckt ist |