CryptoTester es una utilidad para jugar con la criptografía, orientada al análisis de ransomware.
Vistas Hexadecimales

Todas las vistas hexadecimales usadas en CryptoTester ofrecen algunas capacidades mejoradas.
- Los bytes nulos se colorean en un gris más claro.
- Los bytes que representan caracteres ASCII imprimibles se colorean en naranja.
- Los patrones de nueva línea (0D 0A) se colorean en púrpura.
- Si está disponible el pegado, cualquier espacio en blanco, nueva línea y delimitadores comunes se eliminan antes de analizar como hexadecimal.
- Opciones de clic derecho para copiar bytes como una matriz C o BigNum.
- Opciones de clic derecho para invertir el orden de los bytes, enteros de 32 bits o enteros de 64 bits.
En muchas vistas (por ejemplo, Input
y Output
), al hacer clic en la fila de desplazamiento (el 00 01 02 03… encima de la vista respectiva) se abrirá un cuadro de diálogo que mostrará los bytes junto con la vista decodificada.
Parsing de Enteros
La mayoría de las entradas que aceptan un entero también aceptan valores y funciones especiales.
Ejemplos:
- Hexadecimal: x10 -> 16
- Longitud de entrada: len -> 400
- Tamaño de bloque: block -> 16 (tamaño de bloque del algoritmo seleccionado)
- Redondear hacia arriba: up(60, 16) -> 64
- Redondear hacia abajo: down(60, 16) -> 48
- Se pueden usar operaciones aritméticas simples 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 (por ejemplo, 16 para AES). Cualquier valor negativo se considera len - value
, es decir, relativo al final de la entrada.
Panel Principal
Encriptar/Desencriptar
El panel principal contiene herramientas para usar primitivas criptográficas en una entrada. La vista hexadecimal de Entrada acepta el pegado directo de bytes, o el menú Archivo se puede usar para cargar un archivo, texto, bytes codificados en base64, etc. También se puede arrastrar y soltar un archivo directamente en la vista.
Opciones de Clave
Permite especificar una clave en muchos formatos y contiene opciones para muchas funciones de hash y derivación de claves; estos campos se adaptan al algoritmo seleccionado actualmente y a lo que puede admitir.
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 Formato, luego se hashea usando los parámetros Hash y, finalmente, se deriva usando los parámetros Derivar antes de entregarla al algoritmo criptográfico. A partir de la versión 1.7.0.0, puedes intercambiar el orden del procesamiento de Hash y Derivar.
La longitud de salida final de la clave se muestra sobre el cuadro de entrada. Al hacer clic en esto, se mostrará la clave calculada final en un cuadro de diálogo separado.

Opciones de Encriptación
Permite seleccionar un algoritmo criptográfico y sus parámetros, si son compatibles.
Nota: Los bytes IV (o Nonce, según el algoritmo) se rellenarán automáticamente como bytes 00 de la longitud adecuada para el algoritmo si se deja vacío.
Opciones de Selección
La entrada se puede seleccionar usando dos modos diferentes: “Range” y “Chunks”.
Rango
Un rango simple que comienza en Offset y toma bytes de Length.
La Longitud se actualizará automáticamente cada vez que cambie el Input, a menos que la casilla de verificación Lock Parameters esté marcada. Si has realizado algunos cálculos en el campo Length y deseas volver a la longitud real de la Input, simplemente puedes presionar el botón Reset Length.
Si está marcada la opción Splice Remaining Bytes, entonces cualquier byte antes del Offset se antepone a la Output, y cualquier byte después del Offset+Length se anexa.

Fragmentos/Chunks
Toma Take
bytes, luego salta Skip
bytes, toma Take
bytes, salta Skip
bytes … hasta el final de Input
. Esto se puede usar para texto cifrado que en realidad está “intercalado” entre fragmentos de texto sin formato. El algoritmo criptográfico se ejecuta en los fragmentos resultantes como un solo fragmento secuencial, sin restablecer la clave/IV/nonce, etc.
Si está marcada la opción Splice Remaining Bytes
, entonces cualquier byte en la sección Skip
se intercala de nuevo en Output
.

Información del archivo de entrada
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).
Miscelánea
Las vistas de Input
y Output
tienen desplazamiento sincronizado; para deshabilitar esto, desmarca la casilla de verificación Syncronized scrolling
entre ellas.
El botón 🡨 entre la Input
y la Output
se puede usar para mover la Output
a la vista de Input
.
La Input
o la Output
se pueden hashear usando los menús desplegables respectivos debajo de sus vistas. La Output
también puede tener un algoritmo de verificación ejecutado en ella (soporte limitado para ECDSA actualmente).
Comparar
Este panel permite comparar un archivo encriptado con su original. Ambas vistas admiten arrastrar y soltar, o File -> Open File se puede usar para abrir Original
y Encrypted
secuencialmente.
La vista Original
también se puede rellenar 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 deshabilitar esto, desmarca la casilla de verificación Syncronized scrolling
entre ellas.
El botón ⇆ entre las vistas Original
y Encrypted
se puede usar para intercambiar su contenido.
Cualquier byte que difiera entre las dos vistas se mostrará en rojo oscuro.

