Buildroot: Guida alla creazione di un Sistema Operativo Linux Embedded

Tutto e’ iniziato con la mia prima Fonera (2100), fin dall’inizio ho sempre cercato di personalizzare il Sistema Operativo che si riesce a mettere sopra DD-WRT , cercando di eliminare tutti i moduli ed i vari hack per l’espansione delle periferiche I/O.

Da allora mi sono affacciato sul mondo dei Sistemi Embedded, cioe’ dei sistemi elettronici di elaborazione dedicati ad una apposita applicazione, che oggi giorno sono sempre piu’ usati e per i quali si prevede un ulteriore incremento d’utilizzo.

I miei primi esperimenti riguardavano la RouterBoard RB411 , la quale avendo un Sistema Operativo sviluppato direttamente dalla MikroTik e non conoscendo la password di accesso 😛 , ho dovuto crearmi il mio primo Sistema Embedded poggiato su Open-Wrt dato che DD-Wrt non supportava, ed ancora non supporta, l’hardware presente sulla scheda.

Per fare tutto questo dalla mia bella postazione Linux (Slackware 😀 con processore x86 ) ho avuto bisogno della tecnica del cross-compiling e di toolchain ( i link a Wikipedia saranno molto piu’ esaustivi di una mia eventuale spiegazione 😀 ), in quanto i sorgenti del mio nuovo Sistema Operativo dovevano essere compilati per il processore Atheros della RouterBoard e non per il mio processore x86. Spero di essere stato chiaro.. data la mia scarsa propensione alle materie letterarie, quali la scrittura 😛

I primi esperimenti furono un disastro.. Kernel Panic! che uscivano da ogni parte, brandelli di bit sparati a caso dalla porta seriale, periferiche hardware fisiche viste come unita’ logiche virtuali, e molto altro ancora..

Leggi tutto “Buildroot: Guida alla creazione di un Sistema Operativo Linux Embedded”

Hadoop: Guida all’uso e alla Configurazione (single node)

Vi siete mai chiesti come fanno i grandi motori di ricerca (Google, Yahoo)  e/o i grandi social network (Facebook, MySpace ecc..) ad indicizzare ed elaborare le grosse quantità di dati che giornalmente immagazzinano nei loro server!?

Hadoop è uno dei framework più utilizzati per tali scopi,  sviluppato con tecnologia Java, è stato pensato per l’elaborazione di grosse quantità di dati in applicazioni distribuite.

Tanto per avere un idea di cosa stiamo parlando, vi incollo alcuni dati presi da cloudera sulla quantità di dati che giornalmente vengono elebarati con questo framework open source:

• 2007 Data processed by Google every month: 400 PB
(400 PetaByte corrispondono a 400.000.000 GigaByte)
• 2007 Ny Times processed 4 TB archives on 64 nodes EC2s in 26 hours
( 4 TeraByte corrisposdono a 4000 GigaByte)
• 2009 Yahoo sort 1 PB of data in 16.46hours over 3658 nodes

Leggi tutto “Hadoop: Guida all’uso e alla Configurazione (single node)”

Chat di Facebook su Desktop

Partiamo dal presupposto che ormai Facebook è entrato a piè pari nella nostra routine quotidiana, informatica e non. A tal proposito voglio dare un consiglio a quanti, come me, lo utilizzano per un unico motivo: cazzeggiare con i compagni di università (in primis, altrimenti non mi sarei proprio iscritto) e chattare, seppur sporadicamente. In effetti successe anche all’inizio del mio percorso universitario con MSN Messenger, la cui iscrizione feci solo ed unicamente perché Flavio, il direttore/capo del nostro blog 😛 (ti prego di non licenziarmi se ho scritto questa “baggianata” rispetto ai tuoi articoli, ma ti prometto che la recensione su iLife ’11 è quasi pronta e la pubblico appena possibile!!! :-D), lo usava come unico strumento di comunicazione “internettiano”, dal mio canto invece, ho sempre preferito Skype (ma questa è un’altra storia ndr)!! Non sopportando il fatto di dover tenere aperto il browser internet (nel mio caso Safari) sulla Home di FB per poter comunicare con i miei contatti (non tutti concepiscono Skype e MSN Messenger per l’instant messaging), ero alla ricerca di un software che mi permettesse di avere tutti gli account di instant messaging direttamente dal desktop. Mi imbattei in Adium, ottimo client multi-protocollo, leggero ed altamente personalizzabile grazie ai suoi Xtras, scaricabili gratuitamente dal sito del software stesso. E’ bastato aggiungere il nuovo account dal menù Adium/Preferenze/Account:

2 secondi per collegarsi al servizio e il gioco era fatto. Che goduria, niente più link da leggere, niente continuo refresh della Home, niente più rallentamenti del browser durante la navigazione e, soprattutto, potevo attivare la chat senza aprire la pagina FB…una mano santa!!!

Tutto questo fino a 2 o 3 giorni fa, non ricordo con precisione, quando, cambiando la pwd di FB, ho dovuto ri-settare l’account anche su Adium, ma niente da fare, la connessione con il servizio non riusciva e così ho abbandonato l’idea di utilizzare la chat di FB. Or ora invece mi sono messo alla ricerca e ho trovato questo: http://www.facebook.com/sitetour/chat.php, in effetti FB ha bloccato l’accesso dai software, obbligandoli a far passare tutte le connessioni verso il loro servizio di messaggistica istantanea, attraverso un server Jabber (sempre per il discorso sulla privacy che non sto qui a raccontarvi perché di sicuro ne avrete la testa piena). Quindi hanno creato la pagina linkata poc’anzi, per chi, come il sottoscritto, non desidera sapere cosa hanno mangiato a cena, o pranzo, i propri contatti, ma vuole solo essere “reperibile” via desktop! Spero che qualcuno, leggendo questo post, si converta all’utilizzo puramente comunicativo di FB, tralasciando la mania ossessiva di post, applicazioni, parla con… ecc. ecc. che sinceramente ci stanno rendendo alquanto ridicoli a tutto il mondo (sì, perché internet è Mondiale, sappiatelo!!). Nel caso in cui utilizzaste Adium, ecco come fare per risolvere i vostri problemi:

Reverse engineering: algoritmo calcolo WPA dei router Alice Gate Wi-Fi

MAC (es:\x00\x23\x34\x01\x02\x03)

SSID (es. Alice-11223344)

Per reperire il MAC address della rete wi-fi usare Netstumbler e sommare 2 all’ultima cifra esadecimale del MAC trovato

MAC trovato: 11:22:33:44:55:66

MAC da inserire: 11:22:33:44:55:68

alicegate

Questo articolo prende spunto da una ricerca fatta dalla White Hat Crew , nella quale si rende noto nel dettaglio l’algoritmo di generazione delle chiavi WPA dei router Alice.

Dopo aver appreso la notizia, (essendo studenti di ingegneria) curiosi del modo in cui le chiavi vengono generate e allo stesso tempo preoccupati delle possibili conseguenze a cui vanno incontro ignari possessori di tali apparati, decidiamo di rendere la notizia fruibile e accessibile anche sul nostro blog al fine di fare. informazione.

Allo scopo puramente didattico, per curiosi e appassionati, cerchaimo di dare una semplice e intuitiva spiegazione del come lavora l’algoritmo per generare tale chiave.
Ogni router AGPF di Alice ha un suo SSID, il quale è univoco e si presenta nella forma generica  Alice-11223344, in più le prime 2-3 cifre del numero sono significative perchè identificano la serie del router da cui è possibile risalire a parametri cruciali come il firmware montato e il numero seriale.
Tuttavia il serial number o più comunemente chiamato (SN) non è individuabile direttamente, ma grazie al MAC address della scheda wi-fi interna del router e all’SSID della rete è possibile, tramite precise informazioni della ricerca condotta da WHC, calcolarlo.

Sintetizzando all’osso, per non essere troppo macchinosi nel discorso, la WHC dopo vari studi e prove effettuate ha scoperto che in qualche forma esiste una relazione per cui è possibile calcolare il seriale conoscendo la sola parte numerica dell’ESSID. E’ stato infatti scoperto che la relazione che sussiste tra SN e SSID è di aritmetica modulare: esistono due costanti, definite per comodità con k e Q, dipendenti dalla serie del router, tale che SSID=k*SN+Q.
Da questa formula si riesce a ricavare la formula finale SN=(SSID-Q)/k. Notoriamente e’ risaputo, almeno si spera :P, che da un’equazione a due incognite non ammette un’unica soluzione, per questo gli esperti di WHC hanno ben pensato di impostare un sistema che prende in considerazione i dati di due router della stessa serie.

A questo punto fornendo questi tre parametri:

  • Mac Address delle scheda WiFi del router (considerato in byte)
  • Seriale completo del router (considerato come stringa)
  • Sequenza speciale (costante, in byte)

è possibile generare un vettore di calcolo SHA256

Infine, si riempie l’hash e grazie ad opportune conversioni sui singoli byte si riesce a risalire alla chiave WPA.
Per i più smanettoni o semplicemente curiosi vi rimando all’articolo ufficiale , anche perchè sarebbe inutile e ripetitivo riportare tutti i particolari.

Da smanettoni convinti 😀 , essendo molto più propensi alla pratica, abbiamo reso disponibile all’inizio di questo articolo uno script che inserendo ESSID e MAC del vostro rouer Alice vi calcola in automatico la WPA.
Ovviamente lo script essendo puramente dimostrativo e didattico è equipaggiato solo con le seguenti serie:

  • Alice-96xxxxxx Serie: 69102X******* k=13 Q=96017051
  • Alice-93xxxxxx Serie: 69101X******* k=13 Q=92398366
  • Alice-56xxxxxx Serie: 67902X******* k=13 Q=54808800
  • Alice-55xxxxxx Serie: 67904X******* k=8 Q=55164449
  • Alice-54xxxxxx Serie: 67903X******* k=8 Q=52420689
  • Alice-48xxxxxx Serie: 67903X******* k=8 Q=47896103
  • Alice-46xxxxxx Serie: 67902X******* k=13 Q=39015145

Ovviamente lo script viene reso disponibile per il solo testing della vulnerabilità della propria rete wi-fi, vi ricordiamo che ogni accesso non autorizzato a reti terze è punito a norma di legge, di conseguenza ci estraniamo e decliniamo ogni responsabilità per eventuali abusi dello stesso.

Abilitare colori sintassi Vim Mac OS X

Spesso, per motivi di cazzeggio e/o studio , mi capita di editare testi o sorgenti con l’editor di testo per eccellenza: Vim

Di default sul mio Macbook con Mac OS X l’opzione del syntax coloring, cioe’ l’opzione che permette di evidenziare con colori diversi i costrutti del linguaggio usato, e’ disabilitata. Per abilitare tale opzione si puo’ procedere in due modi:

1) agendo direttamente all’interno di Vim e digitando

:syntax on

2) impostando un file nascosto in modo da caricare in automatico l’opzione desiderata all’avvio di Vim

$ echo syn on > $HOME/.vimrc

Un ultimo consiglio che vi posso dare per l’uso di Vim e’ abilitazione dell’opzione number

: set number

la quale ci mostra il numero corrispondente ad ogni riga

Canon vs Nikon flickr

E’ da un po di tempo che girovagando su flickr sono incuriosito dal numero totale delle macchine Canon e quelle Nikon, giusto per avere un raffronto tra i due marchi più conosciuti di macchine fotografiche. Una sera mentre ero assieme ad un amico di università (Antonio, spero scriverai presto sul blog) ci siamo messi un po’ a giocare con la shell Unix di Mac OS X per cercare di tirare fuori i dati che volevamo dal sito di flickr.

Premetto che sono il fortunato possessore di una Canon EOS 1000D,e spero di fare presto qualche articolo sul mio bel giocattolino 😀

Purtroppo le pagine che flickr ci mette a disposizione con il numero delle macchine fotografiche non ci da il totale, ma solo i parziali dei vari modelli

Numero macchine canon flickr

Il nostro obiettivo è quello di estrapolare i numeri dalla seconda colonna della tabella e sommarli tra loro per avere il numero preciso del totale della fotocamere sia Canon che Nikon.

Apriamo la nostra bella shell e digitiamo:

$ curl http://www.flickr.com/cameras/canon/?s=photos#models | grep "<td class=\"cfP\"" > canon_tot

Leggi tutto “Canon vs Nikon flickr”