Arxiu de Juliol, 2007

Aturar un programa rebel

Dimarts, 31, Juliol, 2007

És una ximpleria, ja ho sé, però si no ho apunte ací, després em toca tornar-ho a buscar.

Quan un programa es queda penjat (sí, això també passa a GNU/Linux) i no hi ha manera d’aturar-lo, cal esbrinar el seu PID i aturar-lo per la força. El primer que farem serà obrir una finestra de terminal (si no podem, per exemple, perquè el programa penjat ocupa tota la finestra i no té la cortesia de llevar-se del mig, accedirem a un terminal de debò amb Ctrl-Alt-F1, i, si cal, farem login amb el nostre usuari normal) i escriurem:

ps -e | grep nomdelprograma [1]

cosa que ens permetrà obtenir un resultat com el següent:

jordi@jordux:~$ ps -e | grep player6976 ?             00:00:10 gmplayer6978 ?             00:00:00 gmplayer

La primera columna ens dóna el PID que buscàvem. Ara ja podem aturar-lo passant-li el PID (en aquest cas, els PID) al “Terminator” de GNU/Linux:

kill 6976 6978

i els nostres problemes hauran acabat; si no han acabat, podem usar una opció més “forta” per al kill:

kill -9 6976 6978

i sembla que no hi ha cap programa que puga sobreviure a aquesta ordre.
Si hem entrat en una consola de debò, en sortirem amb l’ordre exit; tornarem a l’entornt gràfic amb Ctrl-Alt-F7.

—————————————————–

[1] ps -e genera la llista completa dels programes en execució; amb grep, filtrem la sortida de ps i veiem només allò que ens interessa.

Powered by ScribeFire.

Amagar arxius comprimits dins d’una imatge

Dilluns, 30, Juliol, 2007

El problema

Fa un parell de dies, vaig trobar un bloc on s’explicava com amagar arxius comprimits dins de fitxers d’imatge; hi havia una explicació per a GNU/Linux i una altra per a Windows. Ahir vaig voler provar-ho, però ja no vaig ser capaç de localitzar el bloc en qüestió. En vaig trobar un altre que ho explicava, però només per a Windows; a partir d’ací, i recordant que, en GNU/Linux, es feia servir l’ordre cat, vaig poder reconstruir el procés.

La idea és senzilla: partim d’una imatge (tux.png) i d’una sèrie de fitxers (en aquest exemple, només un: missatgesecret.txt) que volem “camuflar” dins d’aquella imatge. Com a pas previ, comprimirem tots els fitxers que volem camuflar a l’arxiu comprimit.zip. Després, crearem un fitxer que aparentment serà d’imatge, però que contindrà, també, l’arxiu comprimit.

Un pingüinet innocent

Un pingüinet innocent

Crear el fitxer camuflat

En primer lloc, crearem l’arxiu comprimit amb els fitxers a camuflar:

zip comprimit.zip missatgesecret.txt [altres_fitxers_a_comprimir]

Després, unirem l’arxiu d’imatge amb l’arxiu comprimit, creant l’arxiu camuflat:

cat tux.png comprimit.zip > tux007.png

En l’ordre anterior, és imprescindible que el nom de l’arxiu d’imatge siga el primer argument. L’arxiu resultant, tux007.png, es comportarà a tots els efectes com un “autèntic” fitxer d’imatge: si l’obrim des del navegador d’arxius, s’obrirà amb el visualitzador per omissió; el podrem obrir normalment amb qualsevol programa de tractament d’imatges i, fins i tot, el podrem penjar al web i fer-lo aparèixer a la nostra pàgina on es visualtzarà amb tota normalitat.

Un pingüinet no tan innocent

Un pingüinet no tan innocent

Recuperar els fitxers amagats

Curiosament, l’arxiu tux007.png serà interpretat per la utilitat unzip com si fos un arxiu comprimit normal i corrent, ignarant la presència de la imatge “despistadora”. Així, per obtenir un llistat del seu contingut, només ens caldrà fer:

unzip -v tux007.png

I si volem recuperar els arxius amagats:

unzip tux007.png

Recuperar la imatge original

L’ordre cat que ha produït l’arxiu “de camuflatge” no ha fet sinó concatenar, bit a bit, una imatge i un arxiu comprimit. Si volem recuperar el fitxer imatge original, caldrà esbrinar quants bytes ocupa exactament i, després, amb l’ordre dd, el podrem extraure de la part inicial de l’arxiu camuflat. Podem esbrinar aquesta mida amb:

unzip -v tux007.png

Observarem que hi ha una línia que comença amb la paraula “warning”; en el nostre cas, la segona línia:

Archive:  tux007.pngwarning [tux007.png]:  47599 extra bytes at beginning or within zipfile  (attempting to process anyway) Length   Method    Size  Ratio   Date   Time   CRC-32    Name--------  ------  ------- -----   ----   ----   ------    ----     893  Defl:N      442  51%  07-30-07 13:24  6970d7a0  missatgesecret.txt--------          -------  ---                            -------     893              442  51%                            1 file

(També ho podem esbrinar canviant "-v" per "-t", i ens estalviem la taula amb els continguts de l’arxiu comprimit.)

En el nostre exemple, la mida és de 47.599 bytes. Es tracta, com hom pot endevinar, de la mida exacta de la imatge que vam utilitzar per camuflar els nostres arxius. Ara la podem recuparar amb una ordre dd que llegeisca, de l’arxiu camuflat, eixa quantitat exacta de bytes:

dd if=tux007.png of=imatgerecuperada.png bs=47599 count=1

I només ens falta obrir imatgerecuperada.png amb el nostre visor d’imatges preferit per contemplar una reproducció exacta de la imatge original (que, en aquest cas, ja no amaga res).

Consideracions

No crec que aquest sistema d’ocultació siga gaire segur, jo no hi confiaria “secrets d’estat”; tanmateix, la segurat es pot augmentat fent servir el xifrat en el moment de la compresió. Mès bé, trobe que aquest procediment és una curiositat que ens permet “jugar a espies” amb els amics i que, a més, és molt didàctica pel que fa al funcionament de cat i de dd. Continue sense tindre clar per què l’arxiu camuflat és interpretat amb encert (no m’atrevisc a dir “correctament”, ja que actuen com si foren arxius normals, i no ho són) tant pels programes gràfics com pels descomprimidors.

Crec que hi ha programes que permeten obtindre resultats més segurs a l’hora d’amagar informació, com ara steghide (no l’he provat); però no tenen la gràcia de fer-ho tot u mateix, pas a pas.

També funciona amb arxius jpg; de fet, sospite que funcionarà amb moltes combinacions de fitxers d’imatge amb arxius comprimits.

e-bibliografia

Una descripció del procés per a Windows:

Como esconder archivos rar en imágenes jpeg/jpg

M’hauria agradat posar l’enllaç al primer post que vaig llegir, el que explicava el procés tant per a Windows com per a GNU/Linux, però no l’he tornat a trobar (de fet, per això he fet aquest post). Si el localitze, afegiré l’enllaç.

Powered by ScribeFire.

Gràcies, Joanne

Divendres, 27, Juliol, 2007

Powered by ScribeFire.

Gràcies, Joanne

Divendres, 27, Juliol, 2007

Powered by ScribeFire.

The last Harry Potter is here!!!!

Dissabte, 21, Juliol, 2007
El principi del final

Tot a punt per començar

Mai no havia esperat tant un llibre.

Mai no havia desitjat tant llegir un llibre.

Mai no havia temut tant llegir un llibre.

I mai no m’havia donat tanta ràbia el meu pèssim anglès!

Powered by ScribeFire.

The last Harry Potter is here!!!!

Dissabte, 21, Juliol, 2007
El principi del final

Tot a punt per començar

Mai no havia esperat tant un llibre.

Mai no havia desitjat tant llegir un llibre.

Mai no havia temut tant llegir un llibre.

I mai no m’havia donat tanta ràbia el meu pèssim anglès!

Powered by ScribeFire.

The last Harry Potter is here!!!!

Dissabte, 21, Juliol, 2007
El principi del final

Tot a punt per començar

Mai no havia esperat tant un llibre.

Mai no havia desitjat tant llegir un llibre.

Mai no havia temut tant llegir un llibre.

I mai no m’havia donat tanta ràbia el meu pèssim anglès!

Powered by ScribeFire.

Experiments amb SLAX sobre memòria USB

Dissabte, 14, Juliol, 2007

Els mesos que he passat sense Internet m’he vist privat, entre moltes altres coses, d’una de les meues activitats favorites com a aprenent de pingüí: experimentar noves aplicacions (noves per a mi) del sempre sorprenent GNU/Linux. I és que, sense Internet, la informació és un bé escàs, i, sense informació, els experiments són molt més complicats de dur a la pràctica. En aquesta ocasió, em feia goig instal·lar una distribució Linux al meu llapis de memòria, cosa que sempre m’ha semblat una opció molt més interessant que els LiveCD.

Llapis de memòria Memorex TravelDrive de 4GB

Llapis de memòria Memorex TravelDrive de 4GB

Investigació: “La veritat està aquí fora”

Havia descobert que hi ha, de fa temps, una certa varietat de distribucions que admeten aquesta possibilitat, com ara Puppy Linux, SLAX i, finalment, la meua estimada Ubuntu. La qüestió era trobar la que més s’adeqüés a les meues necessitats. Havia d’estar ben documentada, tindre un procés senzill d’instal·lació, ser molt personalitzable i ocupar poc espai (el llapis de memòria que ocuparia tindria, també, altres funcions, com la típica d’emmagatzemar documents “volanders” i servir de receptacle per a les conegudes i pràctiques PortableApps). Ah!, i també seria un mèrit si la pogués instal·lar en català[1].

Al final, em vaig decidir per la SLAX, que, a més de complir amb tots els requisits que m’havia plantejat, m’hauria de permetre començar a conéixer les característiques d’una distribució de la família Slackware (ben diferent de l’Ubuntu, família Debian); a més, fa servir KDE, i alçar la vista del Gnome també és presentava interessant.

El procés (kafkià? en absolut!)

M’havia sorprés molt agradablement trobar una descripció sobre com instal·lar SLAX en un llapis de memòria des de Windows; crec que és una subtil, simpàtica i amable manera de donar a conéixer el món GNU/Linux a la immensa majoria de windowsers, només una mica més complicada que els LiveCD (que poden, però, donar una falsa idea de lentitud), però que, al mateix temps, mostra com pot arribar a ser de senzill instal·lar una distribució i aconseguir que funcione a la primera. Però aquest no era el meu camí: jo volia instal·lar-la des de Linux, i aprofitar aquesta experiència com un aprenentatge més; i vaig descobrir, signades per un tal Artux, aquestes altres instruccions: no em podia creure que fos tan senzill! Com ho seria, en la realitat?

Bé, doncs la realitat va ser encara més simple. La descripció d’Artux es referia a la versió slax-6.0.0rc2 – stable release, i, en visitar la pàgina FTP de la SLAX, vaig descobrir que ja anaven per la rc4. I, dins d’aquesta, l’arxiu README m’ho pintava tot més fàcil: només caldria extraure’n el contingut directament sobre el llapis de memòria, i fora d’estar destralejant amb directoris i carpetes. En resum, el procés complet va quedar així:

  1. Descarregar slax6rc4.tar des de la pàgina FTP de SLAX.
  2. Formatar el llapis de memòria com a FAT32 (si no ho fem, no funcionarà: el meu llapis[2] venia de fàbrica amb aquest format, però em vaig voler estalviar aquest pas i no va funcionar). Suposant que, en connectar-lo, s’ens haja muntat el dispositiu /dev/sda1 en /media/usbdisk, procedirem a desmuntar-lo, formatar-lo i tornar-lo a muntar amb les següents ordres en la consola:

    $ sudo umount /media/usbdisk

    $ sudo mkfs.vfat -F 32 /dev/sda1

    $ sudo mount /dev/sda1 /media/usbdisk

    Lògicament, els noms usbdisk i sda1 poden ser diferents en el vostre sistema. A més, la segona ordre (la que formata el llapis), no funcionarà si el llapis no està buit; teniu dues opcions: esborrar-ho tot o afegir el modificador -I a l’ordre.

  3. En aquest punt, i seguint les indicacions de l’esmentat arxiu README, modifiquem el procés respecte a la descripció d’Artux: només ens cal extraure el contingut de slax6rc4.tar directament sobre el llapis de memòria. Jo, ho confesse, ho vaig fer amb un parell de clics sobre el Nautilus, però crec que l’ordre de consola quedaria com:

    $ tar -x slax6rc4.tar /media/usbdisk

  4. Ara cal convertir el llapis en dispositiu arrancable. Reconec que no tinc ni la més remota idea de com es fa; per sort, el pas anterior haurà copiat al subdirectori /boot del llapis un script que s’encarregarà d’aquesta dura (supose) feina; només haureu d’executar la següent ordre:

    $ /media/usbdisk/boot/bootinst.sh

    $ sudo /media/usbdisk/boot/bootinst.sh

  5. Les instruccions d’Artux acaben en el pas anterior. A mi, em va donar un missatge indicant que l’script syslinux exigia nivell de root per a ser executat. Vaig comprovar que era cridat per l’script bootinst.sh, i com que l’havia executat sense sudo, ara me l’exigia. Així, doncs, el vaig executar amb:

    $ sudo /media/usbdisk/boot/syslinux/suslinux /dev/sda

    i el meu procés va acabar ací. Si executeu amb sudo l’ordre de l’ítem anterior (és a dir, tal i com apareix corregida), crec que us estalviareu aquest darrer pas.

I ja tenim la SLAX completament instal·lada en el llapis de memòria. Ara venia la segona part: explicar-li a la BIOS que, en arrancar, ho fes en primera instància des del llapis de memòria[3]. Si ho feu correctament, en reiniciar l’ordinador amb el llapis connectat, us apareixerà el LILO, que us permetrà de triar diverses opcions d’iniciar SLAX. Triant la primera, no tardareu en arribar a (xan ta ta xan!) SLAX!

SLAX des del llapis de memòria

SLAX des del llapis de memòria

<!–
Powered By: BOXSTr!
BOXSTr.com

–>

I s’obri davant nostre un nou món de sensacions per experimentar.


—————————————————–

[1]

També han hagut iniciatives ben interessants i primerenques cent per cent catalanes, com la Catux-USB; dissortadament, sembla que està discontinuada. Esperem que algú s’anime a reprendre el projecte.

[2]

Memorex TravelDrive de 4 GB. Carrefour, 29′90 €. Venia etiquetat com a compatible amb Linux 2.4.x, detall que m’ha fet decidir-me per aquest model.

[3]

Com que cada BIOS és un món, i a mi em ve justet per conéixer els punts bàsics de la meua, us recomane que us informeu bé abans de donar aquest pas; diré, només, que la BIOS és memòria interna no volàtil de l’ordinador i que és llegida en el moment d’arrancar, i que, entre altres coses, li diu a l’ordinador en quin ordre ha de buscar el sistema operatiu (en el nostres cas, interessa establir 1r llapis USB, 2n CD, 3r floppy, 4t disc dur, per exemple). Per accedir a la BIOS, cal, en el moment d’iniciar l’ordinador, prémer un botó que sol ser Supr, o Alt-Supr, o F10 (apareix indicat en pantalla durant l’inici; també ho podeu trobar en el llibret amb les especificacions tècniques del vostre ordinador… si encara el conserveu!).