MultiRipper rappresenta uno dei miei primi esperimenti di programmazione.
Per l'esattezza è stato un prodotto realizzato da un mio vecchio amico Ian Coog, al quale ho aggiunto una serie di funzionalità, fra cui il reverse di applicazioni Windows e una prima versione di un decompilatore Delphi.
Ora questo tipo di prodotti non rappresenta nulla di nuovo o particolarmente innovativo, e riguardando il codice si vedono parecchie pecche data dalla nostra giovane età.
Pensare però che eravamo riusciti a fare un prodotto del genere, in ambiente DOS, senza l'uso di API Windows, ma basandosi solo sui paper descrittivi del formato EXE (PE), è sicuramente un elemento interessante per capire come passavamo le nostre giornate.
Giusto per farvi capire meglio di cosa si tratta, riporto un passaggio preso dalla documentazione di allora, che provava a spiegare cos'era MultiRipper
■ ──══ Premessa ══── ■
Chissà quante volte vi sarà capitato di dire:
"Bella quella schermata del Demo XXX dei YYY, ed anche il modulo! Li devo avere!"
Peccato che il Demo in questione sia un unico file di 4 MB, non composto di singoli file.
Un altro caso si riscontra con i famigerati demo 'Only GUS', che in presenza di una scheda SoundBlaster (o comunque non Gravis) rimangono completamente muti... o non partono nemmeno! (Polemica #1: su 100 PC, 90 montano una SB o compatibile, 10 una GUS )
Come fare quindi ad ascoltarne almeno le musiche, senza dover ordinare la GUS direttamente in Canada? (Polemica #2: In Italia ho trovato solo un rivenditore, non ufficiale, e il prezzo comprensivo di spese di spedizione risulta pressoché identico a quello Ufficiale americano)
L'unica soluzione è affidarsi ad un "Ripper", cioè un programma che cerca i file all'interno di altri file.
Ma tutti i ripper che sono riuscito a trovare finora, e ce ne sono a bizzeffe, al massimo estraggono Moduli Amiga (MOD), Screamtracker 3 (S3M) e pochi altri.
E le schermate? E gli altri tipi di file sonori ?
Armandosi di un paio di Hex editor (primo tra i quali l'indispensabile HIEW o BIEW) fino ad oggi si potevano estrarre 'a mano' con vari, lunghi tentativi e forti mal di testa a furia di fissare schermi pieni di numeri e caratteri alla rinfusa.
Un bel giorno, osservando la struttura di un demo, scoprii che conteneva una decina di LBM e un MOD. Avrei speso un sacco di tempo per estrarli.
Era ora che nascesse Multi Ripper!! TADAAAH ! 8-)≡≡)
■ ──══ Eseguibili Windows ══── ■
Un vero ripper non poteva escludere completamente il mondo Windows, o meglio il mondo degli eseguibili WIN16/WIN32
Provate ad utilizzare un qualsiasi Ripper con eseguibili Windows pieni zeppi di immagini, icone, cursori etc, nessuno vi estrarrà mai nulla.
Da questa versione di MultiRipper invece ciò non è più vero, infatti ora è in grado di estrarre tutte le BitMap, Icone e Cursori dagli eseguibili considerati fino ad ora dai programmi DOS inespugnabili
La cosa più strepitosa è poi data dal fatto che sono estratte le risorse sia degli eseguibili WIN16 che degli eseguibili WIN32, pertanto è possibile decompilare sia EXE Windows 3.x, OS/2 che eseguibili fatti apposta per Windows 95 o Windows NT, OCX compresi
Nessun prodotto fino ad ora è stato in grado, nello stesso eseguibile, di fare ciò, esistono infatti editor di risorse, ma normalmente vi sono due eseguibili diversi per i due target.
MultiRipper diventa così un prodotto universale, in grado di passare tranquillamente dal mondo dei demo e dei giochi DOS a quello dei demo e dei Giochi Windows, siano essi fatti per Windows 3.1, 95 o NT, e naturalmente NON dimentichiamoci di NT
■ ──══ Decompilatore FORM Delphi NON CODICE ══── ■
Da questa versione MRipper è in grado di decompilare ogni tipo di eseguibile Delphi, restituendone la struttura, pronta per l'IDE, MA NON IL CODICE
In questo modo è possibile, prendendo un .EXE Delphi, riottenere PARTE del sorgente originale.
MultiRipper 3.0.1
Un vecchio progetto sviluppato negli anni 90. Lo scopo era quello di smontate qualsiasi file, alla ricerca di immagini, video, audio e testi. Oltre a questo mi ero divertito nel realizzare un piccolo decompilatore Delphi
Fonte di questo post
Post correlati |
---|
Quando il reverse engineering è l'unica soluzione |