Tutoriales

WinDiff: una herramienta integral para la comparación y análisis binario de Windows

WinDiff es una herramienta de código abierto basada en web que permite explorar y comparar la información de símbolos, tipos y llamadas al sistema de archivos binarios de Microsoft Windows de diferentes versiones del sistema operativo. La base de datos binaria se actualiza automáticamente para incluir información de las últimas actualizaciones de Windows, incluidas Insider Previews.

está inspirado en ntdiff y fue posible gracias a la ayuda de Índice de Wenbin.

cómo funciona

WinDiff consta de dos partes: una herramienta CLI escrita en Rust y una interfaz web escrita en TypeScript utilizando el marco Next.js.

La herramienta CLI se utiliza para generar una base de datos JSON comprimida a partir del archivo de configuración y se basa en Winbindex Busque y descargue el PE (y PDB) requerido.El tipo se reconstruye usando resym. La idea detrás de la herramienta CLI es poder actualizar y regenerar fácilmente el repositorio cuando se lanza una nueva versión de Windows. El código de la herramienta CLI se encuentra en windiff_cli Tabla de contenido.

La interfaz se utiliza para visualizar los datos generados por la herramienta CLI de una manera fácil de usar.La parte delantera sigue los mismos principios. ntdiffporque permite explorar información extraída de Microsoft PE y PDB oficiales para ciertas versiones de Microsoft Windows, y también permite comparar esta información entre versiones.El código de interfaz se encuentra en windiff_frontend Tabla de contenido.

Acción programada de GitHub para obtener nuevas actualizaciones de Winbindex Los archivos de configuración utilizados para generar versiones en vivo de WinDiff se actualizan diariamente. Actualmente, debido a limitaciones de almacenamiento y computación (plan gratuito), solo base de conocimiento y conservar las actualizaciones de Insider Preview durante menos de un año Para la versión en vivo. Por supuesto, si es necesario, puedes reconstruir tú mismo la versión nativa de WinDiff sin estas restricciones. Consulte la siguiente sección.

LEER  Cómo manipular archivos con redirección de shell y canalizaciones en Linux

notas: Winbindex No existe un enlace de descarga único para archivos 100% indexados, por lo que puede haber casos en los que cierta información de PE no esté disponible en WinDiff. Sin embargo, una vez que estos PE aparecen en VirusTotal, Winbindex Podrás proporcionarles un enlace de descarga único y luego se integrarán automáticamente en WinDiff.

cómo construir

requisitos previos

  • Óxido 1.68 o superior
  • Node.js 16.8 o superior

línea de comando

La versión completa de WinDiff está «autodocumentada» en ci/build_frontend.sh, que es el script de compilación utilizado para crear una versión activa de WinDiff. Esto es lo que hay dentro:

# Resolve the project's root folder
PROJECT_ROOT=$(git rev-parse --show-toplevel)

# Generate databases
cd "$PROJECT_ROOT/windiff_cli"
cargo run --release "$PROJECT_ROOT/ci/db_configuration.json" "$PROJECT_ROOT/windiff_frontend/public/"

# Build the frontend
cd "$PROJECT_ROOT/windiff_frontend"
npm ci
npm run build

El archivo de configuración utilizado para generar datos de la versión en vivo de WinDiff se encuentra aquí: ci/db_configuration.json, pero puedes personalizarlo o utilizar el tuyo propio. Son bienvenidos los PR para agregar archivos binarios para el seguimiento en la configuración en vivo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba