Skip to content

Reconstruir pantallas RDP con los mosaicos de la caché

Por qué un collage de caché RDP se alinea en unas zonas y se desplaza en otras, cómo elegir su ancho y cómo rehacer una pantalla mosaico a mosaico.

Publicado el 8 min de lectura

Resumen. Los mosaicos de la caché RDP no tienen coordenadas en pantalla, y las piezas idénticas se guardan una sola vez. Un collage con el número adecuado de mosaicos por fila alinea las partes de una ventana que entraron en caché fila a fila, pero cada mosaico deduplicado desplaza una posición todo lo que viene detrás, así que los bordes se descuadran. Use el collage para localizar la región y después reconstruya la pantalla a mano sobre una cuadrícula: arrastre los mosaicos a su sitio, reutilice un mismo mosaico donde se repita y exporte el resultado como PNG con un JSON de disposición que documente qué colocó y dónde. RDP Bitmap Cache Parser lo hace en la pestaña Reconstruir; RdpCacheStitcher del BSI es la alternativa de escritorio.

Este artículo forma parte de la serie de investigaciones. Para los detalles de formato en los que se basa, vea el formato de archivo bcache*.bmc y Cache*.bin.

El problema: mosaicos sin coordenadas

Cada mosaico de mapa de bits de la caché se guarda con una clave, un ancho, un alto y los píxeles. Nada indica dónde estaba en la pantalla. Lo que sí tiene:

  • El orden de caché. Los mosaicos se guardan en el orden en que los contiene la caché. Para una región que el cliente recibió de una vez, como una ventana que se está dibujando, ese orden puede seguir las filas de la región.
  • El tamaño de los mosaicos. La mayoría son de 64×64. Los más estrechos o más bajos suelen venir del borde derecho o inferior de una región.
  • El contenido. El texto que continúa de un mosaico al siguiente, los bordes de ventana, las barras de título y las barras de desplazamiento son las piezas del rompecabezas.

Lo que rompe el orden:

  • La deduplicación. Una pieza que ya está en la caché no se vuelve a guardar. Un tramo de barra de título liso, una zona de consola negra vacía o un fondo de escritorio uniforme existen una sola vez, por muchas veces que aparecieran en pantalla.
  • Sesiones y vistas mezcladas. El mismo archivo acumula mosaicos de distintos momentos, ventanas y sesiones.
  • La reutilización de ranuras en los archivos .bmc, que puede dejar restos de ranura de contenido anterior.

El collage: rápido, útil y algo inexacto

Un collage dispone todos los mosaicos en una sola imagen, N mosaicos por fila, en orden de caché. bmc-tools genera uno con -b, con el número de mosaicos por fila fijado mediante -w (64 por defecto). RDP Bitmap Cache Parser ofrece la misma vista en la pestaña Collage, con un número de mosaicos por fila configurable y dos disposiciones:

DisposiciónDistribución
Orden de cachéMosaico 0 arriba a la izquierda, luego de izquierda a derecha, fila a fila
Disposición de bmc-toolsReproduce la distribución del _collage.bmp de bmc-tools, para comparar las imágenes directamente

Elegir el ancho

Si una ventana entró en caché fila a fila y tiene W mosaicos de ancho, un collage con W mosaicos por fila alinea verticalmente las filas de esa ventana. Para encontrar W:

  1. Busque un mosaico con un elemento vertical evidente (un borde de ventana, una barra de desplazamiento, una columna de texto).
  2. Cambie el valor de mosaicos por fila hasta que ese elemento forme una línea vertical recta a lo largo de varias filas.
  3. Confírmelo con el texto: las palabras cortadas en el borde de un mosaico deben continuar en el mosaico siguiente, a la derecha.

El valor por defecto de 64 mosaicos por fila rara vez coincide con el ancho de algo en pantalla. Es una visión general razonable, no una reconstrucción.

Por qué se desplaza: un ejemplo práctico

El ejemplo ficticio incluido en la herramienta (un caso sintético, no un incidente real) hace visible el efecto. Su Cache0000.bin contiene 47 mosaicos:

  • El mosaico 0 es el fondo de escritorio liso, guardado una sola vez.
  • Los mosaicos 1–25 son una ventana de consola, en orden de filas, de 7 mosaicos de ancho.

Una consola de 7 mosaicos de ancho y varias filas de alto ocupa más de 25 celdas. Las celdas que faltan son piezas idénticas a otras ya guardadas: tramos lisos de la barra de título y zonas de consola negras vacías. Cada vez que el cliente evitó guardar una pieza repetida, todos los mosaicos posteriores se desplazaron una celda a la izquierda respecto a su posición real en pantalla.

