Captura de pantalla de CryptoTester, una utilidad para el análisis de algoritmos criptográficos y ransomware.
CryptoTester: Análisis de Criptografía y Ransomware.

CryptoTester: Utilidad para Jugar con la Criptografía. Análisis de Ransomware

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

Vistas Hexadecimales

Captura de pantalla de la interfaz de usuario de CryptoTester, mostrando sus opciones de encriptación, decodificación y análisis de datos.
Interfaz de CryptoTester.

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.

Interfaz de software mostrando una clave de 32 bytes generada.
Clave de encriptación generada.

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.

Interfaz de software mostrando la selección de rango para encriptación/desencriptación de datos.
Uso de la función de selección de rango.

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.

Interfaz de software mostrando la selección de fragmentos para encriptación/desencriptación de datos.
Uso de la función de selección de fragmentos.

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.

Comparación de datos: archivo original vs. encriptado.
Análisis de la encriptación de datos.

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.

Interfaz de software para analizar datos BLOB.
Análisis de datos binarios BLOB.

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.

Interfaz de software para generar datos BLOB.
Generador de datos binarios BLOB.

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.

Interfaz de una calculadora RSA para realizar cálculos criptográficos.
Herramienta de cálculo RSA.

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
Interfaz de software buscando claves criptográficas en un archivo.
Herramienta para encontrar claves.

Probador RNG

Una herramienta para probar varios algoritmos PRNG conocidos.

Interfaz de un probador de generador de números aleatorios (RNG).
Análisis de la aleatoriedad de un RNG.

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.

Interfaz de software para codificar y decodificar datos usando diferentes esquemas de base.
Herramienta de codificación de base.

Codificador de cadenas

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

Interfaz de software para codificar cadenas de texto en ASCII, UTF-8 y UTF-16, mostrando sus representaciones en bytes.
Codificación de texto a bytes.

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.

Interfaz de un validador ECC que verifica la validez de un punto en una curva elíptica.

Herramienta de validación ECC.

Ver Código Fuente

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda