Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/joedefen/dwipe
Utilidades de Propósito GeneralHerramientas de Cifrado/DescifradoAnálisis ForenseRecuperación de DatosSeguridad de HardwareUtilidades y Frameworks
GitHubjoedefen/dwipe

dwipe

Herramienta para limpiar de forma segura y eficiente dispositivos y particiones para Linux

Ver Repositorio
164105hace 7 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

dwipe

dwipe es una herramienta para limpiar discos y particiones en Linux para ayudar a asegurar tus datos. dwipe busca reducir errores proporcionando amplia información sobre tus dispositivos durante la selección.

Demo de dwipe

Comparación Rápida

Característicadwipenwipeshreddd
Limpiezas de firmware (borrado seguro SATA/NVMe)✓✗✗✗
Limpiezas de software (Cero, Pseudo Aleatorio)✓✓✓✗
TUI interactiva✓✓✗✗
Múltiples limpiezas simultáneas✓✗✗✗
Estado de limpieza persistente✓✗✗✗
Detección / liberación de intercambio en caliente✓✗✗✗
Bloqueo de dispositivo/partición✓✗✗✗
Reanudar limpiezas de software interrumpidas✓✗✗✗
Registro de operaciones de limpieza✓✗✗✗
Detección/prevención de montaje✓✓✗✗
Verificación rápida de muestreo estadístico✓✗✗✗
Destrucción certificada (estándares DoD/Gutmann, verificación completa, certificados)✗✓✗✗
  • Las limpiezas de firmware (SATA/NVMe) son las más completas y rápidas: El borrado acelerado por hardware opera a nivel del controlador (segundos a minutos), borra todos los mapeos del disco, pero requiere borrado de todo el dispositivo sin informes de progreso ni verificación visible.
  • Las limpiezas de software con un solo paso de ceros son suficientes: Los discos modernos (posteriores a 2001) se limpian de manera confiable con un solo paso de ceros (NIST SP 800-88). Los modos multipaso están disponibles para mayor confianza pero no proporcionan ninguna garantía de seguridad adicional.
  • La verificación utiliza muestreo estadístico inteligente: Incluso un 1 % de muestras de verificación en todo el disco a través de 100 secciones, proporciona una cobertura completa sin una lectura secuencial completa.

Características Estrella

  • TUI interactiva con detección de intercambio en caliente - Actualizaciones de lista de dispositivos en tiempo real a medida que cambia el almacenamiento, los dispositivos recién agregados se marcan con ^
  • Limpiezas de firmware aceleradas por hardware - Soporte completo para operaciones de borrado seguro a nivel de firmware (NVMe Sanitize/Format, SATA ATA Security Erase) que se completan en segundos o minutos en lugar de horas
  • Múltiples limpiezas simultáneas - Inicia limpiezas en múltiples dispositivos a la vez con seguimiento de progreso individual y estados de finalización
  • Seguimiento de estado persistente - El estado de la limpieza sobrevive a reinicios; los estados parcialmente limpiados y completados persisten en el dispositivo (puedes reanudar limpiezas entre ciclos de energía)
  • Identificación inteligente de dispositivos - Usa UUID/PARTUUID/números de serie para seguimiento estable de dispositivos a través de reconexiones
  • Protecciones de seguridad - Evita limpiar dispositivos montados, detecta limpiezas superpuestas, soporta bloqueo de dispositivos, indicaciones de confirmación en línea
  • Verificación inteligente con muestreo estadístico - Verificación rápida que cubre todo el disco incluso a bajos porcentajes (1 % de verificación muestrea de todas las 100 secciones del disco)
  • E/S directa al disco - Limpieza rápida y eficiente que evita la contaminación de la caché de páginas con detección automática de ralentización/parada y aborto elegante
  • Múltiples temas de color - Temas de color para terminal diseñados para legibilidad con retroalimentación visual sensible al contexto (dispositivos montados atenuados, limpiezas activas brillantes)
  • Historial de limpiezas con registro - Visor detallado del historial de limpiezas que muestra marcas de tiempo, sistemas de archivos, etiquetas y porcentajes de finalización con registros persistentes

Requisitos

  • Sistema operativo Linux (usa interfaces /dev/, /sys/, /proc/)
  • Python 3.10 o superior
  • Privilegios de root/sudo (se solicitan automáticamente al ejecutar la herramienta)
  • Utilidad lsblk (generalmente preinstalada en la mayoría de las distribuciones Linux)
  • nvme-cli - Para operaciones NVMe (detección de Sanitize/Format)
  • hdparm - Para operaciones SATA (detección de ATA Security Erase)

Opcional (para copiar al portapapeles en la pantalla de historial):

  • xclip o xsel - Para portapapeles X11 (apt install xclip o xsel)
  • wl-clipboard - Para portapapeles Wayland (apt install wl-clipboard)
  • Las sesiones SSH usan la secuencia de escape de terminal OSC 52 (no se necesitan paquetes adicionales)

Instalación

  • Recomendado (usando pipx): pipx install dwipe
  • Verificar instalación: dwipe --help
  • Desinstalar: pipx uninstall dwipe

Inicio Rápido (por favor, LEE ESTO, al menos)

  1. Instala dwipe
  2. Ejecuta dwipe desde una terminal (sudo se solicitará automáticamente)
  3. Observa la ayuda sensible al contexto en la primera línea
  4. Navega con las teclas de flecha o teclas estilo vi (j/k)
  5. Presiona ? para la pantalla de ayuda completa
  6. Cuando presiones w para limpiar un disco, debes escribir la abreviatura (ej., Rand, Zero, Crypto); las limpiezas se presentan de menor a mayor recomendación, y la última está marcada con *. Normalmente, elige la última opción, pero ...
  7. Los discos y el sistema operativo a menudo mienten sobre el tipo de disco. Engáñalos a ambos:
    • Para HDDs giratorios, siempre usa Rand o Zero (interrumpible, muestra progreso).
    • Para SSDs, siempre usa limpiezas de firmware si están disponibles (más rápido, alcanza bloques ocultos).
  8. Si un disco está 'Frozen', suspende tu sistema brevemente y reanúdalo; dwipe detecta automáticamente la reanudación y vuelve a escanear. O presiona r para volver a escanear manualmente. El disco debería volver sin congelación.
  9. Si un disco está 'Locked', debes desbloquearlo manualmente (consulta la sección "Desbloquear Dispositivo Bloqueado" más abajo). Si dwipe lo bloqueó, la contraseña es NULL; de lo contrario, usa la contraseña que lo bloqueó.
  10. Flujo de trabajo de intercambio en caliente para discos SATA: DEL para desconectar, intercambia físicamente los discos, luego r para volver a escanear (si es necesario).

Características

dwipe proporciona capacidades completas de limpieza de discos con funciones de seguridad:

  • Pantalla inteligente de dispositivos - Muestra discos y particiones con etiquetas, tamaños, tipos e información de proveedor/modelo para ayudar a identificar los dispositivos correctamente
  • Protecciones de seguridad - Evita limpiar dispositivos montados, detecta limpiezas superpuestas, soporta bloqueo manual de discos
  • Detección de intercambio en caliente - Actualiza la lista de dispositivos cuando cambia el almacenamiento; los dispositivos recién agregados se marcan con ^ para que sean fáciles de detectar
  • Múltiples limpiezas simultáneas - Inicia limpiezas en múltiples dispositivos a la vez, con seguimiento de progreso individual y estados de finalización
  • Modos de limpieza flexibles - Elige entre Rand, Zero, Rand+V (con verificación automática) o Zero+V (con verificación automática)
  • Filtrado de dispositivos - Filtra dispositivos por nombre/patrón usando regex en caso de que haya demasiados para una sola pantalla
  • Capacidad de detención - Detiene limpiezas individuales o todas las limpiezas en progreso
  • Bloqueo de discos - Bloquea discos manualmente para evitar limpiezas accidentales (el bloqueo oculta todas las particiones)

Nota: dwipe muestra las etiquetas del sistema de archivos, y si no están disponibles, la etiqueta de la partición. Es una buena práctica etiquetar bien las particiones y sistemas de archivos para facilitar la selección.

Uso

Simplemente ejecuta dwipe desde la línea de comandos sin argumentos: dwipe

Opciones de Línea de Comandos

Nota: Todas las opciones de preferencia usan tus últimos valores guardados como predeterminados. Estos valores predeterminados se muestran en --help y se pueden cambiar de forma interactiva con atajos de teclado. Los argumentos de línea de comandos anulan las preferencias guardadas.

Configuración de Limpieza

  • --mode {-V,+V} - Modo de verificación (predeterminado: tu última preferencia)
    • -V - Limpiar sin verificación automática
    • +V - Verificar dispositivo después de que la limpieza se complete
  • --passes {1,2,4} - Número de pasadas para limpiezas de software (predeterminado: tu última preferencia)
    • Una sola pasada (1) es estándar para la mayoría de los casos de uso
    • Pasadas múltiples (2 o 4) alternan entre patrones de ceros y aleatorios
  • --verify-pct {1,3,10,30,100} - Porcentaje de verificación (predeterminado: tu última preferencia)
    • Porcentaje del disco a verificar después de la limpieza (1 % = verificación rápida, 100 % = verificación completa)

Visualización y Rendimiento

  • --dense {True,False} - Modo de vista compacta (predeterminado: tu última preferencia)
    • True - Espaciado compacto (menos líneas en blanco entre discos)
    • False - Vista espaciada (líneas en blanco entre discos para legibilidad)
  • --port-serial {Auto,On,Off} - Visualización de puerto/serie del disco (predeterminado: tu última preferencia)
    • Auto - Mostrar puerto/serie solo para discos completos (recomendado)
    • On - Mostrar siempre puerto y número de serie
    • Off - Nunca mostrar puerto y número de serie

Ajuste de Manejo de Discos

  • --slowdown-stop {0,4,16,64,256} - Detener si el disco se ralentiza (predeterminado: tu última preferencia, milisegundos)
    • 0 = Deshabilitado
    • Otros valores = Intervalo de verificación en milisegundos para degradación del rendimiento
  • --stall-timeout {0,60,120,300,600} - Tiempo de espera por parada en segundos (predeterminado: tu última preferencia)
    • 0 = Deshabilitado (sin tiempo de espera)
    • Otros valores = Detener limpieza si no hay progreso de transferencia de datos durante estos segundos

Opciones Avanzadas

  • --firmware-wipes o -F - Habilitar limpiezas de firmware
    • Habilita operaciones de borrado seguro basadas en hardware (NVMe Sanitize/Format, SATA ATA Security Erase)
    • Sin esta bandera, solo están disponibles limpiezas de software (Zero/Rand)
  • --dump-lsblk - Volcar información analizada del dispositivo y salir (para depuración)
  • --help - Mostrar mensaje de ayuda con todas las opciones disponibles

Leyenda de Colores

dwipe utiliza codificación de colores para proporcionar retroalimentación visual instantánea sobre el estado del dispositivo y la operación:

  • Atenuado (gris) - Dispositivos montados o bloqueados (no se pueden limpiar)
  • Predeterminado (blanco) - Listo para limpiar, estado inactivo, o limpiado previamente (antes de esta sesión)
  • Cian/azul brillante + negrita - Limpieza activa o verificación en progreso (0-100 % escritura, v0-v100 % verificación)
  • Amarillo negrita - Limpieza detenida o parcialmente completada
  • Verde negrita - ✅ Limpieza completada con éxito en ESTA sesión (¡listo para intercambiar!)
  • Verde más atenuado - ✅ Limpieza completada con éxito en sesión anterior .
  • Naranja negrita - Dispositivo recién insertado (intercambiado en caliente)
  • Rojo negrita - Indicaciones de operación destructiva (confirmación de limpieza)

Temas de Color

dwipe soporta múltiples temas de color para mejorar la visibilidad y la estética.

Temas disponibles:

  • default - Terminal Predeterminado (colores ANSI básicos)
  • dark-mono - Mono Oscuro (casi blanco sobre casi negro con colores brillantes)
  • light-mono - Mono Claro (casi negro sobre casi blanco con colores brillantes)
  • solarized-dark - Paleta Solarized Oscura
  • solarized-light - Paleta Solarized Clara (para fondos de terminal claros)
  • gruvbox - Paleta Gruvbox Oscura
  • nord - Paleta Nord

Cambiar temas:

  • Presiona t desde la pantalla principal para abrir la pantalla de vista previa de temas
  • La pantalla de temas muestra ejemplos de color para cada propósito de color (PELIGRO, ÉXITO, ADVERTENCIA, etc.)
  • Presiona t mientras estás en la pantalla de temas para recorrer los temas disponibles y previsualizarlos en vivo
  • Presiona ESC o ENTER para volver a la pantalla principal
  • El tema seleccionado se guarda y persiste entre sesiones

Características del tema:

  • Color amarillo/advertencia para limpiezas detenidas (estado s) - muy visible incluso cuando no está seleccionado
  • Color rojo/peligro para indicaciones de confirmación de limpieza
  • Paletas de color coordinadas diseñadas para legibilidad en terminal

Valores de Estado del Dispositivo

La columna ESTADO muestra el estado actual de cada dispositivo:

EstadoSignificado
-El dispositivo está listo para limpiar
^El dispositivo está listo para limpiar Y fue añadido después de que dwipe inició (intercambiado en caliente)
MntLa partición está montada o el disco tiene particiones montadas - no se puede limpiar
N%La limpieza está en progreso (muestra porcentaje completado, 0-100%)
vN%La verificación está en progreso (muestra porcentaje completado, v0-v100%)
STOPLa limpieza o verificación se está deteniendo
sLa limpieza fue detenida - el dispositivo está parcialmente limpiado (puedes reiniciar o verificar)
WLa limpieza se completó con éxito (puedes limpiar de nuevo o verificar)
BlkEl disco está bloqueado manualmente - las particiones están ocultas y no se pueden limpiar
UnblEl disco acaba de ser desbloqueado (estado transitorio)

Acciones Disponibles

La línea superior muestra las acciones disponibles. Algunas son sensibles al contexto (solo disponibles para ciertos dispositivos):

TeclaAcciónDescripción
wlimpiarLimpiar el dispositivo seleccionado (requiere confirmación)
vverificarVerificar un dispositivo limpiado o detectar patrón en disco sin marcar (sensible al contexto)
sdetenerDetener la limpieza seleccionada en progreso (sensible al contexto)
SDetener TodoDetener todas las limpiezas en progreso
DELeliminarEliminar disco del sistema (solo discos completos, sensible al contexto)
bbloquear/desbloquearBloquear o desbloquear un disco para evitar limpiezas accidentales
/filtrarFiltrar dispositivos por patrón regex (muestra dispositivos coincidentes + todas las limpiezas activas)
rreescanearReescanear todos los dispositivos y restablecer detección de capacidades de hardware
hhistorialMostrar registro de historial de limpiezas
ttemasAbrir pantalla de vista previa de temas para ver y cambiar temas de color
q o xsalirSalir de la aplicación (detiene todas las limpiezas primero)
?ayudaMostrar pantalla de ayuda con todas las acciones y teclas de navegación
ESClimpiar filtroLimpiar el filtro y saltar al principio de la lista
ESCatrásVolver a la pantalla anterior si estás en una pantalla anidada
aformato de horaAlternar formato de visualización de tiempo del historial de limpiezas (hace+tiempo, hace, tiempo)

Pantalla de Historial

Presiona h para ver el registro del historial de limpiezas. La pantalla de historial muestra todas las operaciones de limpieza y verificación con marcas de tiempo, información del dispositivo y resultados.

Acciones de la pantalla de historial:

  • e - Expandir/colapsar entrada para mostrar detalles JSON completos
  • c - Copiar entrada actual al portapapeles (ver más abajo)
  • / - Buscar/filtrar entradas (prefijo con / para búsqueda JSON profunda)
  • a - Alternar formato de tiempo (hace+tiempo, hace, tiempo)
  • ESC - Volver a la pantalla principal

Métodos de copia al portapapeles (detectados automáticamente):

EntornoMétodoNotas
Sesión SSHOSC 52Secuencia de escape de terminal; requiere soporte del terminal (iTerm2, kitty, alacritty, Windows Terminal, tmux con set-clipboard on)
Waylandwl-copyRequiere paquete wl-clipboard
X11xclip/xselRequiere paquete xclip o xsel
AlternativaTerminalSale al shell, imprime la entrada para copia manual

Nota: Si OSC 52 no funciona con tu terminal, el texto aún aparece en pantalla para selección manual. Para tmux, habilita el portapapeles con set -g set-clipboard on en tu .tmux.conf.

Tipos de Limpieza

dwipe soporta limpiezas de firmware (aceleradas por hardware) y limpiezas de software. Las limpiezas de firmware requieren la bandera --firmware-wipes o -F. Las tablas a continuación listan los métodos de limpieza desde el más deseable (Rango 1) hasta el menos.

Unidades NVMe

RangoAbrevNombre OficialObservaciones
1CryptoSanitize Cryptographic EraseMás rápido; borra claves de cifrado; invalidación instantánea de datos
2BlockSanitize Block EraseRápido; restablece todos los bloques al estado desasignado
3FCryptoFormat with Crypto EraseRápido; reformatea el espacio de nombres con borrado de claves
4FEraseFormat with User Data EraseRápido; reformatea con borrado simple de datos; menos completo que crypto
5OvwrSanitize OverwriteMinutos; escribe patrón en todos los bloques; más completo pero rara vez necesario
6RandSoftware Random WriteAlternativa; escribe datos aleatorios mediante software; horas para unidades grandes
7ZeroSoftware Zero WriteAlternativa; escribe ceros mediante software; verificable pero más lento

SSDs SATA (con funciones de cifrado/sanitización)

RangoAbrevNombre OficialObservaciones
1SCryptoSanitize Cryptographic EraseMás rápido; borra claves de cifrado; requiere función SANITIZE
2EnhancedATA Security Erase EnhancedRápido; borrado profundo específico del proveedor con destrucción de claves de cifrado
3SBlockSanitize Block EraseRápido; restablece bloques al estado de fábrica; requiere función SANITIZE
4EraseATA Security Erase NormalMinutos; escribe ceros en todos los sectores; ampliamente soportado
5SOverwriteSanitize OverwriteMinutos; sobrescribe con patrón; requiere función SANITIZE
6RandSoftware Random WriteAlternativa; no puede alcanzar bloques desgastados por nivelación o reasignados
7ZeroSoftware Zero WriteAlternativa; no puede alcanzar bloques desgastados por nivelación o reasignados

