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

  
a-
+
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. Leggi QUI il post completo