;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Espionagem? Entenda os códigos que mostram desvios de chamada no celular

Estúdio Rebimboca/UOL
Imagem: Estúdio Rebimboca/UOL

De Tilt, em São Paulo*

30/06/2021 17h49Atualizada em 30/06/2021 18h03

Você já ouviu falar sobre o código *#21# no telefone? Vira e mexe a combinação volta a circular pelas redes sociais e WhatsApp acompanhada de afirmações como: digite isso no celular agora e descubra se existe alguém espionando você. Mas isso realmente funciona? Bom, mais ou menos.

De acordo com os alertas que estão viralizando no Instagram, TikTok, Telegram, entre outros, o código deve ser digitado na parte da discagem telefônica. Em resposta, ele exibe se existem ligações sendo desviadas do seu celular. Para desativar, é preciso usar o ##002# no aparelho.

Os códigos são reais e mostram, sim, se suas chamadas e SMS estão sendo redirecionados para outro número. Mas esse desvio de rota nem sempre é sinal de que você foi grampeado. Pode ser só caso de falta de sinal detectado pelo aparelho.

Entendendo a fama

Tilt acompanhou nesta quarta-feira (30) um vídeo no TikTok que dizia ensinar as pessoas "como descobrir se o seu celular é vigiado por alguém". Até por volta das 17h30, ele tinha somado 1,7 milhões de visualizações. E a internet está cheia de virais como ele.

Em geral, os vídeos seguem a mesma linha dizendo: se você discar *#21#, verá uma tela com informações sobre desvio de chamadas. Se tudo estiver desativado, o celular não está sendo espionado. Se alguma coisa estiver ativada, é preciso discar ##002# para cancelar o desvio.

Espionagem ou falta de sinal?

Como já dito, os códigos funcionam, mas é preciso cuidado na hora de avaliar o que pode estar acontecendo. Em situações regulares, pode aparecer um número, por exemplo, nas informações de "voz", "fax" e "sincronizar" e "assíncrono". Especialmente se você estiver numa região com pouco sinal.

Isso é normal e se refere àqueles momentos em que o celular está fora de área e recebe uma ligação. Nesses casos, a chamada é direcionada para a operadora (responsável pelo número que aparece na tela), que libera aquela mensagem já bem conhecida de que "o número discado não está disponível".

Mas, em outros casos, pode indicar, sim, que alguém está de olho nas suas conversas. Uma pessoa mal-intencionada pode se aproveitar de um descuido seu, pegar o seu celular e ela mesma configurar o desvio de chamada para outro aparelho. Com isso, ela teria o a todas as suas chamadas sem você perceber.

Esse tipo de "grampo caseiro" é utilizado em investigações informais, como em suspeitas de traição entre casais. Segundo Paulo Gontijo, professor de segurança cibernética do IGTI (Instituto de Gestão e Tecnologia da Informação), porém, dificilmente são cibercriminosos querendo aplicar algum golpe.

"Esse não é um tipo de ação que incita muito os hackers. É um ataque para relacionamentos, é uma ação direcionada e com um objetivo de validar alguma desconfiança", afirmou em entrevista recente a Tilt.

Para o pesquisador Rodolfo Avelino, da UFABC (Universidade Federal do ABC) e professor do Insper, embora esse tipo de monitoramento de pessoas tenha migrado ao longo do tempo para aplicativos de mensagem, como WhatsApp e Telegram, todo mundo, como regra geral, precisa ficar sempre atento aos seus aparelhos.

"O primeiro o é manter o controle no celular e contar com recursos de proteção, como senhas e o uso de digital [biometria]. E, na usabilidade, desconfiar de mensagens que não estão esperando e nunca clicar nos links", aconselha.

Manter uma certa frequência de controle sobre os dados de desvio do seu celular pode ser uma boa. Caso apareça algo ativado que você não reconheça após digitar *#21#, opte por inserir ##002# para cancelar os desvios.

Função Siga-me

Outros códigos que "escondem" funções no celular funcionam tanto no Android quanto no iOS e com qualquer operadora. E eles nem são tão secretos assim. Quem viveu o auge do telefone fixo deve se lembrar do recurso "Siga-me", uma forma de redirecionar a ligação do telefone fixo para o celular (ou vice-versa). Apesar de já não ser tão usado como antigamente, a função continua sendo disponibilizada pelas operadoras de telefonia.

Avelino destaca que pessoas comuns deixaram de usar o recurso por não saberem que ela existe ou por pensarem que há algum tipo de cobrança por trás dela. "Hoje, [o Siga-me] está mais a questões comerciais, em situações em que um profissional não pode perder uma ligação, ou quando a bateria está chegando ao fim e ele precisa ter um número ao qual direcionar o contato", explica.

Quem deseja usar o recurso não precisa nem ligar para a operadora para ativá-lo. Pode á-lo com facilidade a partir de códigos:

  • Quer desviar todas as ligações do seu celular? Digite *21* seguido do número que vai recebê-las e um #;
  • Quer desviar só aquelas que você não conseguir atender? Digite *61* seguido do número que vai recebê-las e um #;
  • Quer desviar a ligação recebida quando seu número estiver ocupado? Digite *67* seguido do número que vai recebê-la e um #;
  • Por último, se você quer desviar as ligações para outro número quando o seu tiver fora da área de cobertura, digite *62* seguido do número que vai recebê-las e um #.

Outra opção é ar as Configurações de Chamadas no app de discagem telefônica do seu celular, depois "Configurações de encaminhamento de chamadas" e escolher o que deseja direcionar entre "Sempre encaminhar", "Quando Ocupado", "Quando não atendida" e "Quando fora de área". Esse caminho pode ser diferente dependendo do modelo do celular.

*Com reportagem de Marcos Bonfim