www.dedoshop.com
Risultati da 1 a 9 di 9
Like Tree10Likes
  • 10 Post By Pa0l0ne

Discussione: Approccio al Reverse Engineer - Una True Story by Pa0l0ne

  1. #1
    Pa0l0ne
    Guest

    Approccio al Reverse Engineer - Una True Story by Pa0l0ne

    Cominciamo col dire che, quando provi a cercare informazioni su un nuovo tipo di chip, protocollo o periferica di tuo interesse, l’utilizzo di un motore di ricerca su Internet è probabilmente la prima azione che svolgerai andando a caccia di datasheets e/o quant’altro possa risultare di tuo interesse ed utile al progetto.

    Spesso, infatti, risulta utile semplicemente digitare il nome del sistema per avere informazioni esaustive, ma altre volte, invece, la strada può risultare tortuosa a causa della totale mancanza di informazioni particolareggiate, obbligando un approccio di tipo cognitivo all’apparecchiatura/software che intendiamo “piegare” al nostro “univoco” utilizzo “fuori specifica”.

    Vorrei quindi riportarvi una “True Story” di qualche annetto fà (quando ero ancora giovane e bello), riguardo uno studio che feci su una apparecchiatura Embedded (Una centralina antintrusione n.d.r.) dotata (per ovvie ragioni n.d.r.) di un BUS di interfaccia PROPRIETARIO alle proprie TASTIERE di pilotaggio che ne inibiva l’interfacciamento ad un banale PC, rendendone, di fatto, impossibile l’utilizzo in un contesto DOMOTICO (Esecuzione ed Interrogazione comandi/stato da remoto tramite PC Mediacenter; Interfacciamento di logica associata ad altre apparecchiature secondo una logica di eventi prestabilita; esecuzione di script di pilotaggio automatizzati non previsti dal firmware proprietario)

    Credo, per osmosi, un simile approccio, possa risultare utile anche applicato ad altre “situazioni” di ben altro settore/interesse, in quanto, in un certo senso, definibile “universale”.

    Tornando al mio progetto, lo scopo era dunque quello di simulare/emulare l’utilizzo di una tastiera ed il primo problema che mi si parò davanti fu la totale mancanza di informazioni riguardo il BUS di gestione proprietario in cui transitano i dati recepiti dalla centralina ed inviati dalle Tastiere.

    Decisi quindi che l’unica via praticabile era quella di utilizzare un oscilloscopio interfacciato al PC che catturasse/loggasse i dati di mio interesse.
    Trovai dunque su Internet questo “simpaticissimo” oggettino

    Allegato 1078

    Acquistabile su [url=http://www.easysync-ltd.com/product/520/ds1m12.html]Stringray USB oscilloscope adapter | USB oscilloscope[/url]

    tramite il quale, riuscii ad ottenere dei sample di comunicazione ogni volta che emettevo dei comandi attraverso la tastiera “reale” cominciando, di fatto, a loggare una “enorme mole di dati”.

    A seguire, tramite l’idea venuta fuori da numerose sessioni di brainstorming con il mio collega/compagno di merende che interpello/coinvolgo sempre nelle situazioni più disparate, programmai alcune righe di Java interfacciandole ad un software di analisi grafico-vettoriale andando anche ad imparare qualcosa riguardo il linguaggio SVG (Scalable Vector Graphic) durante i miei esperimenti.

    (Inkscape "SVG Graphics Editor" [url=http://www.inkscape.org.]Inkscape. Draw Freely.[/url])

    (Kevin Lindsey Software Development “Basic SVG shapes” 2003 [url=http://www.kevlindev.com/tutorials/basics/shapes/svg/index.htm]KevLinDev - Tutorials - SVG - Shapes[/url]


    “Cui prodest?” Ebbene, PRIMA DI EMULARE, devi avere ben chiari tutti i meccanismi REALI di funzionamento.

    Continuai quindi a scrivere (in verità poche) righe di Java per decodificare i sample di dati catturati, fino ad arrivare a capire in quale formato fossero emessi!!.....e...... BINGO!!!

    Allegato 1079

    Allegato 1080

    A questo punto, scrivendo poche righe (nel mio caso in PERL), riuscii a comunicare con il sistema interfacciandolo alla seriale del mio PC!

    Ovviamente vennero fuori numerosi altri problemi dovuti alla particolare natura dei segnali invertiti del BUS proprietario con risultati “non proprio perfetti” dovuti anche a “delay” di gestione della RS232 sia del mio codice PERL che dell’ambiente operativo Windows sotto il quale, ai tempi, stavo lavorando.

    In seguito, sperimentando un semplice circuitino di inversione segnali per interfacciarmi correttamente al BUS proprietario tramite RS232, ed una board embedded come la RABBIT RCM3710 pilotata dallo stesso codice PERL originario, ottenni finalmente dei risultati perfetti in termini di timing/delay di esecuzioni comandi…

    Allegato 1081

    Questa mia piccola testimonianza vuole cercare di stimolare il vostro approccio al Reverse Engineer e specificatamente le vostre conoscenze verso il formato SVG, probabilmente altrettanto utile nella scoperta di numerosi altri formati di comunicazione non documentati.

    Sarò onorato se tutto ciò potrà essere utile anche in altre, sempre interessanti, scoperte (anche fossero quelle di gestione dell’elettronica della vostra Lavatrice!)

    ...non di solo console è l'interesse....!
    Ultima modifica di Pa0l0ne; 16-10-11 alle 10: 26

  2. #2
    e-tool's Creator L'avatar di Electron^-
    Data Registrazione
    Jun 2011
    Località
    Casima
    Messaggi
    1,222
    Articolo eccelso...
    Probabilmente potrebbe stimolare in molti verso la fantastica arte del Reverse Engineering alla quale siamo in molti dei fedeli devoti ^_^
    "Unix is user-friendly. It's just very selective about who its friends are."

    I miei piccoli:

    PC:Processore: Athlon 643000+ 754 @2400, Ram: 1GBddr400@480, Sk.Video: ATIRadeon HD3650 AGP @780-1100
    NOTEBOOK:Modello: HP ProBook 4520s,Processore: Intel i5-460M@2.53GHz, Ram: 4GBddr3@1333MHz, Sk.Video:ATI Mobility Radeon HD5470 512MB
    Xbox360:Mobo:Jasper, Lettore:Liteon 74850, Firmware:iXtreme LT+ 3.0, Rebooter:Freeboot (14719), Dash:Freestyle Dash 2.2,
    HDD
    :WD Black Scorpio 500GB 7200RPM 16MB cache, MODEstetica: X intagliata sul lato nera sfumata verde
    Xbox360 Slim:Mobo:Corona, Lettore:Liteon 1075, Firmware: Originale, Rebooter:In Lavorazione,
    HDD
    :250GB originale Microsoft, MODEstetica: Non Prevista Xbox360 Slim:Mobo:Trinity, Lettore:Liteon 0272 con PCB Matrix Freedom, Firmware:iXtreme LT+ 3.0, RGH (Matrix Trident):Freeboot (14719), Originale, Vuota Dash:Freestyle Dash 2.2,
    HDD
    :Originale Microsoft 250GB, MODEstetica:
    In elaborazione mentaleWii:Mod: Software, Modestetica: prossimamente
    PSP:Modello: 1004, Firmware:5.50 GEN-D3, Mobo:TA-v82
    Monitor:Marca: Asus, Modello: VK246H, Tempo di risposta:2ms, Risoluzione: Full-HD


  3. #3
    Regular Member L'avatar di angelo
    Data Registrazione
    Jul 2011
    Messaggi
    221
    Grazie per questa delizia

  4. #4
    Time to play the Game! I am the debt that can't be paid... You're going down in flames... L'avatar di The Pusher
    Data Registrazione
    Jul 2011
    Messaggi
    8,270
    Il problema è che poi ci abituiamo................

  5. #5
    Regular Member L'avatar di Barbutus
    Data Registrazione
    Jul 2011
    Messaggi
    336
    è bello sapere che ci sono ancora persone che ci mettono la passione ed il cuore in quello che fanno (oltre all'indubbia cultura tecnica), e ciò trapela da come scrivi... sei riuscito a far appassionare anche me, che più o meno avrò capito (per mia ignoranza) il 30% di quello che hai scritto, grazie Paolone .

    byez

  6. #6
    Regular Member L'avatar di sn0z33r
    Data Registrazione
    Jul 2011
    Località
    Milano / Monza
    Messaggi
    310
    ottimi spunti paolone
    io pure ho un lavoretto "simile" da fare solo che non sono così preparato sull'hw quindi preparati ad essere scocciato... PRESTO !!

  7. #7
    Junior Member
    Data Registrazione
    Sep 2011
    Messaggi
    8
    Secondo me la scelta di quei linguaggi per il lavoro che dovevi fare, non e' stata delle migliori. Avresti dovuto utilizzare il rabbit o similare sin dall'inizio.

  8. #8
    Pa0l0ne
    Guest
    Vero, ma quando si e' giovani e belli si e' anche poveri e spiantati...inoltre ognuno conosce e/o preferisce i "linguaggi" suoi...
    Forse, oggi, avrei fatto altre scelte.


    Sent from my Jailbreaked iPhone using Tapatalk

  9. #9
    Junior Member
    Data Registrazione
    Sep 2011
    Messaggi
    8
    bhe, dai ... giovani e belli vuol dire anche pic, atmel o simili e per quelli non c'era una grossa spesa visto che si usavano in ogni dove.

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •