hacktricks/reversing/cryptographic-algorithms
2023-06-07 04:37:24 +00:00
..
README.md Translated ['1911-pentesting-fox.md', 'README.md', 'ctf-write-ups/try-ha 2023-06-07 04:37:24 +00:00
unpacking-binaries.md Translated to Portuguese 2023-06-06 18:56:34 +00:00

Algoritmos Criptográficos/De Compressão

Algoritmos Criptográficos/De Compressão

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Identificando Algoritmos

Se você encontrar um código usando deslocamentos de bits, XORs e várias operações aritméticas, é altamente possível que seja a implementação de um algoritmo criptográfico. Aqui serão mostradas algumas maneiras de identificar o algoritmo que está sendo usado sem precisar reverter cada etapa.

Funções de API

CryptDeriveKey

Se esta função for usada, você pode descobrir qual algoritmo está sendo usado verificando o valor do segundo parâmetro:

Confira aqui a tabela de algoritmos possíveis e seus valores atribuídos: https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id

RtlCompressBuffer/RtlDecompressBuffer

Comprime e descomprime um buffer de dados fornecido.

CryptAcquireContext

A função CryptAcquireContext é usada para adquirir um identificador para um contêiner de chave específico dentro de um provedor de serviços criptográficos (CSP) específico. Este identificador retornado é usado em chamadas para funções CryptoAPI que usam o CSP selecionado.

CryptCreateHash

Inicia o hashing de um fluxo de dados. Se esta função for usada, você pode descobrir qual algoritmo está sendo usado verificando o valor do segundo parâmetro:

Confira aqui a tabela de algoritmos possíveis e seus valores atribuídos: https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id

Constantes de Código

Às vezes, é muito fácil identificar um algoritmo graças ao fato de que ele precisa usar um valor especial e único.

Se você pesquisar a primeira constante no Google, é isso que você obtém:

Portanto, você pode assumir que a função descompilada é um calculador sha256