<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Dd on Karpoke - Just Another Blog</title><link>http://karpoke.ignaciocano.com/tags/dd/</link><description>Recent content in Dd on Karpoke - Just Another Blog</description><generator>Hugo -- 0.159.0</generator><language>es</language><lastBuildDate>Tue, 30 Jan 2018 20:36:00 +0100</lastBuildDate><atom:link href="http://karpoke.ignaciocano.com/tags/dd/index.xml" rel="self" type="application/rss+xml"/><item><title>Recuperar un disco corrupto</title><link>http://karpoke.ignaciocano.com/2018/01/30/recuperar-un-disco-corrupto/</link><pubDate>Tue, 30 Jan 2018 20:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/01/30/recuperar-un-disco-corrupto/</guid><description>&lt;p&gt;Un par de comandos útiles para recuperar datos de un disco problemático.&lt;/p&gt;
&lt;p&gt;Para copiar el disco, mostrando una barra de progeso:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;dd if=/dev/sda | pv | dd of=/dev/sdb conv=noerror,sync
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Lanzamos &lt;code&gt;ddrescue&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ddrescue -d -r3 /dev/sda /dev/sdb output.log
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Abrir archivos .tec en GNU/Linux</title><link>http://karpoke.ignaciocano.com/2012/06/23/abrir-archivos-tec-en-gnulinux/</link><pubDate>Sat, 23 Jun 2012 13:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/23/abrir-archivos-tec-en-gnulinux/</guid><description>&lt;p&gt;Haciendo una copia de seguridad de los datos de un móvil con Android
ICS, he visto que existe un directorio llamado &lt;code&gt;cache&lt;/code&gt; en el mismo
directorio donde se guardan las fotos, &lt;code&gt;/sdcard/DCIM/Camera&lt;/code&gt;, que
contiene archivos cuya extensión es &lt;code&gt;.tec&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Echando un vistazo al contenido de estos archivos con &lt;code&gt;hexer&lt;/code&gt;, parece
ser que se trata de un archivo JFIF:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;00000000: ff d9 66 b3 00 00 ff d8 ff e0 00 10 4a 46 49 46 ..f.........JFIF
00000010: 00 01 01 00 00 01 00 01 00 00 ff db 00 43 00 05 .............C..
00000020: 03 04 04 04 03 05 04 04 04 05 05 05 06 07 0c 08 ................
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Por el nombre del directorio y por el tamaño de las fotos, menos de
100K, parece que &lt;a href="http://androidforums.com/samsung-galaxy-s2-international/427146-dcim-camera-cache.html"&gt;deben ser imágenes en miniatura&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Arch en Raspberry Pi</title><link>http://karpoke.ignaciocano.com/2012/06/22/arch-en-raspberry-pi/</link><pubDate>Fri, 22 Jun 2012 20:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/22/arch-en-raspberry-pi/</guid><description>&lt;p&gt;Después de haber estado usando la &lt;a href="http://karpoke.ignaciocano.com/2012/06/21/raspberry-pi/"&gt;Raspberry Pi con Debian&lt;/a&gt;, he
querido probar otras distribuciones, en este caso Arch.&lt;/p&gt;
&lt;p&gt;Desde la página de &lt;a href="http://www.raspberrypi.org/downloads"&gt;descargas&lt;/a&gt;, nos bajamos el torrent, así no
sobrecargamos el servidor.&lt;/p&gt;
&lt;h2 id="crear-una-copia-de-la-tarjeta-sd"&gt;Crear una copia de la tarjeta SD&lt;/h2&gt;
&lt;p&gt;He estado unos días trasteando con Debian, ya sabéis, modificando la
tabla de particiones para utilizar todo el espacio disponible,
instalando paquetes, configurándola a mi gusto, no mucho, pero si ahora
formateo la tarjeta, es un trabajo perdido. No sólo eso, sino que no
descarto tener que repetirlo de nuevo si posteriormente vuelvo a debian.
Puede que al final me quede con Arch, pero me apetece probar alguna
distribución más, como &lt;a href="http://www.raspbmc.com"&gt;Raspbmc&lt;/a&gt; o &lt;a href="http://www.pwnpi.com"&gt;PwnPi&lt;/a&gt;, así que me interesa
guardar una copia de la tarjeta. Quizá sería mejor opción crear una
máquina virtual con &lt;code&gt;qemu&lt;/code&gt; para probar otras distribuciones, o utilizar
tarjetas SD diferentes, pero dado lo sencillo que es hacer la copia esto
será lo primero que haga.&lt;/p&gt;</description></item><item><title>Cifrar una partición o un disco duro externo</title><link>http://karpoke.ignaciocano.com/2011/07/08/cifrar-una-particion-o-un-disco-duro-externo/</link><pubDate>Fri, 08 Jul 2011 02:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/08/cifrar-una-particion-o-un-disco-duro-externo/</guid><description>&lt;p&gt;Tenemos &lt;a href="http://conocimientoabierto.es/traducir-automaticamente-ficheros-po/207/"&gt;un disco duro externo y queremos cifrarlo&lt;/a&gt;. El comando
&lt;code&gt;cryptsetup&lt;/code&gt;, que se encuentra en los repositorios, hace uso de
DM-Crypt, que es la parte del kernel que se encarga del cifrado de
discos, y LUKS, un estándar independiente de la plataforma y del
software para acceder a volúmenes cifrados.&lt;/p&gt;
&lt;h2 id="requisitos"&gt;Requisitos&lt;/h2&gt;
&lt;p&gt;El primer paso, después de instalar el comando, es tener claro qué
dispositivo es nuestro disco duro. Un vistazo mediante &lt;code&gt;fdisk&lt;/code&gt; debería
ser suficiente. Además, si está montado, lo desmontamos.&lt;/p&gt;</description></item><item><title>Sonido a través de SSH</title><link>http://karpoke.ignaciocano.com/2011/05/05/sonido-a-traves-de-ssh/</link><pubDate>Thu, 05 May 2011 22:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/05/sonido-a-traves-de-ssh/</guid><description>&lt;p&gt;Si tenemos &lt;a href="http://karpoke.ignaciocano.com/2011/03/03/conectarse-por-ssh-solo-usando-la-clave/"&gt;acceso por &lt;code&gt;ssh&lt;/code&gt;&lt;/a&gt; a otro ordenador, ambos con micrófono y
altavoces, podemos redirigir el sonido en ambos sentidos, es decir,
podemos conseguir cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;que lo que capta nuestro &lt;a href="#microfono-local-altavoces-remotos"&gt;micrófono&lt;/a&gt; se escuche en los altavoces&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;del otro ordenador y [viceversa][]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;que lo que se &lt;a href="#texto-local-altavoces-remotos"&gt;escribe&lt;/a&gt; en un ordenador se escuche en el otro y&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[viceversa][1]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;que el contenido de un &lt;a href="#texto-local-altavoces-remotos"&gt;fichero de texto&lt;/a&gt; se oiga en los&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;altavoces remotos y [viceversa][1]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;que un archivo de &lt;a href="#fichero-audio-local-altavoces-remotos"&gt;audio&lt;/a&gt; se escuche en los altavoces remotos y&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[viceversa][2]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;que el audio de un archivo de &lt;a href="#fichero-video-local-altavoces-remotos"&gt;vídeo&lt;/a&gt; se escuche en los altavoces&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;remotos y [viceversa][3]
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="dispositivos-de-sonido-en-ubuntu-maverick-meerkat"&gt;Dispositivos de sonido en Ubuntu Maverick Meerkat&lt;/h2&gt;
&lt;p&gt;Uno de los cambios de Ubuntu Maverick Meerkat (10.10) fue la
desaparición del dispositivo &lt;code&gt;/dev/dsp&lt;/code&gt; y otros, como &lt;code&gt;/dev/mixer&lt;/code&gt;,
&lt;code&gt;/dev/sndstat&lt;/code&gt; y &lt;code&gt;/dev/audio&lt;/code&gt;, al utilizar la &lt;a href="http://bugs.launchpad.net/ubuntu/+source/linux/+bug/634211"&gt;interfaz ALSA en
detrimento de la OSS API&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>USB Dumping</title><link>http://karpoke.ignaciocano.com/2010/10/27/usb-dumping/</link><pubDate>Wed, 27 Oct 2010 19:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/27/usb-dumping/</guid><description>&lt;p&gt;El &lt;a href="http://www.seguridadapple.com/2010/10/usb-dumping-en-mac-os-x.html"&gt;USB Dumping&lt;/a&gt; consiste en copiar el &lt;a href="http://karpoke.ignaciocano.com/2010/10/27/recuperando-archivos-del-usb/"&gt;contenido de un USB&lt;/a&gt;
introducido en un ordenador, sin que la víctima se entere.&lt;/p&gt;
&lt;p&gt;En Ubuntu, podemos conseguir que se ejecute el &lt;em&gt;script&lt;/em&gt; que llevará a
cabo el robo de información, cuando se conecte un dispositivo USB. Para
ello, deberemos crear alguna &lt;a href="http://www.reactivated.net/writing_udev_rules.html"&gt;regla de &lt;code&gt;udev&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="udev-y-sysfs"&gt;&lt;code&gt;udev&lt;/code&gt; y &lt;code&gt;sysfs&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;udev&lt;/code&gt; se encarga de crear los nodos en &lt;code&gt;/dev&lt;/code&gt; para los dispositivos
presentes en el sistema. Para ello, se basa en la información
prorcionada por &lt;code&gt;sysfs&lt;/code&gt; y una serie de reglas proporcionadas por el
usuario. &lt;code&gt;sysfs&lt;/code&gt; devuelve información de los dispositivos conectados al
sistema, y &lt;code&gt;udev&lt;/code&gt; lo utiliza para crear los nodos &lt;code&gt;/dev&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Recuperando archivos del USB</title><link>http://karpoke.ignaciocano.com/2010/10/27/recuperando-archivos-del-usb/</link><pubDate>Wed, 27 Oct 2010 11:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/27/recuperando-archivos-del-usb/</guid><description>&lt;p&gt;Tengo la mala costumbre de borrar archivos utilizando la combinación
&lt;code&gt;shift+del&lt;/code&gt;, para borrarlos directamente sin pasar por la papelera.
Llegará el momento en que borre algo que no debería o algo que
necesitaré más tarde.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Sushi USB2" loading="lazy" src="http://karpoke.ignaciocano.com/images/sushi_usb_2-300x190.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Si esto sucediese, lo mejor podría ser:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Desmontar el USB para evitar males mayores&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo umount /media/miusb # &amp;#39;miusb&amp;#39; es el nombre del volumen del USB
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;Hacer una copia del USB con &lt;code&gt;dd&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ dd if=/dev/sdb1 of=/tmp/miusb.dd # sdb1 es la unidad donde se monta el USB
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;
&lt;li&gt;Podemos listar los archivos borrados con &lt;code&gt;ils&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ ils -r /tmp/miusb.dd
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;class|host|device|start_time
ils|anacreonte||1288172460
st_ino|st_alloc|st_uid|st_gid|st_mtime|st_atime|st_ctime|st_crtime|st_mode|st_nlink|st_size
8|f|0|0|1263329350|1265842800|0|1263329350|777|0|33076
12|f|0|0|1265738134|1288130400|0|1265738134|777|0|31609
14|f|0|0|1263325690|1288130400|0|1263325690|777|0|28946
16|f|0|0|1263326438|1288130400|0|1263326438|777|0|2305751
19|f|0|0|1263327386|1288130400|0|1263327386|777|0|91028
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="4"&gt;
&lt;li&gt;Creamos un directorio para tener todos los archivos que se puedan&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;recuperar
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;$ mkdir /tmp/miusb_tmp
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="5"&gt;
&lt;li&gt;Recuperamos los archivos con &lt;code&gt;icat&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ for i in $(ils -r /tmp/miusb.dd | awk &amp;#39;{print $1}&amp;#39; FS=&amp;#34;|&amp;#34; | sed 1,3d); do
icat -r /tmp/miusb.dd $i &amp;gt; /tmp/miusb_tmp/$i
echo $i
done
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="6"&gt;
&lt;li&gt;Comprobamos el tipo de archivos recuperados&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ file /tmp/miusb_tmp/*
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;8: OpenDocument Text
12: PDF document, version 1.2
14: PDF document, version 1.3
16: PDF document, version 1.4
19: PDF document, version 1.2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;ils&lt;/code&gt; y &lt;code&gt;icat&lt;/code&gt; vienen incluidos en el paquete &lt;code&gt;sleuthkit&lt;/code&gt;, que se
encuentra en los repositorios. También existe &lt;code&gt;autopsy&lt;/code&gt;, que es una
interfaz web para &lt;code&gt;sleuthkit&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Random Bash</title><link>http://karpoke.ignaciocano.com/2010/09/25/random-bash/</link><pubDate>Sat, 25 Sep 2010 00:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/09/25/random-bash/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;Los números aleatorios no deberían ser generados por un método
elegido aleatoriamente&amp;rdquo;. &lt;em&gt;Donald E. Knuth&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En Bash, podemos obtener números enteros &lt;a href="http://es.wikipedia.org/wiki/Aleatoriedad"&gt;aleatorios&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ echo $RANDOM
20684
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Random number" loading="lazy" src="http://karpoke.ignaciocano.com/images/random_number-300x107.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Cada vez que se referencia el parámetro &lt;a href="http://linux.die.net/man/1/bash"&gt;RANDOM&lt;/a&gt;, éste devuelve un
valor entre 0 y 32767, es decir, 2^15^-1. Podemos inicializar la
secuencia de números aleatorios asignando un valor a RANDOM. Debemos
tener en cuenta que si le asignamos un valor vacío a RANDOM se pierden
sus propiedades especiales, aunque después lo inicialicemos.&lt;/p&gt;</description></item></channel></rss>