Información del archivo original/archivo encriptado
Muestra información básica sobre las vistas Original
y Encrypted
respectivamente.
Análisis
Una vez que ambas vistas se hayan rellenado, se realiza un análisis rápido sobre ellas.
- Análisis de hash: comprueba si algún hash de Original está presente en Encriptado.
- Nombre de archivo: comprueba las alteraciones comunes al nombre de archivo (por ejemplo, antepuesto/anexado o codificado).
- Análisis de BLOB: comprueba si hay BLOBs de CryptoAPI presentes en Encriptado.
- Análisis XOR: comprueba si hay bloques repetidos de XOR (u otros cifrados simples).
- Marcador de nombre de archivo: comprueba si el nombre de archivo original está presente en Encriptado (UTF-8 o UTF-16).
- Marcador de tamaño de archivo: busca el tamaño de archivo original en Encriptado (en varias formas y codificaciones).
- Marcador/Análisis ASCII: comprueba si hay un marcador ASCII (o base64) al principio o al final de Encriptado.
Comprimir/Descomprimir
Este panel permite el uso primitivo de un puñado de algoritmos de compresión y tiene una funcionalidad similar al panel Cifrar/Descifrar.
Herramientas
Analizador de BLOB
Una herramienta para analizar BLOBs de CryptoAPI y BLOBs de CNG.
Los BLOBs se pueden importar/exportar desde/hacia formatos binarios, base64, PEM, XML y ASN.1, donde sea compatible.

Herramientas
Herramientas adicionales relacionadas con BLOBs que se activan solo para los tipos de BLOBs compatibles según corresponda.
- Descifrar BLOB: permite descifrar un SIMPLEBLOB introduciendo un PRIVATEKEYBLOB.
- Calculadora RSA: carga la clave RSA actual en la herramienta Calculadora RSA.
- Reparar BLOB: repara el BLOB si se ha detectado una corrupción recuperable.
- Generador de BLOB: permite generar cualquier BLOB de CryptoAPI.
- Invertir orden de bytes: invierte el orden de los bytes del contenido de la clave (¡puede romper la clave!).
Generador de BLOB
Genera un BLOB de CryptoAPI. La Longitud de bits se actualiza automáticamente con los valores compatibles para el aiKeyAlg seleccionado. Ten en cuenta que algunas combinaciones de bType y aiKeyAlg no son válidas y arrojarán un error del proveedor de CryptoAPI.

Calculadora RSA
Una herramienta para analizar/calcular claves RSA. Se muestran los parámetros separados de la clave y se pueden mostrar como decimales o hexadecimales. Si hay suficientes parámetros presentes, se puede calcular el resto de la clave.
La clave se puede exportar en varios formatos, incluyendo un BLOB de CryptoAPI, un BLOB de CNG, PEM, XML y ASN.1, ya sea a un archivo, portapapeles o la ventana principal (Cifrar/Descifrar). Además, si se exporta a la ventana principal, los enteros sin procesar se pueden exportar para el algoritmo RSA sin procesar.

Buscador de claves
Una herramienta que busca una clave criptográfica en un archivo en varios formatos.
Ejemplos de formatos compatibles:
- BLOB de CryptoAPI
- BLOB de CNG
- BLOB ASN.1
- BLOB NTRU
- Todos los anteriores como cadenas hexadecimales ASCII
- Todos los anteriores como base64 (o base64 dañado)
- Claves PEM
- Claves XML
- Módulo y exponente RSA sin procesar como cadenas hexadecimales

Probador RNG
Una herramienta para probar varios algoritmos PRNG conocidos.

Opciones de semilla
Establece la Seed
inicial para el PRNG.
Opciones RNG
Establece el Algorithm
PRNG, junto con la Longitud de las salidas que se van a producir y un Módulo opcional que se aplicará a cada salida. Por ejemplo, un Módulo de xFF se puede usar para convertir cada salida a un byte.
Salida
- Formato: Formato para mostrar cada número aleatorio como
- Si se selecciona
Alpha
:- Charset: un conjunto de caracteres para asignar a cada número aleatorio.
- Presets: conjuntos de caracteres preestablecidos comunes para rellenar automáticamente.
- Skip Chars: si se emitiera un carácter de esta lista, se omite y se sondea el siguiente número aleatorio.
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 la fuerza bruta ciega de la salida (sin atacar directamente el PRNG).
Codificador de base
Una herramienta para usar diferentes codificaciones de base. Admite conjuntos de caracteres preestablecidos estándar o proporciona su propio conjunto de caracteres personalizado.
Con la excepción de los codificadores que usan una suma de comprobación (por ejemplo, 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.

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

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

Herramienta de validación ECC.