[Hackmeeting] zip zap zop [...] osx e i file zip

Delete this message

Reply to this message
Author: cybergio
Date:  
To: hackmeeting
CC: ml
Subject: [Hackmeeting] zip zap zop [...] osx e i file zip

* premesso che:

$ echo $SHELL
/bin/bash

e

$ uname -a
Darwin io.local 8.5.0 Darwin Kernel Version 8.5.0: Sun Jan 22
10:38:46 PST 2006; root:xnu-792.6.61.obj~1/RELEASE_PPC Power
Macintosh powerpc


* si può avere:

creo uno script e gli attribuisco i permessi di esecuzione

$ cat << EOF > la_compagnia_dei_celestini.text
> echo "utente! grazie per eseguire al mio posto e senza la tua

volontà operazioni noiose"
> f_ip=0; echo -n \$f_ip\,\ ; f_i=1; echo -n \$f_i; for ((i=2;i<=37;i

++)); do f_in=\$((\$f_i+\$f_ip)); f_ip=\$f_i; f_i=\$f_in; echo -n \,\
\$f_in; done; echo
> EOF

$ chmod +x la_compagnia_dei_celestini.text
$ ls -l la_compagnia_dei_celestini.text
- -rwxr-xr-x 1 antani antani 239 Feb 23 00:00
la_compagnia_dei_celestini.text
$ ls -l la_compagnia_dei_celestini.text/rsrc
- -rwxr-xr-x 1 antani antani 0 Feb 23 00:00
la_compagnia_dei_celestini.text/rsrc
$ open .

utilizzando Finder.app, seleziono il file
la_compagnia_dei_celestini.text, premo mela-i, su `Open with:`
imposto Terminal.app ed ottengo:

$ ls -l la_compagnia_dei_celestini.text/rsrc
- -rwxr-xr-x 1 antani antani 1338 Feb 23 00:00
la_compagnia_dei_celestini.text/rsrc

creo il file zip con il comando ditto (l'opzione --rsrc non è
necessaria, viena utilizzata di default)

$ ditto -c -k la_compagnia_dei_celestini.text  
la_compagnia_dei_celestini.text.zip
$ unzip -l la_compagnia_dei_celestini.text.zip
Archive:  la_compagnia_dei_celestini.text.zip
   Length     Date   Time    Name
- --------    ----   ----    ----
       239  02-23-06 00:00   la_compagnia_dei_celestini.text
      1420  02-23-06 00:00   ._la_compagnia_dei_celestini.text
- --------                   -------
      1659                   2 files


oppure, usando l'opzione --sequesterRsrc:

$ ditto --sequesterRsrc -c -k la_compagnia_dei_celestini.text  
la_compagnia_dei_celestini.text.zip
$ unzip -l la_compagnia_dei_celestini.text.zip
Archive:  la_compagnia_dei_celestini.text.zip
   Length     Date   Time    Name
- --------    ----   ----    ----
       239  02-23-06 00:00   la_compagnia_dei_celestini.text
         0  02-23-06 00:00   __MACOSX/
      1420  02-23-06 00:00   __MACOSX/._la_compagnia_dei_celestini.text
- --------                   -------
      1659                   3 files


in Safari.app basterà abilitare l'opzione `Open safe files after
downloading`.
prelevando il file .zip verrà eseguito il codice contenuto nello script.
per far eseguire lo script in Mail.app non è necessario creare
l'archivio zip.


* note:

credo che il tutto funzioni anche su mac os x 10.3.x, almeno la
creazione del file .zip

nello script si possono mettere un sacco di cose carine, dati
codificati in uuencode o base64, applescript da eseguire con il
comando osascript, invio di posta tramite postfix (di solito
abilitato), etc.

il codice viene eseguito grazie a Terminal.app, il suo riferimento è
contenuto nel file ._la_compagnia_dei_celestini.text

$ hexdump -Cv cat la_compagnia_dei_celestini.text/rsrc | less

oppure:

$ unzip -p la_compagnia_dei_celestini.text.zip -x
la_compagnia_dei_celestini.text | hexdump -Cv | less

forse, modificando il comando si potrà ottenere qualcosa di più
discreto.

per modificare i resource fork via linea di comando utilizzate il
pacchetto osxutils ( uri :: http://osxutils.sourceforge.net/ ),
presente anche in darwinports ( http://darwinports.org/ ) e fink
( uri :: http://fink.sourceforge.net/ ).

bye :: -automatismi +consapevolezza

- --
cybergio