[?] — NULLSECTOR :: Transmission 0x00


DcD

Miembro activo
───────────────────────────────────────────────────────────────
No busques un mensaje. Busca lo que ya existe pero aún no ves.
───────────────────────────────────────────────────────────────

[ I ]

101000 110111 110100 100011 100001 110100
110001 101001 110011 101000 100001 100111
101001 110111 101001 101000 100011 110011

───────────────────────────────────────────────────────────────

[ II ]

p = 115792089237316195423570985008687907853
269984665640564039457584007908834671663

a = -3

b = 41058363725152142129326129780047268409
114441015993725554835256314039467401291

G = ( 48439561293906451759052585252797914202
762895571635221052689631163232889574723,
36134250956749795798585127919587881956
611106672985015071877198253568414405109 )

Q = ( 87701808221879959144325760817902411508
329595313271040841624155110522497899721,
74708460167676347925778553493551244728
19035874662531063505258520278364978398 )


───────────────────────────────────────────────────────────────

[ III ]


───────────────────────────────────────────────────────────────

[ IV ]

4e6f206861792063616d696e6f2e
48617920756e6120707565727461.

───────────────────────────────────────────────────────────────

Quien llegue al final, lo sabrá, solo uno obtendrá la recompensa.
No responderé preguntas.

— DcD
 

Adjuntos

  • void.png
    void.png
    93 KB · Visitas: 61

camaloca