HDDs SATA (unidades giratorias)

RangoAbrevNombre OficialObservaciones
1RandSoftware Random WritePreferido; interrumpible, reanudable, muestra progreso
2ZeroSoftware Zero WritePreferido; interrumpible, reanudable, verificación rápida
3EnhancedATA Security Erase EnhancedLento (horas); no interrumpible; sin progreso; mismo resultado que software
4EraseATA Security Erase NormalLento (horas); no interrumpible; sin progreso; mismo resultado que software

Nota: Los HDDs no tienen nivelación de desgaste ni bloques ocultos, por lo que las limpiezas de software son igual de completas que las de firmware pero ofrecen mejor control (progreso, pausa/reanudación, interrumpibilidad).

Particiones y Unidades USB/Thumb

RangoAbrevNombre OficialObservaciones
1RandSoftware Random WritePreferido; patrón impredecible; verificación estadística
2ZeroSoftware Zero WriteMás simple; verificación rápida (falla en el primer byte no cero)

Notas:

  • Las limpiezas de firmware muestran solo los métodos soportados por cada unidad (ver columna FwCAPS).
  • Las limpiezas de firmware incluyen verificación spotcheck automática.
  • El sufijo +V habilita la verificación automática después de las limpiezas de software. Sin +V, presiona v para verificar manualmente.
  • Las limpiezas de software multipaso (2 o 4) alternan patrones cero/aleatorios, terminando en el modo seleccionado.
  • Las unidades USB y particiones carecen de borrado de firmware—solo limpiezas de software disponibles.

Reanudación de LIMPIEZAS DE SOFTWARE Detenidas

Las limpiezas detenidas (estado s) pueden reanudarse presionando w en el dispositivo. Elige el mismo tipo de limpieza o comenzará de nuevo al 0% completado.

Cómo Funciona la Reanudación:

  • Conserva el modo de limpieza original (Rand o Zero) de cuando se inició la limpieza
  • Usa la configuración de pasadas actual para determinar cuánto más escribir
  • Continúa desde el desplazamiento de byte exacto donde se marcó que se detuvo (redondeado al límite de búfer). Las "marcas" se escriben aproximadamente cada 30s, por lo que para limpiezas que no terminaron de forma elegante, la posición puede estar hasta 30s (o un poco más) de los últimos bloques de disco limpiados.

Ejemplos de Reanudación:

Detenido alPasadas ActualesQué Sucede
50%1 pasadaReanuda: escribe el 50% restante
150% (1.5 de 4 pasadas)1 pasadaYa completado (150% > 100%)
150% (1.5 de 4 pasadas)4 pasadasReanuda: escribe 2.5 pasadas más (150% → 400%)
100% (1 pasada completada)2 pasadasReanuda: escribe la pasada 2 (100% → 200%)

Beneficios:

  • Cambia la configuración de pasadas antes de reanudar para terminar más rápido (reducir) o agregar más pasadas (aumentar)
  • No es necesario reiniciar desde el principio
  • Marcador de progreso actualizado cada 30 segundos, por lo que la reanudación funciona incluso después de fallos o pérdida de energía
  • Validación automática previene patrones finales corruptos

Estrategia de Verificación de Limpieza de Software

Las limpiezas de software utilizan verificación inteligente con análisis estadístico y optimizaciones de fallo rápido. La verificación es configurable y opcional.

Muestreo Inteligente:

  • Divide el disco en 100 secciones iguales
  • Muestra aleatoriamente un porcentaje configurable (1%, 3%, 10%, 30%, 100%) de CADA sección
  • Asegura cobertura completa del disco incluso con verificación al 1%
  • Establece el porcentaje de verificación con la opción de línea de comandos --verify-pct (guardado como preferencia)

Detección de Patrones:

  • Verificación de ceros: Falla inmediatamente en el primer byte no cero (¡rápido!)
  • Verificación aleatoria: Análisis estadístico de la distribución de bytes
    • Prueba si la distribución de bytes es uniforme (todos los valores de byte 0-255 aparecen de manera bastante equitativa)
    • Fallo rápido periódico si se detecta un patrón no aleatorio
    • Busca evidencia de aleatoriedad para distinguir de datos estructurados

Modos de Verificación:

  1. Verificación automática (después de la limpieza): Usa un modo con sufijo +V (Rand+V o Zero+V) y establece el % de verificación > 0
  2. Verificación manual (presiona v): Verificar dispositivos previamente limpiados o detectar patrón en discos sin marcar (requiere % de verificación > 0)
  3. Detección de disco sin marcar: Puede verificar discos sin sistema de archivos para detectar si son todos ceros o aleatorios
    • Si pasa, escribe un marcador como si el disco hubiera sido limpiado
    • Útil para detectar discos previamente limpiados o verificar borrado del fabricanteEstados de verificación:
  • ✓ (marca de verificación verde) - Verificación superada
  • ✗ (X roja) - Verificación fallida
  • Sin símbolo - No verificado
  • Durante la verificación: vN% muestra el progreso (v0% a v100%)

Por qué el muestreo estadístico es mejor que el secuencial:

  • El muestreo estadístico con 100 secciones proporciona mejor cobertura que la lectura secuencial con el mismo porcentaje
  • Detecta problemas más rápido (podría encontrar un sector defectuoso en las primeras secciones)
  • El análisis estadístico realmente valida la aleatoriedad (el secuencial no puede hacerlo)
  • Mucho más rápido que la verificación secuencial al 100%

Estrategia de verificación de borrado de firmware

Los borrados de firmware (borrado seguro SATA/NVMe) utilizan una verificación por muestreo incondicional que se realiza automáticamente para todos los borrados de firmware. Esto verifica que el comando de borrado del hardware se haya ejecutado realmente.

Enfoque de muestreo:

  • Antes del borrado: Escribir bloques de datos de prueba en tres ubicaciones estratégicas (inicio, medio, final de la unidad)
  • Ejecutar el comando de borrado del firmware a nivel del controlador
  • Después del borrado: Leer esas tres ubicaciones de prueba y verificar que ya no contienen los datos originales
  • Si algún bloque de prueba aún contiene datos similares, el borrado ha fallado y se informa

Por qué el muestreo es efectivo:

  • Prueba que el borrado interno de la unidad realmente se procesó (no solo un acuse de recibo del comando)
  • La estrategia de tres ubicaciones (0%, 50%, 100% de la unidad) asegura cobertura en todo el dispositivo
  • Detecta errores de firmware o fallos de hardware que podrían informar éxito pero no hacer nada
  • Mucho más rápido que la verificación secuencial (solo se leen 3 bloques en lugar de un porcentaje de toda la unidad)
  • Obligatorio e incondicional: No se requiere configuración del usuario ni paso de verificación adicional

Nota importante: Los borrados de firmware no muestran verificación basada en porcentajes como los borrados de software. El muestreo ocurre silenciosamente como parte de la operación de borrado, y el éxito/fracaso se registra en el marcador persistente de estado de borrado.

Información de progreso

Al borrar un dispositivo por software, dwipe muestra:

  • Tiempo transcurrido - Tiempo desde que inició el borrado (ej., 1m18s)
  • Tiempo restante - Tiempo estimado hasta completar (ej., -3m6s)
  • Tasa de escritura - Rendimiento actual (ej., "45.2MB/s")
  • MaxSlowDown - Relación entre la velocidad de escritura más rápida y la más lenta (ej., ÷2). Si supera el umbral, el trabajo de escritura se detiene.
  • MaxWriteDelay - El mayor retraso de escritura detectado (ej., 𝚫122ms). Si supera el umbral, el trabajo de escritura se detiene.

Estado persistente

Los estados W (borrado) y s (borrado parcial) son persistentes entre reinicios. Esto se logra escribiendo metadatos en los primeros 16KB del dispositivo:

  • Primeros 15KB: ceros
  • Siguientes 1KB: metadatos JSON (marca de tiempo, bytes escritos, tamaño total, modo, estado de verificación)

Cuando se muestra un dispositivo con estado persistente, aparece información adicional:

  • Cuándo fue borrado y el porcentaje de completitud
  • Estado de verificación: ✓ (superado), ✗ (fallido), o sin símbolo (no verificado)

La pantalla de ayuda

Cuando se presiona ?, se pueden ver las teclas disponibles y las opciones de línea de comandos con su configuración actual.

Navegación

Puedes navegar por la lista de dispositivos con:

  • Teclas de flecha - Arriba/Abajo para moverse por la lista
  • Teclas tipo vi - j (abajo), k (arriba), g (arriba del todo), G (abajo del todo)
  • Re Pág/Av Pág - Navegación rápida en listas largas

Filtrado de dispositivos

La tecla / activa el filtrado de búsqueda incremental con comportamiento al estilo vim:

Cómo funciona:

  • Presiona / para iniciar el filtrado
  • Escribe tu patrón regex: la lista de dispositivos se actualiza mientras escribes (filtrado en tiempo real)
  • La posición del cursor se muestra con | en el encabezado
  • Teclas de flecha, Inicio/Fin y Retroceso funcionan para editar
  • ENTER para aceptar el filtro
  • ESC para cancelar y restaurar el filtro anterior

Ejemplos de filtro:

El filtro admite patrones regex. Aquí hay algunos ejemplos útiles:``` /sda # Show only sda and its partitions /sd[ab] # Show sda, sdb and their partitions /nvme # Show all NVMe devices /nvme0n1p[12] # Show only partitions 1 and 2 of nvme0n1 /usb # Show devices with "usb" in their labels

root@kitploit:~
Presiona **ESC** desde la pantalla principal para limpiar el filtro y volver a mostrar todos los dispositivos.

**Nota:** Los patrones regex no válidos se ignoran; el filtro se mantiene en el último patrón válido mientras escribes.

## Consideraciones de Seguridad

**Limitaciones importantes de los borrados por software:**

- `dwipe` soporta borrados multipaso con patrones alternantes, pero no implementa secuencias de patrones certificadas específicas de DoD 5220.22-M o Gutmann
- Es más que adecuado para **datos personales y empresariales** que no requieren destrucción certificada (anticuada)
- **NO es adecuado** para datos clasificados, ultrasecretos o altamente sensibles que requieren un borrado específico de patrones certificados con certificados de cumplimiento
- **Consideraciones sobre SSD**:
  - Los SSD modernos usan nivelación de desgaste (wear-leveling) y pueden retener datos en bloques no asignados
  - TRIM/DISCARD puede impedir el borrado completo de datos
  - Para SSD, considera las utilidades de borrado seguro del fabricante para máxima seguridad
  - El modo aleatorio puede no proporcionar seguridad adicional sobre ceros en SSD

**Mejores prácticas:**
- Verifica cuidadosamente las etiquetas y tamaños de los dispositivos antes de borrar
- Usa la función **Bloquear** para proteger discos críticos
- Considera el cifrado para datos sensibles como medida de seguridad primaria

---
---

## Solución de Problemas

### dwipe no se inicia
- **Error: "cannot find lsblk on $PATH"** - Instala el paquete `util-linux`
- **Permiso denegado** - `dwipe` solicita sudo automáticamente; asegúrate de poder usar sudo

### Problemas de visualización en la terminal
- **Pantalla corrupta después de un fallo** - Ejecuta el comando `reset` o `stty sane`
- **Los colores no funcionan** - Asegúrate de que tu terminal soporte colores (la mayoría de terminales modernas lo hacen)

### Problemas de borrado
- **No se puede borrar un dispositivo** - Revisa la columna ESTADO:
  - **Mnt** - Desmonta la partición primero: `sudo umount /dev/sdXN`
  - **Blk** - Presiona **b** para desbloquear
  - **Busy** - Otra partición en el disco está siendo borrada
- **El borrado es muy lento** - Normal en discos grandes; verifica la tasa de escritura para monitorear el progreso
- **El borrado parece atascado** - Probablemente debido a discos defectuosos; la E/S directa hace que el progreso sea casi constante en discos buenos.

---
### Consideraciones sobre Borrado de Firmware

Los borrados de firmware (operaciones de borrado seguro SATA/NVMe) tienen características diferentes a los borrados por software:

**Unidades Congeladas:**
- Las unidades SATA suelen estar congeladas por la BIOS/UEFI durante el POST como medida de seguridad
- Esto es una característica de seguridad a nivel de unidad, no una limitación de `dwipe`
- **Solución**: Suspende brevemente tu sistema y reanúdalo; `dwipe` detecta automáticamente la reanudación y vuelve a escanear (o presiona **r** manualmente). La suspensión/reanudación cicla la alimentación del enlace SATA, lo que descongela la unidad.
- Si la unidad permanece congelada después de la suspensión/reanudación, prueba un apagado completo (10+ minutos para que los condensadores de la unidad se descarguen) seguido de arranque y nuevo escaneo

**Particularidades y Compatibilidad de Dispositivos:**
- Los dispositivos de almacenamiento tienen varias implementaciones de firmware y peculiaridades de hardware que afectan las operaciones de borrado seguro
- Algunas unidades pueden no soportar completamente ciertas operaciones de sanitización, tener problemas de temporización o mostrar un comportamiento inesperado
- `dwipe` no puede garantizar que todos los dispositivos se borren con éxito; algunos hardwares simplemente no cooperan con los comandos de borrado
- Siempre verifica una unidad después de borrarla (usa la tecla **v**) para confirmar que el borrado se haya completado realmente
- Para datos de misión crítica en hardware peculiar, considera usar herramientas de borrado seguro específicas del fabricante como alternativa

---
### Cómo Lidiar con Discos Defectuosos o Fallidos

dwipe incluye protecciones incorporadas para dispositivos de almacenamiento problemáticos:

**Manejo Automático de Errores.** Al encontrar errores de disco durante el borrado:
*   Errores de escritura consecutivos: El borrado se aborta después de 3 escrituras fallidas consecutivas
*   Umbral total de errores: El borrado se aborta después de 100 errores de escritura en total
*   Reintento automático: En fallo de escritura, el dispositivo se cierra y reabre automáticamente (recuperación de errores transitorios)
*   Recuperación de descriptores de archivo: Se detectan estados de FD malos y se refrescan los manejadores

**Detección de Estancamiento y Ralentización.** dwipe monitorea el rendimiento de escritura y puede abortar operaciones problemáticas:
*   Detección de estancamiento: Aborta si no hay progreso durante 5 minutos (configurable)
*   Detección de ralentización: Mide la velocidad base durante los primeros 5 segundos, aborta si la velocidad cae por debajo del umbral (p. ej., 1/4 de la velocidad base)
*   Seguimiento de progreso: El monitoreo continuo asegura que las escrituras realmente lleguen al dispositivo

**Si un Borrado se Atasca...** Si un borrado parece congelado o no responde:
*   Primer intento: Presiona s para detener de manera ordenada el borrado seleccionado
*   Espera pacientemente: Algunas operaciones de disco pueden tardar minutos en expirar a nivel del kernel
*   Si sigue atascado: Presiona S (Mayús+s) para DETENER todos los borrados
*   Último recurso: Si la interfaz está completamente congelada:
    *   Presiona Ctrl-Z para suspender `dwipe`
    *   En la terminal, ejecuta: `sudo pkill -f "python.*dwipe" (solo apunta a procesos dwipe)`
    *   Ejecuta reset para restaurar la terminal si la pantalla está corrupta

**Previniendo Problemas con Medios Problemáticos.** Para discos conocidos como defectuosos o hardware cuestionable:
*   Comienza con verificación: Presiona v primero para probar legibilidad
*   Usa velocidades más bajas: Habilita la limitación de páginas sucias (tecla d) para reducir presión de E/S
*   Monitorea los registros del sistema: Revisa dmesg -w en otra terminal para errores de disco
*   Considera problemas de hardware: Los gabinetes USB, cables y controladores suelen causar problemas

**Patrones Comunes de Error de Disco**
*   Caídas de conexión USB: dwipe detectará e intentará recuperarse
*   Sectores defectuosos: Los errores se contarán; el trabajo se aborta si son excesivos
*   Tiempos de espera del controlador: El kernel puede colgarse; la detección de estancamiento debería activarse
*   Disco lleno: Los errores de escritura más allá del final del dispositivo se manejan correctamente

**Recuperación Después de un Aborto.** Si un borrado se aborta debido a errores de disco:
*   El estado del dispositivo muestra s (detenido/parcial)
*   Puedes intentar reanudar (w) - puede tener éxito si el error fue transitorio
*   O verificar (v) para ver qué se escribió realmente
*   Considera reemplazar el disco si los errores persisten

Nota: Algunos discos están fundamentalmente rotos y no pueden borrarse de manera confiable. dwipe se protegerá a sí mismo y a tu sistema, pero no puede reparar fallas de hardware.
---
#### Recomendaciones para Borrado SATA a través de USB
* Requisito 1: Soporte SAT (SCSI-ATA Translation)

  * El puente USB debe ser capaz de "pasar" comandos ATA.
  * La Prueba: Si la aplicación puede ver la sección "Seguridad" en los detalles de la unidad, el puente soporta SAT.

* Requisito 2: Alimentación Estable
  * Los borrados de firmware (especialmente en HDD de 3.5") consumen una potencia pico significativa.
  * El Riesgo: Si se usa un cable "solo bus" alimentado por USB, el voltaje puede caer durante el borrado, causando que el puente se reinicie y "bloquee" la unidad en un estado bloqueado.
  * La Recomendación: Usa siempre un dock USB con alimentación externa para unidades de 3.5".

* Requisito 3: Integridad del Tiempo de Espera de Comandos
  * El puente no debe tener un "Watchdog Timer" agresivo.
  * El Riesgo: Algunos puentes se desconectan si no ven "datos" durante 60 segundos. Durante un borrado de firmware, la unidad está ocupada internamente y no envía datos.
  * La Recomendación: Usa conjuntos de chips de alta calidad como ASMedia (1153E) o JMicron (JMS578).

##### Desbloquear Dispositivo Bloqueado```
sudo hdparm --user-master u --security-unlock NULL /dev/sdX
sudo hdparm --user-master u --security-disable NULL /dev/sdX

Contribuciones

Los Issues y Pull Requests son bienvenidos en github.com/joedefen/dwipe

Licencia

Licencia MIT - consulte el archivo LICENSE para obtener más detalles.

Descargar herramienta