
Una utilidad para jugar con criptografía, orientada al análisis de ransomware.
Una utilidad para jugar con criptografía, orientada al análisis de ransomware.

Todas las vistas hex utilizadas en CryptoTester ofrecen algunas capacidades mejoradas.
0D 0A) se colorean en púrpuraEn muchas vistas (p. ej., Input y Output), al hacer clic en la fila de desplazamiento (el 00 01 02 03... sobre la vista respectiva) se abrirá un diálogo que muestra los bytes junto con la vista decodificada.
La mayoría de las entradas que aceptan un entero también aceptan valores especiales y funciones.
Ejemplos:
x10 -> 16len -> 400block -> 16 (tamaño de bloque del algoritmo seleccionado)up(60, 16) -> 64down(60, 16) -> 48Se puede usar aritmética simple en combinación con estas funciones.
up(len-x100, b) - Resta 256 de la longitud de entrada, luego redondea hacia arriba al tamaño de bloque más cercano del algoritmo seleccionado (p. ej., 16 para AES)Cualquier valor negativo se asume como len - value, es decir, relativo al final de la entrada.
El panel principal contiene herramientas para usar primitivas criptográficas en una entrada. La vista hex Input acepta pegado directo de bytes, o se puede usar el menú File para cargar un archivo, texto, bytes codificados en base64, etc. También se puede arrastrar y soltar un archivo directamente en la vista.
Permite especificar una clave en muchos formatos y contiene opciones para muchas funciones de hash y derivación de clave; estos campos se adaptan al algoritmo seleccionado actualmente y a lo que puede soportar.
Nota: La clave se procesa en el mismo orden en que se muestra en la interfaz de usuario; primero la clave se decodifica según el
Format, luego se hashea usando los parámetros deHash, y finalmente se deriva usando los parámetros deDeriveantes de pasarla al algoritmo criptográfico. A partir de v1.7.0.0, se puede intercambiar el orden de procesamiento deHashyDerive.
La longitud final de salida de la clave se muestra encima del cuadro de entrada. Al hacer clic en ella, se mostrará la clave final calculada en un diálogo aparte.

Permite seleccionar un algoritmo criptográfico y sus parámetros, si es compatible.
Nota: Los
IV Bytes(oNonce, según el algoritmo) se llenarán automáticamente como bytes00de la longitud adecuada para el algoritmo si se dejan vacíos.
La entrada se puede seleccionar usando dos modos diferentes: "Rango" y "Fragmentos".
Un rango simple que comienza en Offset y toma Length bytes.
El Length se actualizará automáticamente cada vez que se cambie Input, a menos que la casilla Lock Parameters esté marcada.
Si ha realizado algunos cálculos en el campo Length y desea revertir a la longitud real de Input, simplemente puede presionar el botón Reset Length.
Si Splice Remaining Bytes está marcado, entonces cualquier byte antes de Offset se antepone a Output, y cualquier byte después de Offset+Length se añade al final.

Toma Take bytes, luego omite Skip bytes, toma Take bytes, omite Skip bytes... hasta el final de Input. Esto se puede usar para texto cifrado que en realidad está "entrelazado" entre fragmentos de texto plano. El algoritmo criptográfico se ejecuta en los fragmentos resultantes como un fragmento secuencial, sin reiniciar la clave/IV/nonce, etc.
Si Splice Remaining Bytes está marcado, entonces cualquier byte en la sección Skip se vuelve a intercalar en Output.

Esta sección muestra información simple sobre Input, como el tamaño del archivo, el MIME detectado (si es un archivo), la entropía total y si es divisible por 16 (un tamaño de bloque común).
Las vistas Input y Output tienen desplazamiento sincronizado; para deshabilitarlo, desmarque la casilla Syncronized scrolling entre ellas.
El botón 🡨 entre las vistas Input y Output se puede usar para mover Output a la vista Input.
Se puede hacer hash de Input o Output usando los menús desplegables respectivos debajo de sus vistas. También se puede ejecutar un algoritmo de verificación en Output (soporte limitado para ECDSA actualmente).
Este panel permite comparar un archivo cifrado con su original. Ambas vistas admiten arrastrar y soltar, o se puede usar File -> Open File para abrir Original y Encrypted secuencialmente.
La vista Original también se puede llenar usando cualquiera de las opciones de File -> Input; por ejemplo, comparar con una cierta longitud de bytes nulos o la imagen de muestra de Windows Chrysanthemum.jpg.
Las vistas Original y Encrypted tienen desplazamiento sincronizado; para deshabilitarlo, desmarque la casilla Syncronized scrolling entre ellas.
El botón ⇆ entre las vistas Original y Encrypted se puede usar para intercambiar sus contenidos.
Cualquier byte que difiera entre las dos vistas se mostrará en rojo oscuro.

Muestra información básica en las vistas Original y Encrypted respectivamente.
Una vez que ambas vistas se han llenado, se ejecuta un análisis rápido contra ellas.
Original está presente en EncryptedEncryptedEncrypted (UTF-8 o UTF-16)Encrypted (en varias formas y codificaciones)EncryptedEste panel permite el uso primitivo de un puñado de algoritmos de compresión y tiene funcionalidad similar al panel Cifrar/Descifrar.
Una herramienta para analizar blobs de CryptoAPI y blobs de CNG.
Los BLOBs se pueden importar/exportar a/desde formatos binario, base64, PEM, XML y ASN.1, cuando sea compatible.

Herramientas adicionales relacionadas con blobs que se activan solo para tipos de blob compatibles según corresponda.
Genera un blob de CryptoAPI. El Bit Length se actualiza automáticamente con valores compatibles para el aiKeyAlg seleccionado. Tenga en cuenta que algunas combinaciones de bType y aiKeyAlg no son válidas y arrojarán un error del proveedor de CryptoAPI.

Nota: Las claves se generan internamente usando CryptGenRandom, pero no puedo garantizar la seguridad criptográfica del uso de claves generadas desde esta utilidad.
Una herramienta para analizar/calcular claves RSA. Los parámetros separados de la clave se muestran y se pueden ver como decimal o hex. Si hay suficientes parámetros presentes, se puede calcular el resto de la clave.
La clave se puede exportar en varios formatos, incluido un blob de CryptoAPI, blob de CNG, PEM, XML y ASN.1, ya sea a un archivo, al portapapeles o a la Ventana Principal (Cifrar/Descifrar). Además, si se exporta a la Ventana Principal, los enteros sin formato se pueden exportar para el algoritmo RSA sin formato.

Una herramienta que busca en un archivo una clave criptográfica en varios formatos.
Ejemplos de formatos compatibles:

Una herramienta para probar varios algoritmos PRNG conocidos.

Establece la Seed inicial para el PRNG.
Establece el Algorithm del PRNG, junto con la Length de salidas a producir y un Modulus opcional para aplicar a cada salida. Por ejemplo, un Modulus de xFF se puede usar para convertir cada salida en un byte.
Si se selecciona Alpha:
La entropía de la salida producida también se muestra para la salida Alpha. Esta es una estimación aproximada de la entropía (o número de posibilidades) para forzar bruscamente la salida a ciegas (sin atacar directamente el PRNG).
Una herramienta para usar diferentes codificaciones base. Admite conjuntos de caracteres predefinidos estándar o proporcione su propio conjunto personalizado.
Con la excepción de los codificadores que usan una suma de verificación (p. ej., Base58Check de Bitcoin), la decodificación se realiza sin verificar el relleno, por lo que incluso las codificaciones parciales o dañadas se decodificarán sin procesar.

Una herramienta para ver texto o bytes como ASCII, UTF-8 y UTF-16 simultáneamente.

Una herramienta para validar puntos de curva elíptica. Puede importar/exportar desde/hacia un ECPoint (formas no comprimidas o comprimidas), PEM o blob CNG.

Varias operaciones que se pueden realizar según el panel actual.
Toma Original y Encrypted del panel Comparar, aplica la operación XOR o AND y muestra un flujo.
Usa la información del algoritmo del panel Cifrar/Descifrar y genera un flujo de clave de la longitud dada para guardarlo en un archivo.
Muestra un gráfico de la diferencia entre píxeles en el panel Comparar.

Usa el material de clave proporcionado y la Input del panel Cifrar/Descifrar, y una salida esperada dada, y enumera todas las opciones posibles en la sección Encryption Options para intentar encontrar una coincidencia.
Esta herramienta se puede usar para probar una lista o carpeta de claves conocidas contra Input usando los parámetros de cifrado especificados.
Byte Count bytes del archivo a la vez.Si una clave coincide con éxito, se activará el botón Select para permitir pasar la clave y sus parámetros a la ventana principal.

Usando el tamaño de bloque del cifrado seleccionado, enumera todos los bloques posibles e intenta el descifrado usando la clave especificada.
Ejemplo: Tiene una clave privada RSA-2048 y un blob de 0x1000 bytes de posible texto cifrado como Input. Usando esta operación se intentará descifrar Input[0x00:0x100], luego Input[0x01:0x101], luego Input[0x02:0x102], etc.
Nota: Esta operación actualmente solo admite el algoritmo RSA. También está limitada a un máximo de 10000 bytes de entrada.
Usar little endian internamente (si el algoritmo lo admite).
Permite establecer parámetros personalizados si el algoritmo seleccionado lo admite. Por ejemplo, la familia de algoritmos Salsa20 admite rondas, constante, posición personalizadas o ingresar una matriz sin procesar.
Opciones para el IV, como ingresar desde texto o base64, y recuperar un IV de texto plano conocido.
Preajustes para ciertos esquemas de cifrado, p. ej., OpenSSL.
Pequeñas herramientas para conversiones.
Convertir un entero a DWORD, o bytes DWORD a entero.

Convertir bytes hex a una lista de enteros, o una lista de enteros a bytes. Se pueden establecer opcionalmente espacios y comas para la salida.
