Emuladores e fazendas de celulares em apps de recompensa: como pegá-los sem bloquear usuários reais
Um computador rodando dez emuladores de Android pode parecer dez celulares em dez casas diferentes. As fazendas de celulares vão além, com prateleiras de aparelhos reais. Este guia explica como os dois funcionam, as pistas de hardware que eles não conseguem esconder e uma forma justa de agir.
Resposta curta
Pegue emuladores e fazendas de celulares comparando o que o hardware informa com o que o dispositivo diz ser: um modelo de celular com uma GPU que ele nunca traz de fábrica, perfis padrão de emulador, GPUs por software e dispositivos zerados que reaparecem. Bloqueie perfis claros de emulador no clique na oferta, mande uma divergência isolada para revisão e aja sobre o grupo vinculado.
- Sinal mais claro
- Um par impossível de modelo e GPU, como um Pixel 8 que informa uma GPU Adreno.
- Pistas de emulador
- Modelos padrão de emulador, builds de Android muito antigas com Chrome atual, GPUs por software, telas com tamanho de desktop em um modelo de celular.
- Fazendas de celulares
- Reutilizam hardware, apagam o armazenamento, compram modelos baratos exclusivos da China e completam as mesmas ofertas na mesma ordem.
- Evite
- Banir marcas inteiras ou bloquear por uma única divergência de modelo.
Por que emuladores e fazendas miram apps de recompensa
Ofertas mobile pagam bem. Instale um jogo, chegue ao nível 20 e ganhe alguns dólares. Os anunciantes pagam esse valor porque esperam um jogador real em um celular real. A fazenda finge ser o jogador e fica com o pagamento.
Existem dois esquemas principais. O primeiro é o emulador: softwares como LDPlayer, Nox, MEmu, BlueStacks ou Genymotion, que rodam Android em um PC. Um computador potente consegue rodar vários ao mesmo tempo. O segundo é a fazenda de celulares: prateleiras de celulares reais e baratos, muitas vezes resetados entre uma conta e outra, às vezes controlados por scripts.
Os dois buscam o mesmo resultado: muitas contas, cada uma parecendo uma pessoa diferente em um dispositivo diferente, cada uma completando as mesmas ofertas que pagam bem. A rede estorna as conversões semanas depois, muitas vezes quando você já pagou.
O que o dispositivo diz ser e o que ele informa
Todo navegador ou webview diz o que é. O user agent e os client hints trazem um nome de modelo, como Pixel 8 ou SM-S918U. Essa informação é fácil de trocar: as ferramentas das fazendas mudam o nome do modelo com um clique.
O hardware é mais difícil de falsificar. Pelo WebGL, o dispositivo informa o seu chip gráfico (GPU). Celulares reais saem de fábrica com uma GPU conhecida. Um Pixel 8 usa uma GPU Mali. Um Samsung Galaxy S americano usa um chip Snapdragon com GPU Adreno. Quando o modelo declarado e a GPU informada não batem, o dispositivo está mentindo sobre o que é.
| Modelo declarado | GPU informada | Veredito |
|---|---|---|
| Pixel 8 | Mali-G715 | Coerente, um Pixel 8 real sai de fábrica com essa família |
| Pixel 8 | Adreno 740 | Falsificado, o Pixel 8 nunca vem com Adreno |
| Pixel 5 | Mali-G76 | Falsificado, o Pixel 5 vem com Adreno |
| SM-S918U (Galaxy dos EUA) | Mali-G710 | Falsificado, os modelos dos EUA usam Snapdragon e Adreno |
| iPhone | Adreno ou Mali | Falsificado, iPhones informam uma GPU da Apple |
| Celular Android | GPU da Apple | Falsificado, muitas vezes um iPhone ou um Mac disfarçado |
Perfis padrão de emulador
Emuladores precisam informar algum modelo de celular. A maioria dos usuários nunca muda o padrão, e os padrões são bem conhecidos. Vários emuladores populares se apresentam como modelos Samsung do mercado coreano (o sufixo N, como SM-G977N) ou como modelos antigos da Asus e da vivo. Imagens de desenvolvimento informam nomes como sdk_gphone ou vbox86.
Outra pista é a build do Android. Emuladores costumam rodar versões antigas do Android, como 5.1 ou 7.1, com um número de build que só existe na imagem do emulador. Junte isso a uma versão moderna do Chrome e você tem uma combinação que celulares reais quase nunca apresentam.
- Modelo Samsung coreano em um IP dos EUA ou da Europa. Possível para quem está viajando, comum em emulador.
- Build de Android muito antiga com Chrome atual. Celulares reais tão antigos raramente recebem versões novas do Chrome.
- GPU por software, como SwiftShader ou llvmpipe. Um celular sem chip gráfico de verdade é uma máquina virtual.
- Tela com tamanho de desktop em um modelo de celular, ou um celular que diz ter mouse e nenhuma tela sensível ao toque.
Modelos exclusivos da China usados fora de lá
Alguns celulares são vendidos apenas na China continental. Exemplos: modelos OPPO e OnePlus com códigos como PJx, modelos Xiaomi terminados em C, modelos vivo terminados em A e modelos Huawei ou Honor terminados em -AN00 ou -AL00. Esses modelos saem baratos quando comprados em grande quantidade e são comuns em fazendas de celulares.
Um modelo exclusivo da China se conectando dos Estados Unidos não prova fraude. As pessoas viajam e importam celulares. Mas quando muitas contas do seu site informam modelos exclusivos da China a partir de IPs dos EUA, do Reino Unido ou do Canadá, é um forte sinal de que o tráfego vem de uma fazenda e os IPs vêm de um proxy.
Resets de dispositivo e limpeza do armazenamento
As fazendas sabem que os sites guardam um ID de dispositivo. Por isso apagam os dados do app, limpam o navegador ou resetam o celular antes de cada conta nova. Surge um ID novo, e o site acha que está diante de um dispositivo novo.
O reset apaga o ID armazenado, mas o hardware continua o mesmo. A mesma GPU, o mesmo tamanho de tela, a mesma build do Android e as mesmas fontes instaladas voltam toda vez. Um dispositivo com o armazenamento vazio, mas com as mesmas características de hardware de um dispositivo que você viu uma hora antes, quase certamente foi zerado.
- Armazenamento vazio, hardware conhecido. Sinalize e vincule ao dispositivo anterior.
- Muitas contas por perfil de hardware em pouco tempo, cada uma com um ID novo.
- Mesma ordem de ofertas em todas essas contas, sinal de um único script ou de um único operador.
Aja sem bloquear usuários reais
Sinais de dispositivo são poderosos, mas não perfeitos. Fingerprints de navegador podem ser falsificados, e celulares baratos às vezes informam valores estranhos. Uma política justa usa esses sinais para frear o dinheiro, não para punir com base em uma única pista.
- Bloqueie no clique na oferta só perfis claros de emulador e GPUs por software. Jogadores reais em celulares reais não são afetados.
- Revise, não bloqueie, quando houver uma única divergência de modelo. Coloque o saque em uma fila com as evidências.
- Aja sobre o grupo. Se dez contas compartilham um mesmo perfil falsificado, decida sobre as dez juntas.
- Mantenha uma lista de permissões. Testadores, equipe e usuários conhecidos e confiáveis com hardware incomum não deveriam ser sinalizados toda semana.
- Meça primeiro. Rode as checagens sem bloquear por alguns dias e veja quantos saques elas afetariam.
Como o CashoutGuard automatiza isso
O coletor JavaScript do CashoutGuard lê o modelo, a GPU, a tela e a build. Seu servidor chama /v1/evaluate no cadastro, no clique na oferta, na conversão e no saque, e recebe uma pontuação de 0 a 100 com os motivos.
device_spoofedquando o modelo declarado e a GPU não podem pertencer ao mesmo celular.emulator_profilepara modelos padrão de emulador e builds de Android que só existem em emuladores.emulator_or_vmeautomation_detectedpara máquinas virtuais e navegadores controlados por script.device_market_mismatchpara modelos exclusivos da China usados fora da China.storage_cleared_reappearededevice_shared_with_accountspara dispositivos zerados e hardware compartilhado.
A tela Redes de fraude vincula as contas por dispositivo, endereço de pagamento, e-mail e IP, então uma fazenda aparece como um único grupo. Sites novos começam no modo sombra, para você ver os resultados antes de qualquer bloqueio. Leia a documentação ou compare os planos na página de preços.
Apps Android nativos: checagens que um navegador não consegue fazer
Um app de recompensa feito para Android enxerga mais do que uma página web. O SDK Android do CashoutGuard roda dentro do seu app e checa o próprio celular: propriedades e arquivos de emulador, sistema com root, frameworks de hooking como Frida e Xposed que falsificam o que o app lê, um depurador, apps de localização falsa e uma VPN rodando no aparelho, mesmo quando o IP parece residencial.
Ele também dá a cada celular um ID que sobrevive à desinstalação e reinstalação do app, derivado do Android ID com a sua chave como salt, de modo que não serve para mais ninguém. Quem opera uma fazenda e reseta o app para criar uma conta nova volta como o mesmo dispositivo, e a conta nova fica vinculada às antigas.
| Checagem | Código de motivo | Por que importa em um app de recompensa |
|---|---|---|
| Propriedades, arquivos e hardware de emulador | emulator_or_vm | Fazendas de emuladores fazem instalações pagas e ofertas de playtime 24 horas por dia |
| Celular com root | device_rooted | O root permite que um app falsifique o ID do dispositivo e a localização; fraco sozinho, forte junto com outros sinais |
| Frida, Xposed ou Substrate no app | automation_detected | Hooks reescrevem o que o seu app vê, inclusive todas as outras checagens |
| VPN rodando no celular | ip_vpn | Libera ofertas de países mais ricos mesmo quando o IP de saída parece residencial |
| O mesmo celular depois de uma reinstalação | device_shared_with_accounts | Uma pessoa, muitas contas, um pagamento de cada vez |
A integração é uma chamada antes de cada pagamento: o app coleta um request_id no cadastro, no clique na oferta e no saque, e o seu servidor consulta /v1/evaluate. Veja as integrações para o código em Kotlin.