Sono un Mac

Versione riveduta e corretta Made in Paperopoli:

Sono un Mac

P.S. realizzata in 5 minuti usando solo software free as in beer (Pinnacle VideoSpin).

-quack

Pubblicato venerdì 22 maggio 2009 alle 3:28 AM - 128 commenti so far
Archiviato in: Cazzate

MouseRug

Nell’era dei mouse a sfera antecedente a quella laser attuale (che dire gran comodità), il tappetino per mouse era un accessorio fondamentale. La qualità della superficie faceva molta differenza per chi aveva record di topometro da guiness dei primati.

Al giorno d’oggi tale necessità è andata scemando ed i tappetini sono diventati pezzi da PC-arredamento. In ufficio ancora conservo un mousepad con la forma ed il disegno del casco di Michael Schumacher ricevuto in regalo alla vigilia della partenza per gli Stati Uniti. Da pochi giorni invece ho “riscoperto” il mondo dei mouserug. Tappetini per mouse che imitano alla perfezione i disegni dei più pregiati tappeti persiani e non solo.

Alla fine ho comprato questo, di ispirazione Kazaka (?):

eaglema ravanando ravanando ho scoperto un mondo. Ci sono alcuni “modelli” che hanno disegni bellissimi come questa tigre tibetana:

TigerMouseRug

ed un negozio vero e proprio dedicati a questi piccoli oggetti di decoro su Yahoo che spedisce anche in Europa. Fossi un po’ più debole di spirito, mi farei venire la voglia di collezionarli tutti. Mi sforzerò di accontentarmi di questi due.

-quack

Pubblicato giovedì 21 maggio 2009 alle 8:43 PM - 17 commenti so far
Archiviato in: Cazzate

Il pericolo è il mio mestiere

Il numero di Giugno della rivista Technet disponibile online dedica ampio spazio all’Application Compatibility Toolkit giunto da pochi giorni alla versione 5.5. La seguente figura è tratta dal primo articolo introduttivo in cui Chris Jackson parla di quali acrobazie un Data Collection Package (DCP) debba fare per poter essere eseguito sui PC da inventariare:

Data Collection PackageLa parte tratteggiata in verde rappresenta il DCP così come era concepito nelle versioni precedenti alla 5.02 e tutto l’ambaradan a sinistra è stato introdotto per dare la possibilità agli amministratori di dominio di usare un pacchetto MSI anziché un EXE per distribuire il DCP sulle macchine target (gli MSI sono più semplici da distribuire per un sacco di ragioni che non ci stanno a margine di questo post).

I vincoli alla soluzione del problema erano tanti:

  • chi ha scritto il codice tratteggiato non lavorava più al nostro progetto
  • l’ambaradan deve girare anche su Windows 2000 (con qualche limitazione)
  • testare l’ambaradan è complicatissimo
  • i tempi di consegna come al solito rivolti con uno sguardo al passato
  • gli MSI non sono disegnati per “eseguire codice” ma per installare
  • si può eseguire un solo MSI per volta, almeno su alcune versioni di Windows
  • cercare di lasciare quanto meno tracce possibili: non perché si tenta di nascondere chissà che ma in quanto per osservare correttamente lo stato del sistema bisogna modificarlo il meno possibile

Il primo tentativo è stato quello di riscrivere la logica all’interno di AFSetup in una custom action ma dopo 2 mesi di prove e riprove, con risultati di test davvero poco confortanti, abbiamo capito che era un’operazione impossibile. L’ideale sarebbe stato fare in modo di creare un MSI che lanciasse AFSetup.exe senza lasciar traccia, ma gli MSI non sono fatti per operazioni stealth. La prima cosa che fanno è aggiungere una voce alla lista di “Add/Remove Programs”.

La soluzione è balenata poco dopo: un MSI il cui unico scopo è di installare una finta voce di registro (!) e che per farlo lancia una custom action allo scopo di disinstallare l’MSI e proseguire…. tentativo naufragato perché la custom action viene “uccisa” non appena parte la disinstallazione.

Siamo giunti quindi alla soluzione definitiva: la custom action estrae un eseguibile (il secondo msi5.tmp in figura, prontamente battezzato “The Entity”) che si mette in attesa dell’avvenuta “disinstallazione”. Dopo di che la custom action invoca la disinstallazione e il primo MSI muore senza lasciare nessuna traccia. Questo segnala a “The Entity” di entrare in azione estraendo un altro eseguibile (il mitico afsetup.exe) e suicidandosi; a questo punto afsetup.exe è in esecuzione come se fosse stato lanciato direttamente (tranne per “The Entity” che verrà cancellato il prima possibile) riconducendoci allo stesso scenario ampiamente testato nella versione 5.01 (di cui sapevamo benissimo pro e contro).

