Como camuflar seu WhatsApp Web usando Snippets JavaScript

Está no trabalho com seu WhatsApp Web aberto e cansou das pessoas bisbilhotando para ver com quem você está conversando? Neste artigo veremos como camuflar o aplicativo usando snippets em JavaScript com o auxílio do Google Chrome DevTools.

[ Hits: 14.144 ]

Por: Fábio Berbert de Paula em 07/01/2019 | Blog: https://fabio.automatizando.dev


Snippet para esconder as imagens de perfil e nomes



Ao todo criaremos dois snippets, um para camuflar as conversas e outro para restaurá-las. Nesta página veremos como esconder.

O primeiro passo será descobrir qual é a classe CSS usada para formatar as imagens de perfil dos grupos e pessoas de sua lista de conversas.

Clique com o botão direito sobre a imagem de perfil da conversa em aberto e selecione "Inspecionar":
Uma linha com a tag <img> será selecionada. O que nos interessa é o valor da propriedade "class", que neste caso é: Qgzj8 gqwaM

Usarei apenas o primeiro valor para construir meu SELECTOR, que é "Qgzj8".

Agora vamos repetir o processo, porém clicando com o botão direito sobre o nome da pessoa ou grupo da conversa em aberto. Uma linha com a tag <span> será selecionada. O que nos interessa é o valor da propriedade "class", que neste caso é: _1wjpf
Vamos então criar nosso primeiro snippet. Ainda na janela do DevTools, clique na aba "Sources", no canto esquerdo da tela você verá as opções "Page", "Filesystem" e uma setinha dupla para a direita indicando que há mais opções que não couberam na tela. Clique ali e você verá algumas outras opções, selecione a última, que é "Snippets".
Note que no print acima já existem alguns snippets que criei antes de escrever o artigo. Mas vamos criar um novo, from scratch aqui. Clique em "New snippet" e dê um nome de sua preferência, vou chamar o meu de: zap-esconder-chats

Comece criando uma função "esconder()" e declarando os dois seletores que irão dar match com as imagens de perfil e nomes:

function esconder() {

    //lista de elementos DOM que possuem a classe Qgzj8
    //classe usada para imagens de perfil/grupo
    lista_imagem = document.getElementsByClassName('Qgzj8');

    //lista de elementos DOM que possuem a classe _1wjpf
    //classe usada para nomes de perfil/grupo
    lista_nome = document.getElementsByClassName('_1wjpf');

}

Agora vamos adicionar um laço de repetição para cada lista.

Para a lista de imagens, irei remover a visibilidade do elemento, ou seja, fazer a foto sumir.

Já para a lista de nomes, irei substituir o nome pela string "aaaaaa".

No final do código devemos invocar a função esconder(), caso contrário ela nunca será executada.

Segue a nova versão do código:

function esconder() {

    //lista de elementos DOM que possuem a classe Qgzj8
    //classe usada para imagens de perfil/grupo
    lista_imagem = document.getElementsByClassName('Qgzj8');

    //lista de elementos DOM que possuem a classe _1wjpf
    //classe usada para nomes de perfil/grupo
    lista_nome = document.getElementsByClassName('_1wjpf');

    //para cada imagem, alterar sua visibilidade para 'hidden'
    for (var i=0; i<lista_imagem.length; i++) {
        lista_imagem[i].style.visibility = 'hidden'; 
    }

    //para cada nome, alterar seu conteúdo para 'aaaaaa'
    for (var i=0; i<lista_nome.length; i++) {
        lista_nome[i].innerHTML = 'aaaaaa'; 
    }
}

esconder();

Agora vamos testar o snippet. Clique com o botão direito sobre o nome do snippet e escolha a opção "Run" ou "Executar".

A janela do teu WhatsApp Web vai ficar assim:
Porém há um problema, a medida em que as pessoas vão lhe enviando mensagem e/ou você vai alternando entre os chats, os nomes e as imagens vão se restaurando.

Para resolver o problema iremos criar um setTimeout que irá chamar a função esconder() a cada 1 segundo. Dessa forma nem o bisbilhoteiro mais rápido do oeste será capaz de te espionar. Adicione a seguinte linha no final da função esconder():

escondeFunc = setTimeout(function() { esconder() }, 1000);

Nosso código final ficará assim:

function esconder() {

    //lista de elementos DOM que possuem a classe Qgzj8
    //classe usada para imagens de perfil/grupo
    lista_imagem = document.getElementsByClassName('Qgzj8');

    //lista de elementos DOM que possuem a classe _1wjpf
    //classe usada para nomes de perfil/grupo
    lista_nome = document.getElementsByClassName('_1wjpf');

    //para cada imagem, alterar sua visibilidade para 'hidden'
    for (var i=0; i<lista_imagem.length; i++) {
        lista_imagem[i].style.visibility = 'hidden'; 
    }

    //para cada nome, alterar seu conteúdo para 'aaaaaa'
    for (var i=0; i<lista_nome.length; i++) {
        lista_nome[i].innerHTML = 'aaaaaa'; 
    }

    //invocar a função esconder() a cada 1000 milissegundos
    escondeFunc = setTimeout(function() { esconder() }, 1000);
}

esconder();

Execute-o novamente e faça os devidos testes. Missão 1/2 concluída!!!

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Snippet para esconder as imagens de perfil e nomes
   3. Snippet para restaurar os chats
Outros artigos deste autor

Entrevista com um hacker, via Internet

Placa Intel PRO/Wireless 3945ABG no Debian Linux

GitHub Copilot - Inteligência Artificial no NeoVim

Criando um painel de rede em PHP

Viva o Linux finalmente de volta!

Leitura recomendada

Como minimizar CSS e Javascript via linha de comando

Diferenças de sites Web Standards

jQuery - Criando um simples jogo da velha

Web sites dinâmicos com Ajax + JSP + MySQL

XSS - Cross Site Scripting

  
Comentários
[1] Comentário enviado por blacksky em 28/01/2019 - 03:14h

Excelente post, parabéns pela dedicação e dedicação para encontrar a solução.
Existe um plugin similar desenvolvido que fica similar ao esquema acima.
https://chrome.google.com/webstore/detail/webchats-incognito-mode/lapmmaaniipbdelgagpdaplgfagojkfo/r...

[2] Comentário enviado por icarotovarish em 06/02/2019 - 13:37h

Muito útil! Obrigado por compartilhar!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts