
Uma utilidade para brincar com criptografia, voltada para análise de ransomware.
Uma utilidade para brincar com criptografia, voltada para análise de ransomware.

Todas as visualizações hex usadas no CryptoTester oferecem alguns recursos aprimorados.
0D 0A) são coloridos em roxoEm muitas visualizações (ex.: Input e Output), clicar na linha de offsets (o 00 01 02 03... acima da respectiva visualização) abrirá uma caixa de diálogo mostrando os bytes junto com a visualização decodificada.
A maioria das entradas que aceitam um inteiro também aceitam valores e funções especiais.
Exemplos:
x10 -> 16len -> 400block -> 16 (tamanho do bloco do algoritmo selecionado)up(60, 16) -> 64down(60, 16) -> 48Aritmética simples pode ser usada em combinação com essas funções.
up(len-x100, b) - Subtrai 256 do comprimento da entrada, então arredonda para cima para o tamanho de bloco mais próximo do algoritmo selecionado (ex.: 16 para AES)Qualquer valor negativo é assumido como len - valor, ou seja, relativo ao final da entrada.
O painel principal contém ferramentas para usar primitivas criptográficas em uma entrada. A visualização hex Input aceita colagem direta de bytes, ou o menu File pode ser usado para carregar um arquivo, texto, bytes codificados em base64, etc. Um arquivo também pode ser arrastado e solto diretamente na visualização.
Permite especificar uma chave em muitos formatos e contém opções para várias funções de hash e derivação de chave; esses campos se adaptam ao algoritmo atualmente selecionado e ao que ele suporta.
Nota: A chave é processada na mesma ordem em que é mostrada na interface; primeiro a chave é decodificada de acordo com o
Formato, depois é submetida a hash usando os parâmetros deHashe, finalmente, derivada usando os parâmetros deDeriveantes de ser entregue ao algoritmo criptográfico. A partir da versão 1.7.0.0, você pode trocar a ordem do processamento deHasheDerive.
O comprimento final da saída da chave é exibido acima da caixa de entrada. Clicar nisso exibirá a chave final calculada em uma caixa de diálogo separada.

Permite selecionar um algoritmo criptográfico e seus parâmetros, se suportado.
Nota: Os
IV Bytes(ouNonce, dependendo do algoritmo) serão preenchidos automaticamente como bytes00do comprimento apropriado para o algoritmo se for deixado vazio.
A entrada pode ser selecionada usando dois modos diferentes: "Range" e "Chunks".
Um intervalo simples começando no Offset e pegando Length bytes.
O Length será atualizado automaticamente sempre que o Input for alterado, a menos que a caixa de seleção Lock Parameters esteja marcada.
Se você tiver feito alguns cálculos no campo Length e desejar reverter para o comprimento real do Input, basta pressionar o botão Reset Length.
Se Splice Remaining Bytes estiver marcado, quaisquer bytes antes de Offset são prefixados à Output, e quaisquer bytes após Offset+Length são anexados.

Pega Take bytes, depois pula Skip bytes, pega Take bytes, pula Skip bytes... até o final do Input. Isso pode ser usado para texto cifrado que está realmente "intercalado" entre pedaços de texto simples. O algoritmo criptográfico é executado nos pedaços resultantes como um pedaço sequencial, sem redefinição da chave/IV/nonce etc.
Se Splice Remaining Bytes estiver marcado, quaisquer bytes na seção Skip são intercalados de volta na Output.

Esta seção exibe informações simples sobre o Input, como o tamanho do arquivo, MIME detectado (se for um arquivo), entropia total e se é divisível por 16 (um tamanho de bloco comum).
As visualizações Input e Output têm rolagem sincronizada; para desativar isso, desmarque a caixa de seleção Syncronized scrolling entre elas.
O botão 🡨 entre as visualizações Input e Output pode ser usado para mover a Output para a visualização Input.
O Input ou Output pode ser submetido a hash usando os menus suspensos respectivos abaixo de suas visualizações. O Output também pode ter um algoritmo de verificação executado nele (suporte limitado para ECDSA atualmente).
Este painel permite comparar um arquivo criptografado com seu original. Ambas as visualizações suportam arrastar e soltar, ou File -> Open File pode ser usado para abrir Original e Encrypted sequencialmente.
A visualização Original também pode ser preenchida usando qualquer uma das opções File -> Input; por exemplo, comparar com um certo comprimento de bytes nulos ou a imagem de amostra do Windows Chrysanthemum.jpg.
As visualizações Original e Encrypted têm rolagem sincronizada; para desativar isso, desmarque a caixa de seleção Syncronized scrolling entre elas.
O botão ⇆ entre as visualizações Original e Encrypted pode ser usado para trocar seus conteúdos.
Quaisquer bytes que diferirem entre as duas visualizações serão exibidos em vermelho escuro.

Exibe informações básicas nas visualizações Original e Encrypted, respectivamente.
Uma vez que ambas as visualizações tenham sido preenchidas, uma análise rápida é executada contra elas.
Original está presente no EncryptedEncryptedEncrypted (UTF-8 ou UTF-16)Encrypted (em várias formas e codificações)EncryptedEste painel permite o uso primitivo de alguns algoritmos de compressão e possui funcionalidade semelhante ao painel Criptografar/Descriptografar.
Uma ferramenta para analisar blobs CryptoAPI e blobs CNG.
Blobs podem ser importados/exportados para/de formatos binário, base64, PEM, XML e ASN.1, onde suportado.

Ferramentas adicionais relacionadas a blobs que são ativadas apenas para tipos de blob suportados, conforme aplicável.
Gera um blob CryptoAPI. O Bit Length é automaticamente atualizado com valores suportados para o aiKeyAlg selecionado. Note que algumas combinações de bType e aiKeyAlg não são válidas e lançarão um erro do provedor CryptoAPI.

Nota: As chaves são geradas internamente usando CryptGenRandom, mas não posso garantir a segurança criptográfica do uso de chaves geradas por esta utilidade.
Uma ferramenta para analisar/calcular chaves RSA. Os parâmetros separados da chave são exibidos e podem ser mostrados como decimal ou hex. Se parâmetros suficientes estiverem presentes, o restante da chave pode ser calculado.
A chave pode ser exportada em vários formatos, incluindo blob CryptoAPI, blob CNG, PEM, XML e ASN.1, seja para arquivo, área de transferência ou a Janela Principal (Criptografar/Descriptografar). Além disso, se exportar para a Janela Principal, os inteiros brutos podem ser exportados para o algoritmo RSA Bruto.

Uma ferramenta que procura em um arquivo por uma chave criptográfica em vários formatos.
Exemplos de formatos suportados:

Uma ferramenta para testar vários algoritmos PRNG conhecidos.

Defina a Seed inicial para o PRNG.
Defina o Algorithm do PRNG, junto com o Length das saídas a serem produzidas e um Modulus opcional a ser aplicado a cada saída. Por exemplo, um Modulus de xFF pode ser usado para converter cada saída em um byte.
Se Alpha for selecionado:
A entropia da saída produzida também é exibida para saída Alpha. Esta é uma estimativa aproximada da entropia (ou número de possibilidades) para forçar bruto cegamente a saída (sem atacar diretamente o PRNG).
Uma ferramenta para usar diferentes codificações de base. Suporta conjuntos de caracteres predefinidos padrão ou forneça seu próprio conjunto personalizado.
Com exceção dos codificadores que usam uma soma de verificação (ex.: Base58Check do Bitcoin), a decodificação é feita sem verificar o preenchimento, portanto, mesmo codificações parciais ou danificadas serão decodificadas em bruto.

Uma ferramenta para visualizar texto ou bytes como ASCII, UTF-8 e UTF-16 simultaneamente.

Uma ferramenta para validar pontos de curva elíptica. Pode importar/exportar de/para um ECPoint (formas descomprimida ou comprimida), PEM ou blob CNG.

Várias operações a serem realizadas com base no painel atual.
Pega o Original e o Encrypted do painel Comparar e aplica a operação XOR ou AND, e exibe um fluxo.
Usa as informações do algoritmo do painel Criptografar/Descriptografar e gera um keystream de determinado comprimento para salvar em arquivo.
Exibe um gráfico da diferença entre pixels no painel Comparar.

Usa o material de chave fornecido e o Input do painel Criptografar/Descriptografar, e uma saída esperada fornecida, e enumera todas as opções possíveis na seção Opções de Criptografia para tentar encontrar uma correspondência.
Esta ferramenta pode ser usada para testar uma lista ou pasta de chaves conhecidas contra o Input usando os parâmetros de cifra especificados.
Byte Count bytes do arquivo por vez.Se uma chave for correspondida com sucesso, o botão Select será ativado para permitir passar a chave e seus parâmetros para a janela principal.

Usando o tamanho do bloco do cifrador selecionado, enumera todos os blocos possíveis e tenta a descriptografia usando a chave especificada.
Exemplo: Você tem uma chave privada RSA-2048 e um blob de 0x1000 bytes de possível texto cifrado como Input. Usar esta operação tentará descriptografar Input[0x00:0x100], depois Input[0x01:0x101], depois Input[0x02:0x102] etc...
Nota: Esta operação atualmente suporta apenas o algoritmo RSA. Também está limitada a um máximo de 10000 bytes de entrada.
Usar little endian internamente (se o algoritmo suportar).
Permite definir parâmetros personalizados se o algoritmo selecionado suportar algum. Por exemplo, a família de algoritmos Salsa20 suporta rodadas, constante, posição personalizadas ou inserir uma matriz bruta.
Opções para o IV, como inserir de texto ou base64, e recuperar um IV a partir de texto simples conhecido.
Predefinições para certos esquemas de criptografia, ex.: OpenSSL.
Pequenas ferramentas para conversões.
Converter um inteiro para DWORD, ou bytes DWORD para inteiro.

Converter bytes hex para uma lista de inteiros, ou uma lista de inteiros para bytes. Espaços e vírgulas para a saída podem ser opcionalmente definidos.