Miembro muy activo
Noderador
Nodero
Noder
# [?] — NULLSECTOR :: Transmission 0x00
**Autor/Firma:** DcD
**Tipo:** Puzzle criptográfico multi-capa (CTF/ARG)
**Secciones:** 4 (Binario, ECC, Audio, Hex)
---
## ÍNDICE
1. [Sección IV — Hex (RESUELTA)](#sección-iv--hex-resuelta)
2. [Sección III — Audio/WAV (RESUELTA)](#sección-iii--audiowav-resuelta)
3. [Sección II — Curva Elíptica (ANALIZADA)](#sección-ii--curva-elíptica-analizada)
4. [Sección I — Binario (DECODIFICADA, NO DESCIFRADA)](#sección-i--binario-decodificada-no-descifrada)
5. [Análisis cruzado entre secciones](#análisis-cruzado-entre-secciones)
6. [Lo que NO se ha conseguido](#lo-que-no-se-ha-conseguido)
7. [Solución más probable](#solución-más-probable)
---
## Sección IV — Hex (RESUELTA) ✅
### Datos originales
```
4e 6f 20 68 61 79 20 63 61 6d 69 6e 6f 2e 20 48 61 79 20 75 6e 61 20 70 75 65 72 74 61 2e
```
### Método de resolución
Conversión directa de hexadecimal a ASCII. Cada par de dígitos hex representa un carácter.
### Resultado
> **"No hay camino. Hay una puerta."**
### Interpretación
Frase filosófica que sirve de pista meta-puzzle: el camino matemático (sección II) está roto a propósito. La solución no viene del cálculo directo sino de encontrar la "puerta" — probablemente el valor extraído del audio.
---
## Sección III — Audio/WAV (RESUELTA) ✅
### Datos originales
- URL: `https://files.catbox.moe/cmpjrr.wav`
- Formato: WAV PCM, 44100 Hz, 16-bit, mono, 30 segundos
- SHA256 del archivo: `e9f151375e77f541bc11842199a8a2fcddcc6a61012349ada84936c05072de6c`
### Método de resolución
**Paso 1 — Análisis FFT (Transformada Rápida de Fourier):**
Se analizaron los 1.323.000 muestras con ventanas de FFT. Se descubrió un patrón claro: el audio alterna entre **tonos ultrasónicos** (18000–19800 Hz) y **silencios** (~20 Hz).
**Paso 2 — Mapeo de frecuencias:**
Se identificaron **16 frecuencias únicas** separadas por pasos de exactamente 120 Hz:
| Frecuencia (Hz) | Dígito Hex |
|---|---|
| 18000 | 0 |
| 18120 | 1 |
| 18240 | 2 |
| 18360 | 3 |
| 18480 | 4 |
| 18600 | 5 |
| 18720 | 6 |
| 18840 | 7 |
| 18960 | 8 |
| 19080 | 9 |
| 19200 | A |
| 19320 | B |
| 19440 | C |
| 19560 | D |
| 19680 | E |
| 19800 | F |
**Paso 3 — Extracción de tonos:**
Se extrajeron 64 segmentos de tono (65 originalmente, 2 adyacentes con la misma frecuencia se fusionaron). Cada tono = 1 dígito hex.
### Resultado
```
58d6dce1491f07804dd931281853367afd6ddc779bae31fb771dfe3b1a5454c5
```
**32 bytes / 256 bits** — tamaño exacto de una clave privada para curvas elípticas (secp256k1, P-256).
### Verificación visual con espectrograma (Audacity)
La imagen del espectrograma en Audacity confirma el análisis:
```
Frecuencia ↑
20000 Hz ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ (línea rosa = Nyquist 22050 Hz)
╶╴ ╶╴╶╴ ╶╴ ╶╴╶╴ ╶╴ ← Líneas blancas discontinuas a distintas alturas
18000 Hz ╶╴╶╴ ╶╴╶╴ ╶╴ = tonos ultrasónicos (hex digits)

10000 Hz ║ Gradiente naranja uniforme = ruido de fondo
1000 Hz║ (sin patrones, sin texto espectral, sin imágenes ocultas)
100 Hz╚═══════════════════════════
0s 15s 30s
```
**Lo que muestra la imagen:**
- **Banda 18.000–20.000 Hz:** Segmentos blancos discontinuos (las "rayas" a diferentes alturas). Cada raya = un tono ultrasónico. La altura de cada raya = la frecuencia = un dígito hex.
- **Banda 100–17.000 Hz:** Gradiente naranja completamente uniforme. Analizado por FFT en ventanas de 0.5s buscando picos en sub-bandas (100-500, 500-2000, 2000-5000, 5000-10000 Hz) → **cero picos significativos**. No hay texto espectral ni imágenes ocultas.
- **Línea rosa superior:** Marcador de frecuencia Nyquist (22050 Hz), artefacto de Audacity, no datos.
### Análisis de potencia por banda de frecuencia
| Banda | Rango (Hz) | Potencia media | Desv. estándar | Observación |
|---|---|---|---|---|
| Sub-bass | 20 – 60 | 1.168.597 | 375.741 | Ruido uniforme |
| Bass | 60 – 250 | 540.899 | 97.144 | Ruido uniforme |
| Low-mid | 250 – 500 | 332.292 | 53.172 | Ruido uniforme |
| Mid | 500 – 2.000 | 195.521 | 11.137 | Ruido uniforme (σ muy baja) |
| Upper-mid | 2.000 – 4.000 | 120.316 | 6.659 | Ruido uniforme |
| Presence | 4.000 – 6.000 | 94.674 | 5.118 | Ruido uniforme |
| Brilliance | 6.000 – 10.000 | 74.325 | 2.896 | Ruido uniforme |
| High | 10.000 – 14.000 | 60.252 | 2.074 | Ruido uniforme |
| Very high | 14.000 – 17.000 | 53.442 | 2.272 | Ruido uniforme |
| **Ultrasonic** | **17.000 – 20.000** | **83.663** | **30.153** | **σ alta = tonos ON/OFF** |
La desviación estándar de la banda ultrasónica (30.153) es **6-15x mayor** que las bandas vecinas, confirmando que es la única banda con señal modulada. Todas las demás bandas tienen σ relativamente baja = ruido estacionario sin información.
### Verificaciones adicionales del WAV
- **Sin datos ocultos adicionales:** No hay bytes trailing, metadatos ocultos, chunks extra, ni strings embebidos (NULLSECTOR, DcD, flag, etc.).
- **LSB steganography:** Probada en bits 0, 1 y signo → solo ruido aleatorio.
- **Análisis de fase (BPSK):** Los ~13.935 inicios de tono no codifican ASCII legible por fase.
- **Modulación de amplitud (AM):** Los tonos muestran transiciones ON/OFF normales (~22-28 por segundo), sin sub-codificación Morse ni patrones binarios significativos.
- **Texto espectral:** Búsqueda de picos en frecuencias medias (100-10.000 Hz) en ventanas de 0.5s → cero picos. No hay imagen ni texto dibujado en el espectrograma.
- El **único dato oculto** en el audio son las frecuencias ultrasónicas que codifican el hex.
---
## Sección II — Curva Elíptica (ANALIZADA) ⚠️
### Datos originales
```
Curva E: y² = x³ + ax + b (mod p)
p = 115792089237316195423570985008687907853269984665640564039457584007908834671663
a = -3
b = 41058363725152142129326129780047268409114441015993725554835256314039467401291
G = (48439561293906451759052585252797914202762895571635221052689631163232889574723,
36134250956749795798585127919587881956611106672985015071877198253568414405109)
Q = (87701808221879959144325760817902411508329595313271040841624155110522497899721,
7470846016767634792577855349355124472819035874662531063505258520278364978398)
```
### Análisis realizado
#### Identificación de parámetros
| Parámetro | Identificado como | Match exacto |
|---|---|---|
| `p` | **primo de secp256k1** (curva de Bitcoin) | ✅ Exacto |
| `a = -3` | parámetro `a` de **P-256** (NIST) | ✅ Exacto |
| `b` | parámetro `b` de **P-256** | ✅ Exacto |
| `Gy` | coordenada Y del generador **P-256** | ✅ Exacto |
| `Gx` | coordenada X del generador **P-256 MODIFICADA** | ❌ Difiere |
| `Q` | punto en la curva **P-256 estándar** | ✅ Verificado |
#### Diferencia en Gx
```
P-256_Gx estándar: 48439561293906451759052585252797914202762895571635221052689685117659867407286
Puzzle_Gx: 48439561293906451759052585252797914202762895571635221052689631163232889574723
^^^^^^^^^^^^^^^^^
Diferencia: 53954406526943154449553849515060563
Hex de la diferencia: 0xa64285a00e45468ad0ba723492d53
```
#### Resultados de verificación de curva
| Test | Resultado |
|---|---|
| G está en P-256 (p_P256, a=-3, b_P256) | ❌ NO |
| G está en secp256k1 (p_k1, a=0, b=7) | ❌ NO |
| Q está en P-256 estándar | ✅ SÍ |
| Q está en la misma curva que G | ❌ NO (para ningún (p,a,b) probado) |
**→ La curva es un HÍBRIDO DELIBERADO:** usa `p` de secp256k1 pero `a`, `b`, `Gy` de P-256, con `Gx` modificado. El generador G **no pertenece a ninguna curva estándar**, haciendo imposible la verificación `k * G = Q`.
#### Operaciones ECC probadas
| Operación | Resultado |
|---|---|
| `audio_hex * G_estándar_P256 = Q` ? | ❌ No |
| `audio_hex * G_puzzle` en P-256 ? | ❌ G no está en P-256 |
| `audio_hex * G_puzzle` en secp256k1 ? | ❌ G no está en secp256k1 |
| `diff * G_estándar = Q` ? | ❌ No |
| `(k ± diff) * G_estándar = Q` ? | ❌ No |
| `(k * diff mod n) * G_estándar = Q` ? | ❌ No |
| Drop cada posición de los 65 tonos → `k * G = Q` ? | ❌ Ninguna |
| ECIES: `k * Q` → SHA256 → XOR con sección I | ❌ Basura |
#### Bitcoin (por si el audio hex es una clave privada secp256k1)
```
Clave privada: 58d6dce1491f07804dd931281853367afd6ddc779bae31fb771dfe3b1a5454c5
Clave pública comprimida: 02df57cb633c7e10ce1759d7c9af99868997bdcdf247033210de21e58fbedc4338
Dirección Bitcoin P2PKH: 1Nr5cmKWMLxvYuLeWBGLbFzeGPxBguuoR6
WIF (comprimida): KzCQKZhGPXvxVFHKPYjP9XHd3PoccHFkVJXEHCpR1NkdfPJb5MEa
```
---
## Sección I — Binario (DECODIFICADA, NO DESCIFRADA) ⚠️
### Datos originales
```
101000 110111 110100 100011 100001 110100
110001 101001 110011 101000 100001 100111
101001 110111 101001 101000 100011 110011
```
### Método de decodificación
Cada grupo de 6 bits se interpreta como un valor decimal y se le suma 32 (codificación **DEC SIXBIT**):
| Binario | Decimal | +32 | Carácter |
|---|---|---|---|
| 101000 | 40 | 72 | H |
| 110111 | 55 | 87 | W |
| 110100 | 52 | 84 | T |
| 100011 | 35 | 67 | C |
| 100001 | 33 | 65 | A |
| 110100 | 52 | 84 | T |
| 110001 | 49 | 81 | Q |
| 101001 | 41 | 73 | I |
| 110011 | 51 | 83 | S |
| 101000 | 40 | 72 | H |
| 100001 | 33 | 65 | A |
| 100111 | 39 | 71 | G |
| 101001 | 41 | 73 | I |
| 110111 | 55 | 87 | W |
| 101001 | 41 | 73 | I |
| 101000 | 40 | 72 | H |
| 100011 | 35 | 67 | C |
| 110011 | 51 | 83 | S |
### Texto resultante
```
HWTCATQISHAGIWIHCS
```
### Distribución de letras
```
A(2) C(2) G(1) H(4) I(3) Q(1) S(2) T(2) W(2)
Total: 18 letras, 9 letras únicas
```
### Palabras formables con estas letras
**6 letras:** SWITCH, TACTICS, STATIC, STITCH, THATCH, TWITCH, ATTACH
**5 letras:** CATCH, CHATS, HATCH, WATCH, WITCH
**4 letras:** ACTS, CASH, CAST, CATS, CHAT, CHIT, GAIT, GASH, GIST, HATS, ITCH, SCAT, SIGH, SWIG, THAT, THIS, TICS, TWIG, TWIT, WAGS, WAIT, WASH, WHAT, WHIG, WHIT, WISH, WITH, WITS, THAW
**Nota:** Ninguna combinación de 2-3 palabras consume exactamente las 18 letras.
### Cifrados probados SIN éxito
| Cifrado | Variantes probadas | Resultado |
|---|---|---|
| **Vigenère** | 70+ claves nombradas + **todas las 17.576 claves de 3 letras** | Mejor score 8/18, sin texto legible |
| **Autokey** | NULLSECTOR, DCD, PUERTA, etc. | Sin texto legible |
| **Beaufort** | Múltiples claves | Sin texto legible |
| **Transposición columnar** | 40+ claves (DCD, NULLSECTOR, PUERTA, CURVE, etc.) | Sin texto legible |
| **Rail fence** | 2-9 raíles | Sin texto legible |
| **Escítala** | Circunferencias 2-9 | Sin texto legible |
| **Cifrado de ruta (espiral)** | Cuadrículas 2x9, 3x6, 4x5, 5x4, 6x3, 7x3, 9x2 | Sin texto legible |
| **Playfair** | 50+ claves | Sin texto legible |
| **Two-square** | 5 pares de claves | Sin texto legible |
| **Polybius** | Con clave NULLSECTOR | Ida y vuelta da el mismo texto |
| **ROT-N** | 25 rotaciones | Sin texto legible |
| **Atbash** | — | Sin texto legible |
| **XOR** | Con clave de audio, ECIES, SHA256 | Basura binaria |
| **Base64** | 6-bit → índice base64 → decode | Sin texto legible |
| **Reagrupación bits** | 108 bits → 7-bit, 8-bit | Sin texto legible |
| **Baudot/ITA2** | 5-bit | Sin texto legible |
| **Bacon** | 5-bit | Sin texto legible |
| **Cifrado César hex-shift** | Sobre valores 6-bit | Sin texto legible |
| **Índices en NULLSECTOR** | val mod 10 con offsets 0-9 | Sin texto legible |
---
## Análisis cruzado entre secciones
### Relaciones probadas
| Hipótesis | Resultado |
|---|---|
| Audio hex = clave privada `k`, verificar `k * G = Q` en cualquier curva | ❌ Falla en todas las curvas |
| Diferencia de Gx (53954406526943154449553849515060563) como clave | ❌ No produce texto ni Q |
| ECIES: `k * Q` como secreto compartido → descifrar sección I | ❌ Basura |
| SHA256 del audio hex = algún parámetro del puzzle | ❌ No coincide |
| Hash del archivo WAV = algún parámetro del puzzle | ❌ No coincide |
| Audio hex como clave AES-256 para descifrar sección I | ❌ Sin librería AES pura, pero XOR simple no funciona |
| Sección I como escalar × G en alguna curva = punto significativo | ❌ No |
| Coordenadas de Q ⊕ audio bytes = texto | ❌ Basura |
### Conexión narrativa
```
Sección IV: "No hay camino. Hay una puerta."
↓ ↓
Sección II: Curva rota (no hay Sección III: Audio hex
camino matemático) = LA PUERTA (256-bit key)

Sección I: Mensaje cifrado (¿detrás de la puerta?)
```
---
## Lo que NO se ha conseguido
1. **Descifrar la sección I:** `HWTCATQISHAGIWIHCS` permanece sin descifrar tras probar ~17.700 combinaciones de cifrado/clave. El cifrado usado y/o la clave son desconocidos.
2. **Verificar `k * G = Q`:** La curva híbrida impide toda verificación ECC estándar. No se ha encontrado ningún `(p, a, b)` donde G y Q estén simultáneamente en la curva.
3. **Encontrar la bandera (flag) definitiva:** Sin descifrar la sección I, no se puede confirmar si el flag es:
- El hash hexadecimal del audio
- Un texto oculto en la sección I
- Una combinación de todas las secciones
4. **Significado de la diferencia de Gx:** El valor `0xa64285a00e45468ad0ba723492d53` (15 bytes) no produce texto ASCII legible ni coincide con hashes conocidos. Su papel permanece desconocido.
---
## Solución más probable
### Opción 1 (más probable): La flag es el hash del audio
```
NULLSECTOR{58d6dce1491f07804dd931281853367afd6ddc779bae31fb771dfe3b1a5454c5}
```
**Razonamiento:** La sección IV dice que la respuesta es una "puerta", no un "camino". El valor de 256 bits extraído del audio ES la puerta — no necesitas resolver la matemática ECC (que está rota a propósito). La sección II existe para distraer/demostrar que "no hay camino".
### Opción 2: La sección I descifrada da la flag
`HWTCATQISHAGIWIHCS` bajo un cifrado no probado (quizás con una clave compartida fuera del puzzle por DcD) produce un texto que completa el puzzle. Posiblemente requiere:
- Una clave de un canal externo (Discord, foro, etc.)
- El resultado de un "Transmission 0x01" posterior
- Un cifrado exótico no cubierto en los ~17.700 intentos
### Opción 3: Solución compuesta
La respuesta final une fragmentos de cada sección:
- Hash audio (III) = clave privada
- Dirección Bitcoin = `1Nr5cmKWMLxvYuLeWBGLbFzeGPxBguuoR6`
- Curva rota (II) = pista narrativa
- Sección I descifrada = mensaje final
### Conclusión
> **El puzzle está diseñado para comunicar una idea:** los sistemas criptográficos pueden parecer seguros pero estar rotos por dentro (parámetros híbridos). La "puerta" es el conocimiento oculto (el audio hex), no el "camino" matemático. La respuesta más directa y completa que se puede dar con la información disponible es:
>
> **`NULLSECTOR{58d6dce1491f07804dd931281853367afd6ddc779bae31fb771dfe3b1a5454c5}`**
---
## Scripts utilizados
| Script | Propósito |
|---|---|
| `analyze_wav.py` | LSB steganography, búsqueda de bytes, amplitud, zero-crossing |
| `analyze_wav2.py` | FFT con numpy — descubrimiento de tonos ultrasónicos |
| `analyze_wav3.py` | Extracción refinada de tonos → 64 dígitos hex |
| `analyze_real_wav.py` | Análisis del WAV descargado (metadata, trailing, LSB, fase) |
| `decode_all.py` | Decodificador multi-sección |
| `ecc_verify.py` / `ecc_verify2.py` | Verificación de parámetros ECC |
| `ecc_hybrid.py` | Identificación del híbrido secp256k1/P-256 |
| `comprehensive.py` | Análisis cruzado (XOR, mod, grid) |
| `final_analysis.py` | SHA256, XOR combinaciones, aritmética de coordenadas |
| `solve_full.py` | Fuerza bruta Vigenère (17.576 claves) + cifrados alternativos |
| `solve_ecc.py` | 11 tests ECC (ECIES, sustracción de puntos, pre-imágenes hash) |
| `solve_final.py` | diff*G, Bitcoin, ECIES, base64 |
| `solve_critical.py` | Test G en P-256, transposición columnar, rail fence, escítala, Playfair, Polybius |
| `solve_final2.py` | Playfair exhaustivo, anagramas, resumen final |

Si quereis algún archivo escribidme y os lo paso al telegram o lo que sea
 
  • Like
Reacciones : @jossevt

Huanca2

Autista Profesional.
Noder
me pondre mañana a verlo un poco pero estaria bien que actualizaras @DcD para saber si alguien lo ha resuelto completamente, no me gusta dedicarle esfuerzo a algo que quizás no tenga ya recompensa mayor que la satisfacción : )
 

DcD

Miembro activo
[UPDATE 0x01]
Veo que hay actividad. Bien.
Algunos estáis buscando en el sitio correcto. Otros no.
Como es costumbre en este tipo de transmisiones, cuando se detecta que el ruido supera la señal, se emite una versión con menor entropía.
La imagen original contenía más de lo que parecía. Esta también.No son la misma imagen.


El resto no cambia.

— DcD
 

Adjuntos

  • void_r1.png
    void_r1.png
    93,1 KB · Visitas: 45