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
👤 Matteo Baccan ⌚ 2 Febbraio 2020 - 08:00 Commentaa-
+
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