Come estrarre ZIP da exe autoestraente?


18

Bene, il soggetto dice tutto. Ho un exe che è un SFX e voglio estrarre lo ZIP dall'SFX. Come posso fare ciò?

Risposte:


16

7-Zip dovrebbe essere in grado di farlo. È possibile fare clic con il tasto destro del mouse sul file e selezionare "Apri archivio" o navigare al file all'interno di 7-Zip e fare clic con il tasto destro e selezionare "Apri dentro".


@Darcs: non riesco ad aprire l'archivio perché lo zip è crittografato con password. Voglio solo estrarre la zip dall'exe, senza decomprimere nel mezzo.
TCS,

Non posso dire se funzionerà per il tuo file, ma semplicemente cambiare l'estensione da .exe a .zip sembrava funzionare bene per me. Conterrà comunque le parti eseguibili del file, ma 7-Zip sembra perfettamente felice di ignorarlo.
Dracs,

7-zip si aprirà e lo riconoscerà, ma non voglio la parte exe nel file (puramente file zip, che la sua intestazione è PK, e non MZ come un exe).
TCS,

1
Sono riuscito a farlo usando un editor esadecimale. Il file zip semplice e l'SFX modificato sono identici. Il processo che ho fatto è stato quello di cercare l'intestazione del file zip nell'SFX. Per 7-Zip questo sembra essere il 37 7A a.C., ho fatto una ricerca per l'ultima occorrenza di esso. Quindi ho eliminato tutto prima di esso. Questo sembra darmi un file identico a comprimere il mio file di test da solo. Se hai bisogno di un editor esadecimale ho usato XVI32 . Fammi sapere se funziona per te o se hai bisogno di più aiuto.
Dracs,

1
Se è un ZIParchivio formato corretto , il modo corretto di individuare i dati è individuare l'intestazione della directory centrale tramite il suo numero magico di quattro byte e leggere la directory centrale per trovare la prima intestazione del file.
JdeBP,

8

Su Linux è possibile con l'utilità "zip":

$ file london_f.exe
london_f.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit

Attenzione: la riga successiva modifica il file .exe originale per renderlo un archivio zip puro senza le parti exe!

$ zip -J london_f.exe
$ file london_f.exe
london_f.exe: Zip archive data, at least v1.0 to extract
$ zip --version
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon.  Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.
...

2

Su Linux, se è testardo e

zip -J file.exe

non lo trasforma in una zip estraibile perché la parte non zip non è solo anteposta, vedere la pagina del manuale:

   -J
   --junk-sfx
          Strip any prepended data (e.g. a SFX stub) from the archive.

quindi l'utilità zip ha altre due utili opzioni:

   -F
   --fix
   -FF
   --fixfix
          Fix the zip archive. The -F option can be used if some portions of the archive are missing, but requires a reasonably intact  central  directory.   The
          input archive is scanned as usual, but zip will ignore some problems.  The resulting archive should be valid, but any inconsistent entries will be left
          out.

          When doubled as in -FF, the archive is scanned from the beginning and zip scans for special signatures to identify the limits between the archive  mem‐
          bers. The single -F is more reliable if the archive is not too much damaged, so try this option first.

          If  the  archive is too damaged or the end has been truncated, you must use -FF.  This is a change from zip 2.32, where the -F option is able to read a
          truncated archive.  The -F option now more reliably fixes archives with minor damage and the -FF option is needed to fix archives where -F  might  have
          been sufficient before.

          Neither  option  will recover archives that have been incorrectly transferred in ascii mode instead of binary. After the repair, the -t option of unzip
          may show that some files have a bad CRC. Such files cannot be recovered; you can remove them from the archive using the -d option of zip.

          Note that -FF may have trouble fixing archives that include an embedded zip archive that was stored (without compression) in the archive and, depending
          on the damage, it may find the entries in the embedded archive rather than the archive itself.  Try -F first as it does not have this problem.

          The format of the fix commands have changed.  For example, to fix the damaged archive foo.zip,

                 zip -F foo --out foofix

          tries  to read the entries normally, copying good entries to the new archive foofix.zip.  If this doesn't work, as when the archive is truncated, or if
          some entries you know are in the archive are missed, then try

                 zip -FF foo --out foofixfix

          and compare the resulting archive to the archive created by -F.  The -FF option may create an inconsistent archive.  Depending on what is damaged,  you
          can then use the -F option to fix that archive.

          A split archive with missing split files can be fixed using -F if you have the last split of the archive (the .zip file).  If this file is missing, you
          must use -FF to fix the archive, which will prompt you for the splits you have.

          Currently the fix options can't recover entries that have a bad checksum or are otherwise damaged.

Allora prova

zip -F file.exe --out extracted.zip

e se ciò fallisce

zip -FF file.exe --out extracted.zip

1

Devo ancora vedere un programma di manipolazione zip che non può farlo. Gli archivi autoestraenti sono anche file zip validi, solo con un mucchio di cose extra (l'estrattore).

Probabilmente scoprirai che non è possibile selezionare l'utilità come modo per aprire il file, ma se si esegue semplicemente l'utilità e si seleziona il file che funziona.


Come lo faresti con l'utility "Cartelle compresse" predefinite di Windows?
cowlinator il

@cowlinator Nessuna idea. Molto, molto tempo fa ho trovato il buggy dell'handler incorporato e da allora non ho più provato a usarlo.
Loren Pechtel,

0

È possibile aprire un file SFX con WinZip se si desidera accedere ai file all'interno. Non è necessario eseguire il file.

Sembra che una serie di altre utilità di compressione aprirà anche i file SFX.


Non voglio decomprimere il file (è protetto da password), voglio solo estrarre lo zip dall'exe.
TCS,

Quello lo farà per te. Apri in WinZip e salva l'archivio come qualcosa.zip
Rory Alsop,

0

Ho avuto un problema simile, un eseguibile SFX, che fondamentalmente esegue un exe che ti consente quindi di eseguire i file all'interno dell'archivio. L'apertura di exe in 7zip mostra che è protetto da password. Ho cercato una soluzione, deve memorizzare la password in una sorta di intestazione ... Durante la lettura di questa discussione mi è venuta in mente una soluzione alternativa.

Esegui l'exe, quindi seleziona C: \ windows \ temp ordina per data e trova la cartella in cui l'exe ha estratto, ci sono i file all'interno dello zip. Toglili e comprimili. Viola! hai una zip dell'exe, senza password.


0

Se hai a che fare con i giochi di gog.com, usa Innoextract . unzip, unrar7zip e altri non hanno funzionato per me.


Altri programmi zip NON funzionano con i file GOG? I file GOG sono autoestraenti?
music2myear,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.