Esta é uma introdução sobre como começar a entrar em jogos de decodificação. Embora existam muitas ferramentas e orientações úteis na Internet, muitos novos decodificadores podem facilmente ficar sobrecarregados ao descobrir quais
ferramentas usar ou por onde começar quando receberem algo como "IXRuZW1uZXRoZ2lsbkUgZWh0IG5pb0o=". Esta cartilha mostrará "como criar estratégias" quando for apresentado um problema de decodificação com exemplos.
No final, você terá o entendimento básico do que está acontecendo e poderá usá-lo para experimentar e aprender o grande número de ferramentas de decodificação disponíveis na Internet.
Como vamos fazer:
Então você pode usar ferramentas como:
Para descobrir como decodificar, primeiro você tem que saber como as mensagens são codificadas. Para facilitar as coisas, você pode pensar na codificação como uma combinação de 2 processos:
A seguir, um rápido resumo de algumas das técnicas básicas. A criptografia geralmente pode ser considerada como uma das duas técnicas: (a) algum tipo de reorganização da ordem e (b) substituição de letras por outras. Dada uma mensagem, você pode esconder seu significado fazendo coisas como:
Em uma cifra de salto você escreve a mensagem a cada n caracteres. Então id n=4: torna-se Como criptografar facilmente: escrever a mensagem em várias linhas, cada uma com n caracteres. Assim, com n=4: abcdefgh aebfcgdh
Em seguida, leia as colunas, da esquerda para a direita:
Para decodificar, escreva sua mensagem em linhas e leia as colunas. Aqui você pode ter que tentar diferentes combinações para fazê-lo funcionar, ou usar algo como a ferramenta
de salto da MultiDec para fazer muitas combinações ao mesmo tempo.
Por exemplo, está escrito como:
ae bf cg dh aebfcgdh
Em seguida, lendo as colunas: abcdefgh
Há muitas variantes para essa cifra, e é por isso que você verá muitas online. Por exemplo, você pode usar uma senha para alterar n depois de cada caractere, você tem um transposition cipher. Você também pode mudar n de uma maneira inteligente usando Rail fence cipher. Além disso, nem sempre você precisa ir da esquerda para a direita, de cima para baixo, mas a direção pode mudar, bem como em uma route/path cipher. E há muitos, muitos, mais. O ponto aqui é que você pode precisar forçar a força bruta tentando diferentes técnicas até que um "clique". Felizmente, existem muitas ferramentas online para experimentar.
regex.ingress.codes para verificar se você tem uma Keyword em seu texto
Às vezes você recebe um monte de letras e número, mas não sabe se você está na etapa final ou que tipo de rearranjo é necessário. Há um truque que você pode usar! Se você tem uma lista de possíveis palavras que existem em seu código,
você pode usar expressões regulares (regex) para pesquisar a lista de possíveis keywords que usam as letras que você tem! Por exemplo, em Ingress, os códigos
diários têm o formato. Portanto, você pode usar regex para ver se uma keyword está presente. A lista de keywords são mantidas em vários lugares (por exemplo, ingress.codes ou seu repositório github),
para que você possa baixar e manter a lista você mesmo ou usar um site na internet como regex.ingress.codes. Para pesquisar usando regex, digite onde você substitua o 6 pelo número de letras
que aparecerão na keyword. Mais informações disponíveis aqui em ingress.codes e aqui decodeingress.me.
aaa##keyword###aa ^[yourlistofcharacters]{6}$ {6}
Como exemplo: depois de decodificar e descriptografar, você começa e quer saber se há uma keyword nela. Há 5 números, então combina com o formato. Existem 13 letras, 5 das quais fazem parte do prefixo e sufixo, então a keyword
tem 8 letras de comprimento. Por isso, entramos em regex.ingress.codes. Ele encontrará todas as keywords que têm 8 caracteres e são compostas apenas das letras em nossa sequência de texto.
O resultado: Então sabemos que temos uma boa senha com uma keyword de timezero e só temos que descobrir como reorganizar as letras!
te68o5erezim2tk8uf > ^[te68o5erezim2tk8uf]{8}$ > timezero
Você pode criptografar uma mensagem "girando" um certo número de caracteres. Aqui, "girar" significa trocar cada letra por n letras no alfabeto. A mais comum é ROT13 ou Cipher César. Descriptografia
e criptografia são as mesmas, é só que a soma total de rotações de descriptografia e criptografia tem que ser igual a 26. Assim, a criptografia ROT1 pode ser descriptografada com ROT25. É por
isso que o ROT13 é popular - é criptografado e descriptografado da mesma forma. Alternativamente, você pode criptografar uma mensagem girando n para a esquerda e, em seguida, decodificar girando n para a direita.
HAL IBM h i z a
Você pode mudar o n da substituição com cada personagem. Por exemplo, se você tiver uma senha, você pode usá-la para criptografar e descriptografar uma mensagem. Isso se chama Vigenere cipher.
Posso usar a senha para criptografar uma mensagem. Primeiro, converta os números correspondentes das letras que compõem a senha, e em seguida, gire a mensagem pelos números correspondentes para a direita.
hello
this is a message
hello h,e,l,l,o
8,5,12,12,15
msg: t h i s i s a m e s s a g e
ROT: 8 5 12 12 15 8 5 12 12 15 8 5 12 12
out: a l t d w z e x p g z e r p
Então a senha está criptografada. Para descriptografar, gire cada caractere na mensagem criptografada para a esquerda pelo número correspondente da senha. this is a message hello altd wz e xpgzerp
Como cifras de salto, há muitas variantes, e às vezes abordagens de força bruta são necessárias.
Outro método de substituição comum é inverter a ordem do alfabeto. Isso é conhecido como Cifra Atbash: a z b y
Acima vimos que a criptografia usa cifras para alterar a ordem dos caracteres ou substituir um caractere por outro. Abaixo mostraremos técnicas onde você pode usar diferentes métodos de codificação para representar uma mensagem usando diferentes símbolos ou significados por trás dos caracteres. Portanto, você pode representar uma mensagem alterando a codificação da mensagem. Pense nisso como mudar o conjunto de caracteres de letras e números padrão (a-z A-Z 0-9, ou 62 caracteres diferentes) para outra coisa, ou os mesmos caracteres que significam outra coisa (por exemplo, em hexadecimal, significa "dez"). Há muitas, muitas maneiras de fazer isso, mas aqui estão algumas comuns:
O código Morse é uma maneira extremamente comum de representar letras e números como pontos, traços e espaços.
Há uma maneira padrão de representar letras em binário para que os computadores possam entendê-las chamada "ASCII". Isso representa cada personagem como um número. Para obter mais informações, consulte wikipedia ou procure tabelas ASCII. Uma vez que você tenha esse número, você pode representar esse número de muitas maneiras diferentes: como um número binário, número decimal, número octal ou
número hexadecimal. Por exemplo, está em decimal, que está em hexadecimal (hex), em octal, e em binário. Existem muitas ferramentas online para codificar e decodificar para você. Por exemplo, veja as ferramentas de decodeingress.me.
91 61 141 01100001
Como você reconhece um código ASCII em uma base específica?
Você pode representar cada letra do alfabeto com o número da ordem do alfabeto. Por exemplo, a primeira letra é A 26ª é, então o personagem recebe o número 1 e fica com o número 26. A palavra é, portanto, codificada como. Por exemplo, veja a ferramenta dcode.fr a z a z hello > 8 5 12 12 15
Qualquer sequência de números binários pode ser representada como caracteres "imprimíveis" usando codificação base64. Este é um grande truque que os codificadores usam para converter quase tudo com dois símbolos (por exemplo, binário) em texto legível. Um uso comum da base64 é pegar uma sequência ASCII de caracteres, codificá-lo como uma sequência binária de 1s e 0s, e convertê-lo em base64. Tudo isso pode ser facilmente tratado por muitas ferramentas online, como as ferramentas de decodeingress.me.
Como reconhecer a base64?
Existem muitas outras variantes de baseN que codificam 1s e 0s (ou o binário ASCII 1s e 0s) em outros caracteres. É bom pesquisar e se familiarizar com aqueles em cyberchef, criptoii, e dcode.fr. Com quais caracteres são usados? Por exemplo, base32 usa apenas letras maiúsculas A-Z, números 2-7 e o sinal igual =. Por exemplo, veja a ferramenta dcode.fr.
Agora que temos os "blocos de construção" para codificar, podemos abordar a decodificação!
Os formatos nem sempre são iguais, abaixo estão alguns exemplos:
Vamos dar uma olhada no código que está no parágrafo de introdução.
IXRuZW1uZXRoZ2lsbkUgZWh0IG5pb0o=
Agora você pode ver os blocos de construção de resolver esses quebra-cabeças: usar combinações de cifras e esquemas de codificação para manipular uma mensagem para obter outra. Cifras alteram a ordem dos caracteres ou substituem um personagem por outro, esquemas de codificação alteram a representação de um conjunto de caracteres ou símbolos em outro conjunto de caracteres ou símbolos. Existem muitas, muitas maneiras de fazê-lo, aqui apenas foi apresentado algumas para começar, então agora é bom explorar e aprender o máximo que puder, tanto o que eles fazem quanto como eles funcionam!
Quer experimentar mais quebra-cabeças? Confira ingress.codes para uma coleção de quebra-cabeças anteriores com passo a passo da solução.
Feito com 💚 por @Suburbanizar, baseado em DecodingPrimer.
Topo