Apuntes M11 UF4
Apuntes M11 UF4
Apuntes M11 UF4
Imagen 1
Definición
Tipos
Ejemplos
Definición
El término usado en el ambiente empresarial es High Availability (HA). Esto nos lo vamos a
encontrar en infinidad de infraestructuras, porque es muy utilizado en entornos empresariales
para poder tener 100 % disponibilidad, o bien de aplicaciones, o de la información que utilice la
organización.
Podemos tener diferentes tipos de alta disponibilidad, por ejemplo, de activo a pasivo, o de
activo a activo.
Página 1 de 38
Imagen 2
Tipos
Aquí es donde podemos ver un poco más la definición del activo-pasivo o activo-activo. Nosotros
podemos tener diferentes tipos de alta disponibilidad, como acabamos de hablar: o bien por
aplicaciones, que sean una base de datos, o una aplicación vectorizada a través de [¿?] o, por
ejemplo, 2 balanceadores de carga… esto depende del coste, pero se pueden tener hasta 4
balanceadores de carga activo-activo, o 2 balanceadores de carga en forma activa y 2 en forma
pasiva. Esto lo podemos extrapolar igualmente a cualquier tipo de otro hardware, o bien sea un
cortafuegos, o un router, o un switch.
Lo que tenemos que entender es que con todo esto buscamos no cargar siempre un sistema, y
poder tener una réplica igual o similar para poder levantar, en caso de pérdida, un servicio
idéntico.
Imagen 3
Página 2 de 38
Ejemplos
Alta disponibilidad en bases de datos. Esto es muy usado cuando se utilizan bases de datos
enormes (por ejemplo, supermercados o entornos empresariales como la banca o las
energéticas, que utilizan información grandísima de clientes y bases de datos gigantes) es
preciso tener alta disponibilidad. De lo contrario, en un momento dado se caería la base de datos
y se quedaría toda la compañía sin acceder a determinadas consultas.
Otro ejemplo que no he comentado, que lo he vivido yo en entorno empresarial: Oracle tiene
un sistema de base de datos que se llama GoldenGate que lo que hace es que va replicando las
tablas o las bases de datos en diferentes CPDs de una organización. Así, de forma instantánea
cada vez que se inserta algo nuevo o se actualiza una tupla (registro/fila) en una base de datos,
automáticamente se va a replicar para todos los CPDs que se tengan desplegados. De esta forma,
en caso de pérdida completa de comunicación en un CPD lo tengo replicado en diferentes CPDs,
y no dejaría de funcionar.
Imagen 4
Página 3 de 38
ICA0011-S07-C01-V02 - Sistemas Clústeres y Balanceadores de Carga
(https://lasallefponline.sallenet.org/mod/videofile/view.php?id=111753)
Imagen 5
1. Sistemas clúster
2. Clasificación de los clústeres
3. Balanceadores de carga
4. Ejemplos
Sistemas clúster
Sistemas clúster: Conjunto de ordenadores con mismo hardware unidos entre sí por una misma
red de fibra óptica. Este conjunto de ordenadores se comporta como un solo ordenador.
¿Qué se busca con un clúster? Tener gran potencia de cálculo y gran rendimiento. Por ejemplo,
en la imagen izquierda de la imagen 6 se ven diferentes estaciones (antiguas, seguramente de
una universidad), que son exactamente iguales, unidas para intentar multiplicar la potencia.
Estos equipos son muy utilizados para hacer cálculos matemáticos, cálculos científicos, cálculos
meteorológicos…
Con el tema de los ordenadores cuánticos y los cálculos cuánticos se dice que esos equipos son
sumamente más potentes y con un rendimiento altísimo. Se llega a decir que con los
ordenadores cuánticos se podría romper cualquier cifrado de hoy día. Por eso, también hay un
poco de miedo con respecto a dónde va a ir el tema de los sistemas computacionales.
Imagen 6
Página 4 de 38
¿Qué componentes integran un clúster?
Conexiones de red. Suelen estar todos los nodos interconectados siempre con redes de
alta velocidad; redes que al final son de fibra óptica. ¿Por qué? Porque lo que queremos
es que la transferencia de datos entre todos los nodos y por ejemplo si tengo que hacer
una comunicación con una cabina de disco que sea lo más rápida e instantánea posible.
Middleware. Es un software que actúa entre el sistema operativo y las aplicaciones, con
la finalidad de ofrecer a un clúster lo siguiente: una interfaz de acceso, herramientas
para la optimización y mantenimiento del sistema (por ejemplo, migrar procesos o
desconectar un clúster o provocar balanceos de carga). Otro punto importante el tema
de tolerancia frente a fallos.
Imagen 7
Página 5 de 38
Clasificación de los clústeres
Alto Rendimiento. Son clústeres que están diseñados para ejecutar tareas y procesamiento de
cálculo muy alto. Lo que hemos comentado: los equipos de MareNostrum que tenemos en
Barcelona son equipos que se usan para cálculos de ADN, o científicos, matemáticos, etc.
Alta Disponibilidad. Son los que ya hemos mencionado: suelen estar configurados en activo-
pasivo o activo-activo (depende). Con un sistema de alta disponibilidad buscamos que las
peticiones se vayan replicando en los diferentes sistemas, o inclusive si nosotros tenemos
levantados 2 servidores y necesitamos más potencia poder levantar otro. O, si se cae un servidor
de estos, que automáticamente se levante la réplica del otro servidor que tenemos apagado o
en stand by a la espera de un fallo. Siempre en estos clústeres va a estar todo sincronizado, tanto
a nivel de disco, a nivel de bases de datos, etc. Por ejemplo, hace un tiempo, cuando estuve
trabajando en parte de una televisión, ahí tenían un sistema clúster de alta disponibilidad en
diferentes CPDs con bases de datos de Oracle, donde automáticamente todas las
tuplas/filas/inserciones a la base de datos se iban replicando en los diferentes nodos,
independientemente de si un CPD se caía teníamos todos los CPDs con la misma información en
tiempo real. Estos sistemas de alta disponibilidad también son muy utilizados con Netflix. Netflix
cuando saca un capítulo nuevo y prevén que van a tener un pico muy alto de usuarios
automáticamente despliegan un batallón de servidores en AWS y en función de estos servidores
y de la demanda que vayan teniendo van levantando más o van tumbando más, siempre para
dar una alta disponibilidad.
Alta eficiencia. Son clústeres que su objetivo principal es ejecutar el mayor número de tareas
en el menor tiempo posible.
Imagen 8
Balanceadores de carga
Balanceador de carga: Es un dispositivo, que puede ser hardware o software, que se coloca entre
los servidores con el fin de repartir la carga de las peticiones de los clientes hacia los servidores.
Véase la imagen 9. Hay 3 clientes: A, B y C. El cliente A realiza una petición web a x dominio y
pasa por el balanceador de carga izquierdo. El cliente B realiza la petición al mismo dominio y
pasa por el balanceador de carga izquierdo. El tercer usuario —cliente C— quiere acceder
también a la misma URL de los 2 usuarios previos —clientes A y B—, pero en vez de pasar por el
balanceador de carga izquierdo, pasa por el balanceador de carga derecho. Con esto buscamos
Página 6 de 38
no sobrecargar los balanceadores de carga con el fin de poder repartir, de forma adecuada y sin
generar cuello de botella, hacia nuestros servidores para devolver el servicio como estaba
preparado.
Estos sistemas (balanceadores de carga) que solemos colocar entre medias también son muy
utilizados para evitar posibles ataques de denegación de servicio. Independientemente de que
luego tengamos un cortafuegos o lo que sea, estos balanceadores van a intentar balancear toda
esta carga. Dependiendo de la función o las peticiones que vayamos teniendo, vamos llevando
y repartiendo cada uno de este tráfico.
Imagen 9
Ejemplos
Los que yo más conozco son los F5 (https://www.f5.com/). Los F5 son una pasada. Son súper
potentes, puedes [parar y etiquetar] infinidad de cosas, actúan también como un Web
Application Firewall (WAF), podemos hacer parte de scripting, podemos repartir diferentes
reglas a diferentes redes. Son caros, pero son una pasada. Si algún día tenéis la oportunidad de
trabajar con un aparato de estos vais a disfrutar. A día de hoy pueden tener un appliance virtual
o un appliance físico. Siempre un appliance físico va a trabajar mucho mejor que algo que
tengamos virtualizado. Eso tenemos que tenerlo en cuenta.
Imagen 10
Página 7 de 38
ICA0011-S05-C01-V03 - Introducción Docker
(https://lasallefponline.sallenet.org/mod/videofile/view.php?id=111754)
Imagen 11
1. Contenedores Docker
2. VMs vs. Docker
3. Elementos básicos que componen la tecnología Docker
Contenedores Docker
¿Qué es Docker?
Es una aplicación que permite crear contenedores ligeros y portables para que las aplicaciones
software puedan ejecutarse en cualquier máquina con Docker instalado, independientemente
del sistema operativo.
Imagen 12
Página 8 de 38
¿Qué es un Contenedor?
Imagen 13
Página 9 de 38
VMs vs. Docker
Máquina virtuales
Imagen 14
Contenedores Docker
Por el contrario, cuando hablamos de contenedores Docker disponemos del mismo hardware
(con su CPU, RAM y dispositivos de entrada y salida). Disponemos del mismo sistema operativo.
Pero, en vez de tener una aplicación corriendo que sea un hipervisor, tenemos un container
manager. En este caso, Docker, que es el encargado de manejar los contenedores.
Como vemos, para cada aplicación, dentro de cada contenedor, tendremos las variables
específicas del kernel que pertenecen al sistema operativo anfitrión, eliminando en este caso la
necesidad de un sistema operativo por cada contenedor, así como de un hardware virtual.
Imagen 15
Página 10 de 38
Ventajas Docker vs. VMs
Reducción muy notable de los tiempos de carga. Más adelante veremos cómo la instanciación
de un contenedor requiere muy poco tiempo, en comparación con la inicialización de un sistema
operativo dentro de una máquina virtual.
Reducción del espacio de almacenamiento. Esto es evidente. Como Docker utiliza el propio
sistema sobre el que está corriendo, no tiene la necesidad de duplicidades. No tiene necesidad
de otro sistema operativo, y por lo tanto ocupa muchísimo menos espacio que una máquina
virtual.
Mejor aprovechamiento del hardware. Como habíamos visto antes, Docker utiliza el propio
hardware físico del sistema anfitrión, configurado con los drivers del sistema anfitrión. No tiene
un hardware virtual. Esto implica que el rendimiento del hardware es real, al contrario de lo que
sucede al emulado muchas veces dentro de las máquinas virtuales.
Imagen 16
Elementos básicos
Elementos básicos
Images - Imágenes
Página 11 de 38
Imagen 17
Containers - Contenedores
Por ejemplo, nosotros tenemos una imagen que es un ubuntu + wordpress. Esa imagen está en
estático hasta que la arrancamos. Una vez que la arrancamos se convierte en un contenedor.
Pero yo puedo tener varios contenedores de la misma imagen corriendo: puedo tener un
contenedor #01, o puedo tener un contenedor #02.
Imagen 18
Volumes - Volúmenes
Es la manera que utiliza Docker para crear persistencia de datos dentro de los contenedores.
Página 12 de 38
queramos. De esta manera, aunque paremos Docker luego podremos volver a arrancarlo
utilizando nuestra persistencia de datos, con los datos que se han generado durante la ejecución
del contenedor.
Imagen 19
Links
Los links sirven para enlazar servicios de los contenedores entre sí. Por ejemplo, yo puedo tener
un contenedor donde tengo corriendo Ubuntu + apache + php, y necesito una conexión con otro
contenedor donde tengo Ubuntu + Mysql (un servidor de bases de datos Mysql). Yo los puedo
enlazar de manera que las peticiones de Apache mediante PHP se ejecuten en el contenedor
#02 con Ubuntu y Mysql.
Imagen 20
Página 13 de 38
ICA0011-S07-C01-V04 Introducción Docker 2
(https://lasallefponline.sallenet.org/mod/videofile/view.php?id=111755)
Imagen 21
1. Instalación de Docker
2. Docker-Compose y primeros comandos
Instalación de Docker
Para la instalación de Docker seguiremos la siguiente lista de comandos que podemos ver en la
imagen 22.
4. Actualizar
apt-get update
Página 14 de 38
apt-get install docker-compose
Imagen 22
Imagen 23
2. Añadir la clave GPG de Docker (Nos bajaríamos la llave para poder instalar el
repositorio de Docker)
Imagen 24
Página 15 de 38
3. Configurar el repositorio de Docker (Se copia el repositorio de Docker /linux/debian
en docker.list)
Imagen 25
4. Se hace apt-update
Imagen 26
Imagen 27
Página 16 de 38
Docker-Compose y primeros comandos
Una vez instalado Docker, vamos a ver Docker-Compose y los primeros comandos de Docker.
Si se hace docker ps se listan los procesos, los contenedores, que están, pero solo los que
están corriendo.
Imagen 28
Imagen 29
----
docker ps -a → Se listan los contenedores que están corriendo y los que no están corriendo.
----
Estos contenedores (parados) hay que eliminarlos. Los podemos eliminar tanto con el
CONTAINER ID como con el nombre de la imagen.
Imagen 30
Página 17 de 38
¿Qué es lo primero que vamos a hacer? Vamos a bajar de Docker Hub (Docker Hub Container
Image Library | App Containerization - https://hub.docker.com/), que lo hemos buscado
mediante Google, una imagen de WordPress para usar en Docker.
Esto lo que hace es que se bajen todas las imágenes necesarias para poder crear el contenedor.
Imagen 31
----
----
Posteriormente, podemos ver las imágenes que tenemos con docker images (imagen 32).
En este caso tenemos hello-world y wordpress
Imagen 32
Página 18 de 38
Si queremos eliminar una imagen, por ejemplo, hello-world, se hace esto:
Imagen 33
Nótese que en la imagen 33, al volver a hacer docker images solo nos sale la de wordpress.
Tenemos una imagen de wordpress. Habíamos dicho que tener una imagen… al final no deja de
ser una imagen, es como una especie de ISO. Ahora mismo no tenemos nada corriendo.
Hay varias maneras para correr las imágenes de Docker. Las podemos correr mediante el
comando docker run, o las podemos correr mediante docker-compose, donde ya
tendremos todo organizado. Esto último lo veremos después; primero vamos a ver cómo se
corre una imagen con docker run.
Imagen 34
Página 19 de 38
Hay que poner -d y_el_nombre si queremos que haga un detach.
docker run -d wordpress
Esto se para con docker stop tender_moser o siempre con el CONTAINER ID.
Imagen 35
En este caso tenemos todos. Existe una manera de poder eliminar todos los contenedores:
docker rm $(docker ps -a -q)
Imagen 36
Decíamos que queríamos correrlo, pero, aunque docker crea la imagen, también necesitamos
una redirección de puertos a nuestro host local para poder atacarlos. Por ejemplo, WordPress
nos va a abrir un servidor de Apache de HTTP y queremos conectar con él. La mejor manera para
hacerlo es de la siguiente. Vamos a analizar el siguiente comando:
docker run --name pruebawordpress -p 8080:80 -d wordpress
Página 20 de 38
-p 8080:80 → Le decimos que abra el puerto 8080 en la máquina huésped (en la Kali en este
caso) y que lo redireccione al puerto 80 de dentro del contenedor
-d wordpress → Le decimos que coja la imagen de wordpress y que le haga un detach, para
que nos deje correr la consola
Imagen 37
Si ahora se abre Firefox y nos vamos a localhost:8080 tenemos corriendo ya nuestro WordPress,
nuestro contendor, que podemos hacer una instalación.
Imagen 38
Este contenedor se encuentra ahora mismo corriendo. ¿Qué ocurre? Que yo tengo el
contenedor, pero yo ahora mismo, si yo quiero entrar dentro del contenedor a hacer algo, puedo
ejecutar:
docker exec -it nombre_del_contenedor
docker exec -it container_id
docker exec -it 0058f6b8fa90 → Esto lo que hace es ejecutar el siguiente comando
que pongamos. Es decir:
Con esto se tiene una shell dentro del contenedor. Si se hace ls se listan los archivos que hay
en /var/www/html
Página 21 de 38
Imagen 39
Con la shell dentro del contenedor puedo hacer lo que quiera. Con exit se sale de la shell del
contenedor y se vuelve a la shell local.
Imagen 40
En el vídeo se dice: tenemos este contendor (imagen 41). Qué ocurre si yo ahora quiero copiar
un archivo dentro del contenedor. Lo puedo hacer. Primeramente, se crea el archivo prueba.txt
y se lo puedo copiar con docker cp
docker cp el_archivo_que_quiero_copiar
container_id:ruta_donde_lo_quiero_copiar
docker cp el_archivo_que_quiero_copiar
nombre_del_contenedor:ruta_donde_lo_quiero_copiar
En el vídeo se hace:
docker cp prueba.txt 0058f6b8fa90:/tmp/prueba.txt
Imagen 41
Página 22 de 38
Si ahora se hace un docker exec -it 0058f6b8fa90 /bin/bash (para tener una
shell dentro del contenedor) y me voy a la carpeta tmp —cd /tmp— tengo prueba.txt
Imagen 42
¿Qué ocurre? Que, si yo ahora mato este contendor, con docker stop 0058f6b8fa90, y
lo elimino, con docker rm 0058f6b8fa90 (imagen 43), el archivo que yo había copiado, si
yo ahora vuelvo a arrancar el contenedor no tendré ese archivo. Para eso lo que se crea son
volúmenes.
Imagen 43
Imagen 44
Página 23 de 38
Entonces, si desde /var/lib/docker/volumes/mis_datos/_data yo creo un archivo —por ejemplo,
pruebas.txt—. Si yo ahora corro con el siguiente comando el docker:
docker run --name Pruebawordpress --mount
source=mis_datos,target=/tmp -p 8080:80 -d wordpress
Si yo ahora ejecuto docker exec -it 7358a214ba35 /bin/bash (para tener una
shell dentro del contendor) y me voy a la carpeta /tmp —cd /tmp— y hago ls se ve que tengo
pruebas.txt
Todo lo se genere dentro del contenedor en esta carpeta va a quedar guardado dentro del
volumen. De esta manera creamos persistencia.
Imagen 45
Es decir, si en /tmp se crea un archivo llamado pruebas2 y salgo del contenedor con exit,
pruebas2 se mantiene. Incluso aunque yo ahora mate el contenedor —con docker stop
7358a214ba35— y lo elimine —con docker rm 7358a214ba35—, si yo lo vuelvo a correr
con docker run montándolo —docker run --name Pruebawordpress --mount
source=mis_datos,target=/tmp -p 8080:80 -d wordpress—
Imagen 46
Página 24 de 38
Si yo vuelvo a hacer un docker exec -it 83c6521437ef /bin/bash y me voy a /tmp
—cd /tmp— tanto pruebas.txt como pruebas2 siguen estando.
Imagen 47
Ahora, se ve docker-compose
docker-compose es una manera para no tener que andar escribiendo todos estos comandos.
Imaginemos que nosotros enlazamos muchas máquinas con link y demás. Nos podemos
encontrar, en internet, GitHub, Docker Hub… con archivos que se llaman docker-compose.yml
Imagen 48
Y se pega el siguiente texto, que en este caso en el vídeo se dice que se ha cogido de Docker Hub
(imagen 49):
Imagen 49
Página 25 de 38
Y, como se puede ver, aparece la imagen que crea —image: wordpress—, junto con otros
muchos parámetros. Es decir, aquí podemos configurar la manera en la que corre nuestro docker
para no tener que poner todo el docker run y demás. Esto es, aquí tenemos toda la lista de
parámetros, porque muchas veces se pueden enlazar muchísimos docker.
Imagen 50
Con esto ya tenemos creado [el docker]. Entonces, si desde Firefox vamos a localhost:8080,
seguimos teniendo nuestro contenedor.
Imagen 51
Imagen 52
Página 26 de 38
ICA0011-S07-C01-V05 Análisis Forense
(https://lasallefponline.sallenet.org/mod/videofile/view.php?id=111756)
Imagen 53
1. Introducción
2. Imágenes Forense
3. Volcados de Memoria
4. Herramientas de Análisis Forense
Introducción
El análisis forense digital corresponde con un conjunto de principios y técnicas que comprende
el proceso de adquisición, conservación, documentación, análisis y presentación de evidencias
digitales y que, llegado el caso, puedan ser aceptadas legalmente en un proceso judicial.
Es muy común en los procesos de Incident Response (IR), cuando alguna organización ha tenido
una intrusión, el realizar análisis forense de los equipos para determinar cuál fue, por ejemplo,
el vector de entrada.
Imagen 54
Página 27 de 38
Fases de un análisis forense
Imagen 55
Recuperación de la información que ha podido ser alterada, dañada o destruida sin alterarla
durante el proceso
Los peritos forenses suelen ser técnicos informáticos con una gran reputación, de manera que
su mayor dificultad es la de intentar explicar a personas no técnicas cuáles han sido sus hallazgos
y sus evidencias dentro del análisis forense, de manera que un juez o un letrado, que no tienen
la suficiente base técnica, puedan estar en capacidad de conocer qué es lo que ha ocurrido y
cómo se ha llegado a esos hechos.
Imagen 56
Página 28 de 38
Referencias en el código penal
Existen muchísimas referencias en el código penal. Sí es cierto que, hasta hace unos años, la ley
no contemplaba muchos de los detalles de delitos telemáticos, aunque actualmente podemos
encontrar (imagen 57):
Imagen 57
Son muchos de los ejemplos de cómo el código penal se ha ido renovando para ir metiendo
delitos telemáticos a los delitos que ya existían.
Imágenes Forense
Una imagen forense es una copia bit a bit exacta de un dispositivo de almacenamiento. Cabe
señalar que puede ser cualquier dispositivo de almacenamiento, bien sea un disco duro, un
pendrive o una cinta.
Imagen 58
Página 29 de 38
¿Cómo se crea una imagen forense?
FTK Imager
dd
rdd
OSFClone
Imagen 59
https://accessdata.com/product-download-page
Imagen 60
Página 30 de 38
Para el ejemplo, vamos a abrir la aplicación FTK Imager, y vamos a utilizar un USB. Hay que tener
en cuenta que con FTK Imager es posible ver archivos que existieron en una determinada unidad,
pero luego se eliminaron.
En esta ocasión, he creado un volumen de unos 150 MB, donde he copiado unos vídeos de la
anterior sesión, pero solo he dejado copiar 2 vídeos.
Imagen 61
Entonces, cuando se hace la imagen con FTK Imager, el volumen NUEVO VOL (H:) contiene 2
archivos .mp4 y la carpeta oculta System Volume Information
Imagen 62
Para crear la imagen, desde FTK Imager se pulsa en File → Create Disk Image
Se dice Select the Source Evidence Type - Seleccione el tipo de evidencia de origen, que
puede ser: Physical Drive, Logical Drive, Image File, Contents of a Folder (logical file-level
Página 31 de 38
analysis only; excludes deleted, unallocated, etc.) y Fernico Device (multiple CD/DVD). En
el vídeo se selecciona Logical Drive.
Imagen 63
En Source Drive Selection - Selección de la unidad de origen se escoge H:\ - NUEVO VOL
[FAT]
Imagen 64
Página 32 de 38
A continuación, en Image Desintation(s) se pulsa en el botón Add y en Select the
Destination Image Type - Seleccione el tipo de imagen de destino se escoge E01
Imagen 65
Imagen 66
Página 33 de 38
En Image Destination Folder - Carpeta de destino de la imagen se pone F:\Evidencia\ y
en Image Filename (Excluding Extension) - Nombre del archivo de imagen (sin la
extensión) se pone E01.
Imagen 67
Imagen 68
Página 34 de 38
Una vez se ha creado la imagen, en FTK Imager se pulsa en File → Add Evidence Item
Imagen 69
Imagen 70
Página 35 de 38
Y se selecciona E01.E01
Imagen 71
Imagen 72
Página 36 de 38
Y con esto ya tenemos abierta nuestra imagen. Se ve cómo tenemos el volumen montado y se
pueden ver incluso los archivos eliminados (aparecen con una pequeña x). Los archivos que
existen actualmente. Incluso se puede ver el contenido de Texto.txt, que dice Esto es un archivo
que se eliminó
Imagen 73
Volcado de memoria
Imagen 74
Página 37 de 38
Existen muchas herramientas para poder hacer un volcado de memoria. OSForensics es una
herramienta de PassMark de pago, pero tiene una versión de evaluación que podremos utilizar
durante unos días.
https://www.osforensics.com/osforensics.html
https://www.osforensics.com/download.html
Imagen 75
Volatility - Es una herramienta de open-source que sirve para los volcados de memoria.
Con ella podemos analizarlos de múltiples maneras, desde sacar Strings a intentar sacar
llaves, últimos atributos de sistema, registros, claves almacenadas en la memoria…
FTKImager
Autopsy - Sirve para analizar las imágenes hechas, por ejemplo, con FTKImager.
Imagen 76
Página 38 de 38