Con 7 mosaicos por fila en orden de caché:

Filas del collageMosaicosResultado
Filas centrales7–20Se alinean: el comando rclone.exe copy C:\Users\Public\data E:\exfil y su resumen de transferencia se leen de corrido
Primera y última filaAntes del 7, después del 20Se desplazan: la barra de título y la parte inferior de la consola aparecen corridas, porque faltan las piezas deduplicadas

Las filas centrales se alinean porque las líneas de consola son todas distintas, así que no se deduplicó nada en ellas. Los bordes están hechos de piezas repetitivas, así que se comprimen. Es el comportamiento normal de la caché, no un error de análisis, y ningún ancho de collage puede corregirlo por sí solo.

Reconstruir la pantalla a mano

La reconstrucción manual consiste en colocar cada mosaico en la celda que le corresponde, incluido reutilizar un mismo mosaico en varias celdas cuando se deduplicó.

Con RDP Bitmap Cache Parser

La pestaña Reconstruir es un lienzo en cuadrícula:

  1. Filtre antes los mosaicos. Revisar primero reduce la lista a los mosaicos tipo consola y tipo texto; Ocultar mosaicos lisos y duplicados elimina el ruido.
  2. Arrastre un mosaico a una celda, o seleccione un mosaico y haga clic en una celda. Un mosaico puede colocarse en tantas celdas como haga falta, que es como se rellenan las barras de título deduplicadas y las zonas de consola vacías.
  3. Parta del punto de anclaje que encontró en el collage (en el ejemplo, las filas que contienen la línea de comandos) y avance hacia fuera: la fila de arriba debe continuar los bordes y el texto de la fila de abajo.
  4. Deje las celdas vacías cuando no lo sepa. Un hueco honesto es mejor que un mosaico supuesto.
  5. Exporte un PNG del lienzo para el informe y un JSON de disposición que registre qué mosaico colocó en cada celda. El JSON hace que la reconstrucción sea revisable y repetible.

No hay unión automática ni OCR: usted lee la pantalla y la herramienta solo le ayuda a colocar las piezas.

Con RdpCacheStitcher

RdpCacheStitcher, publicado por el BSI alemán, es una interfaz gráfica que ayuda a unir en pantallas los mosaicos exportados. Trabaja con los mosaicos exportados por bmc-tools. Si su equipo ya lo usa, la exportación ZIP BMP de RDP Bitmap Cache Parser nombra los mosaicos como la salida de bmc-tools (<file>_<NNNN>.bmp), así que puede mantener ese flujo de trabajo.

Leer lo que ha reconstruido

Una pantalla reconstruida es una interpretación. Descríbala como tal:

  • Indique el método: «los mosaicos 7–20 de Cache0000.bin se alinean con 7 mosaicos por fila; las filas superiores e inferiores se colocaron manualmente; vea el JSON de disposición».
  • Separe lo observado de lo colocado: en el ejemplo, la línea de comandos es visible en mosaicos contiguos en orden de caché; la barra de título de encima la colocó el analista.
  • No deduzca orden ni hora de la imagen. Un reloj visible en una barra de tareas reconstruida (10:52 en el ejemplo) es lo que mostraba la pantalla remota en ese momento, en su propia zona horaria. Vincúlelo a la cronología con otros artefactos, como se describe en movimiento lateral por RDP: artefactos del equipo de origen.
  • Señale los restos: un resto de ranura es parte de un mosaico anterior y puede pertenecer a un momento distinto del de los mosaicos que lo rodean.

Consejos prácticos

SituaciónConsejo
Miles de mosaicosOculte los mosaicos lisos y duplicados y después use Revisar primero
Texto repartido entre mosaicosLea parejas de mosaicos en la galería antes de tocar el lienzo
Mosaicos estrechos de bordeSuelen cerrar una fila por la derecha o por abajo
Mosaicos de 8 bitsLos colores son aproximados; empareje por formas y texto
Varios archivos de cachéReconstruya por archivo; archivos distintos pueden proceder de sesiones distintas

Artículos relacionados

Artículos relacionados

Paso a paso: cargue bcache*.bmc y Cache*.bin en un parser gratuito en el navegador, haga triaje, arme un collage, reconstruya una pantalla y exporte.
Qué artefactos del equipo de origen RDP muestran adónde y cuándo se conectó un usuario, y cómo usarlos para fechar y atribuir lo que muestra la caché.
bmc-tools, RdpCacheStitcher y RDP Bitmap Cache Parser frente a frente: qué hace cada uno, cuándo usarlo en un caso y los límites reales de la herramienta web.