L’idea di “The Entity” ce l’ho messa io, il mio collega ha velocemente buttato giù un prototipo ed ha funzionato quasi al primo colpo. In tutto questo ambaradan c’è da passare dei parametri ad AFSetup.exe in maniera “sicura”. Non tanto per paranoia ma per evitare ulteriori domande durante i meeting dell’SDL prima del rilascio. Il mio collega ha pensato dapprima a salvare i valori nel registry in modo tale che “The Entity” li recuperasse e li passasse ad AFSetup; poi abbiamo pensato al file system. C’è voluta una doccia, da sempre fonte ispiratrice di idee brillanti, per trovare la soluzione di Colombo: le variabili di ambiente! Si propagano “gratuitamente” di processo padre in processo figlio e sono più scarsamente accessibili all’esterno della genealogia dei processi.

Tutto questo me lo sarei dimenticato o tenuto in serbo per qualche racconto avventuroso ai nipoti se non fosse stato per Chris Jackson che si è preso la briga di ficcanasare nei dettagli implementativi e facendo per un breve attimo rivivere in me l’emozione di mettere al mondo “The Entity”. Chris è uno dei tuttologi dell’AppCompat e il suo ultimo blog post parla di un’altra storia basata stavolta su ACT 5.5; materiale per un altro post forse un po’ più divertente di questo.

-quack

Pubblicato mercoledì 20 maggio 2009 alle 10:59 PM - 5 commenti so far
Archiviato in: Codice

Boot chaining

Due progetti interessanti ed uno abbastanza controverso basati sul boot chaining (?) mi hanno tenuto abbastanza impegnato durante il weekend.

Il primo riguarda l’installazione di OSX su PC non marcati Apple (*). Per spirito di hackeraggio ho seguito una delle tante guide che spiega come installare OSX su un Dell Mini. A quanto pare l’hardware del Mini è tra i più compatibili con OSX ed è stato tutto un fiorire di guide da 10 mila passi guai a sgarrarne uno e di tool “semi-automatici aspetta e spera” che automatizzano alcuni di questi. Il mio obiettivo era di testare la possibilità di installare OS X e Windows 7 in dual boot: obiettivo abbastanza stimolante in quanto OS X richiede una partizione GPT per il boot, Windows 7 richiede una partizione MBR. In questo caso il boot chaining avviene caricando un bootloader prima del boot di OS X e che faccia credere ad OS X di essere su un Mac. Qualcuno di questi è abbastanza sofisticato da presentare un menù grafico con tante opzioni e le icone più appropriate in base al sistema operativo.

Il secondo riguarda il supporto CableCard su hardware generico. C’è molta affinità tra questi due perché da specifiche CableCard il software di decoding può girare solo su PC blessed dal consorzio. Qualcuno un po’ per caso ha scoperto che dal punto di vista pratico questo blessing avviene con la presenza di una stringa nel BIOS e che alcune schede madre teoricamente non-blessed contengono tale stringa comunque. Qualcuno si è spinto oltre ed ha riconvertito qualcuno dei tool per piratare Windows in un boot loader che simulasse il blessing di CableCard come alternativa alla manipolazione diretta del BIOS. Materiale molto interessante che mi ha fatto esitare un po’. (Detto fra noi il blessing è una ca*ata pazzesca, inventato più per motivi politici che tecnologici)

Last but not least qualche giorno fa era tornato alla ribalta su Slashdot l’ennesimo episodio-scoop dei due ricercatori che con VBootkit erano riusciti a prendere controllo di Windows 7 (mi meraviglio di come mai qualcuno in Intel/AMD non abbia cercato ancora un briciolo di pubblicità mostrando come creando un micro-processore apposito, si possa prendere il controllo dell’OS). Aldilà della faccenda puramente politica del tirare fango stupidamente, la questione è interessante in quanto VBootkit, che altro non è che un chain-loader primordiale, inverte i ruoli di “vittima” e “carnefice”. Se nei primi due casi la vittima è il sistema (OS X che crede di girare su Mac, CableCard che crede di girare su HW blessed) nel terzo vorrebbe essere l’utente. Condizionale d’obbligo perché alcuni sistemi operativi propriamente configurati impediscono già di default tale tipo di attacchi. Windows 7, a differenza della concorrenza, è uno di questi ed al lettore attento si lascia l’onere della dimostrazione del teorema.

-quack

Pubblicato domenica 17 maggio 2009 alle 9:21 PM - 7 commenti so far
Archiviato in: Security

Auto blu

In Italia auto blu è spesso sinonimo di spreco.

A Seattle e dintorni può essere sinonimo di occasione sprecata, qualora non la si decori con l’adesivo più appropriato:1241901395731 Ed in tema di adesivi uno un po’ simpatico e triste ma vero:

Bush Office -quack

Pubblicato giovedì 14 maggio 2009 alle 10:42 PM - 7 commenti so far
Archiviato in: Seattle e dintorni