Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Código javascript com números ao invés de letras

Olá,

Eu estava lendo o código fonte de um site quando me deparei com o seguinte código

var _0x537086 = function() {
        var _0x22b4dc = {
            '\x76\x6c\x4a\x6b\x64': function(_0x2c5ff6, _0x31691e) {
                return _0x2c5ff6 + _0x31691e;
            },
            '\x4b\x4e\x68\x4f\x79': _0x25604f['\x6c\x6c\x5a\x69\x43'],
            '\x4d\x4e\x67\x48\x76': function(_0x28e524, _0x58a0db) {
                return _0x25604f[_0xc788('0x43', '\x53\x35\x42\x45')](_0x28e524, _0x58a0db);
            },
            '\x72\x64\x53\x55\x68': '\x4d\x56\x56\x73\x47'
        };
        if ('\x68\x4d\x79\x4c\x4c' === '\x68\x4d\x79\x4c\x4c') {
            var _0x122c21 = !![];
            return function(_0x19ac3e, _0xa6e378) {
                var _0x5ac18f = {
                    '\x6e\x67\x4b\x4a\x68': function(_0xab8f67, _0x12d691) {
                        return _0x22b4dc['\x4d\x4e\x67\x48\x76'](_0xab8f67, _0x12d691);
                    },
                    '\x53\x6c\x70\x45\x73': _0xc788('0x44', '\x33\x5b\x44\x7a'),
                    '\x4f\x68\x48\x53\x64': function(_0x1d4646, _0x5cfe8d) {
                        return _0x1d4646 === _0x5cfe8d;

Confesso que não faço a mínima ideia do que isso seja. Têm como "Traduzir"? E por que alguém faria isso com seu código javascript?

1 resposta
solução!

Oi Wilton tudo bem?

Algumas pessoas querem esconder seu javascript por julgarem que tem algo secreto como senhas ou então por ter um código muito legal que não querem que copiem.

Eles usam sites como esse https://obfuscator.io/ que criptografa e embaralha o código.

Mas se você debugar no navegador pode conseguir fazer uma engenharia reversa. O obfuscator.io não tem um decodificador, não sei se outros sites tem.

O texto \x76\x6c\x4a\x6b\x64 está escrito em representação unicode.

"Hello World!" é equivalente a "'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21".

Cada \x99 é uma letra. Aqui está uma tabela unicode que te ajuda a decodificar https://unicode-table.com/pt/ e um conversor https://www.online-toolz.com/tools/text-unicode-entities-convertor.php (dá erro se jogo o código inteiro, tem que ser string por string).

As variáveis , funções, objetos escritas como _0x537086 são sempre começadas por _0x e depois vem um número aleatório de 000000 a ffffff em hexadecimal. Para o programa javascript não é importante o computador saber o que significa o nome de um objeto, para ele dar um replace all com outro nome já é o suficiente.

Para tornar legível o código é só substituir todos esses nomes por nome de cidades/paises/gente e depois assim que for lendo o código substituir pelo que você acha que faz sentido.

Você poderia criar uma página javascript que substitua \x99 pela letra corresponte. Mas já adianto eu traduzi na mão um pedaço do código e não fez sentido nenhum kkkk. As palavras unicode também estão embaralhadas .

Espero ter ajudado!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software