
Documentando o funcionamento interno do agente comercial do Fingerprint Pro, não a biblioteca open-source FingerprintJS.
143 sinais nomeados. O bundle desempacotado. O formato de transmissão decodificado.
Execute no seu navegador · Leia a documentação · Mapa de sinais · Fontes dos coletores
| 143 sinais, uma linha para cada | superfícies tocadas, códigos de status, constantes comparadas, formato do valor |
| O agente, legível | nomes CRC32 resolvidos, tabelas descriptografadas, wrappers fundidos, bindings renomeados, hash-pinned |
| Cada coletor como um arquivo próprio | um sinal mais apenas os helpers que ele alcança, em vez de um bundle de 200 KB |
| Os coletores, executáveis | collect, buildPayload, frame, send a partir do console. Sem agente, sem rede |
| Formato de transmissão, ponta a ponta | JSON para bytes, deflate-raw acima de 1024, selado com uma chave que viaja dentro do frame |
Do que visitor_id é função | 7 campos quebram uma correspondência sozinhos, s56 é um bearer token, não uma impressão digital |
O repositório inteiro é publicado em
proofofbots.github.io/fingerprint-pro-internals:
o guia, cada mapa gerado como uma tabela filtrável, todo o código-fonte dos 143 coletores com realce de sintaxe
e o explorador ao vivo. npm run site compila tudo em docs/, que é o que o GitHub Pages
serve a partir de main. Abra docs/index.html via HTTP para pré-visualizar uma compilação localmente.
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
Para ler em vez de executar, comece pelo mapa de sinais para o inventário e pelas fontes dos coletores para o código por trás de qualquer sinal individual.
Para observar o agente em um site ao vivo, cole spy/fpspy.js no DevTools.
Para executar os coletores sem agente e sem rede, abra
o explorador, ou sirva o
repositório e abra collector/index.html para a tabela bruta.
Tudo aqui descreve um único build fixado: jsl/4.0.0, sha256 250c7dfe…, obtido em 2026-08-07. O
tenant lança novos builds e os caminhos rotacionam. npm run fetch verifica o pin e npm run diff diz
o que mudou.
sources mapeando o wire id
para o coletor, então o mapa são os rótulos do agente, não rótulos atribuídos. 143 IDs, 4 deles
agendados primeiro porque são lentos.
01-architecture,
04-collections56, o blob que o servidor emite na perna GET e o cliente reenvia, é um bearer token. Qualquer
payload que carregue um token vinculado responde como aquele visitante, independentemente do que o
dispositivo informe. Com ele vazio, sete campos quebram a correspondência de identidade sozinhos, e
o restante permanece íntegro até seis grupos deles mudarem ao mesmo tempo.
06-identityvisitor_id é funçãoO bundle distribuído não é redistribuído aqui. agent/agent.clean.js é um trabalho derivado: o mesmo
programa com a ofuscação removida e todos os bindings renomeados. agent/pin.json carrega o hash do
original para que qualquer pessoa possa baixá-lo e verificar.
As capturas e os arquivos de evidência são execuções contra o tenant público de demonstração da própria Fingerprint com sua chave de API pública. Entradas de armazenamento de terceiros, sessões de proxy e endereços IP são removidos antes que qualquer coisa chegue à árvore, e os frames armazenados são reconstruídos a partir dos payloads publicados, em vez de serem mantidos como foram enviados.
Domínio público, Unlicense. Use como quiser, em qualquer lugar, comercialmente ou não, sem necessidade de atribuição.
"Fingerprint" e a marca da impressão digital são marcas registradas da Fingerprint. Este projeto é não oficial e não é afiliado, endossado ou apoiado por eles, e o logotipo acima é um derivado da marca deles usado para identificar o que está documentado aqui.
Contato, incluindo solicitações de remoção e consultas legais: [email protected]
| diretório | o que contém |
|---|
docs/ | o relatório, mais o site gerado que o GitHub Pages serve |
agent/ | o bundle desofuscado e o worker, as tabelas de strings descriptografadas, o pin |
reference/ | mapas gerados: sinais, slices, schema, envelope, códigos, endpoints, observados |
collector/ | fp-collect.js, os coletores e o codec como um único módulo simples |
site/ | código-fonte do site gerado |
spy/ | o script de instrumentação do DevTools |
captures/ | três capturas de navegador do build fixado |
profiles/ | um perfil de dispositivo que compila para um payload |
evidence/ | linhas brutas por trás das descobertas de identidade e atribuição |
tools/ | o toolchain, uma tarefa por arquivo |
artifacts/ | tudo o que é gerado e não é commitado |