Como extrair ZIP do exe auto-extraível?

18

Bem, o assunto já diz tudo. Eu tenho um exe que é um SFX e quero extrair o ZIP do SFX. Como eu posso fazer isso?

TCS
fonte

Respostas:

16

O 7-Zip deve ser capaz de fazer isso. Você pode clicar com o botão direito do mouse no arquivo e selecionar "Abrir arquivo" ou navegar até o arquivo no 7-Zip e clicar com o botão direito do mouse e selecionar "Abrir dentro".

Dracs
fonte
@ Darcs: Não consigo abrir o arquivo porque o zip está criptografado com senha. Eu só quero extrair o zip do exe, sem descompactar no meio.
TCS
Não posso dizer se funcionará no seu arquivo, mas simplesmente alterar a extensão de .exe para .zip pareceu funcionar bem para mim. Ele ainda conterá as partes executáveis ​​do arquivo, mas o 7-Zip parece perfeitamente feliz em ignorá-lo.
Dracs 22/09
O 7-zip abrirá e o reconhecerá, mas eu não quero a parte exe no arquivo (puramente arquivo zip, que seu cabeçalho é PK, e não MZ como um exe).
TCS
1
Eu consegui fazer isso usando um editor hexadecimal. O arquivo zip simples e o SFX editado são idênticos. O processo que fiz foi procurar o cabeçalho do arquivo zip no SFX. Para o 7-Zip, isso parece ser 37 7A aC, fiz uma pesquisa para a última ocorrência dele. Então eu apaguei tudo antes dele. Isso parece me dar um arquivo idêntico ao compactar meu arquivo de teste por si só. Se você precisar de um editor hexadecimal, usei o XVI32 . Deixe-me saber se funciona para você ou se você precisar de mais ajuda.
Dracs
1
Se for um ZIParquivo de formato adequado , a maneira correta de localizar os dados é localizar o cabeçalho do diretório central pelo número mágico de quatro bytes e ler o diretório central para encontrar o primeiro cabeçalho do arquivo.
JdeBP
8

No Linux, é possível com o utilitário "zip":

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

Aviso: A próxima linha altera o arquivo .exe original para torná-lo um arquivo zip puro, sem as partes 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.
...
user2771443
fonte
2

No Linux, se for teimoso e

zip -J file.exe

não o transforma em um zip extraível porque a parte que não é zip não é apenas anexada, consulte a página do manual:

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

o utilitário zip possui duas outras opções úteis:

   -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.

Então tente

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

e se isso falhar

zip -FF file.exe --out extracted.zip
Ninguém
fonte
1

Ainda tenho que ver um programa de manipulação de zip que não pode fazer isso. Os arquivos de extração automática também são arquivos zip válidos, apenas com um monte de coisas extras (o extrator).

Você provavelmente descobrirá que não pode selecionar o utilitário como uma maneira de abrir o arquivo, mas se você simplesmente executar o utilitário e selecionar o arquivo que ele funciona.

Loren Pechtel
fonte
Como você faria isso com o utilitário "Pastas compactadas" padrão do Windows?
cowlinator
@cowlinator Não faço ideia. Há muito, muito tempo, encontrei o buggy de manipulador interno e não tentei usá-lo desde então.
Loren Pechtel 30/08/19
0

Você pode abrir um arquivo SFX com o WinZip, se quiser acessar os arquivos. Você não precisa executar o arquivo.

Parece que vários outros utilitários de compactação também abrirão arquivos SFX.

Rory Alsop
fonte
Não quero descomprimir o arquivo (ele é protegido por senha), só quero extrair o zip do exe.
TCS
Isso fará isso por você. Abra no WinZip e salve o arquivo como algo
Zip
0

Eu tive um problema semelhante, um executável SFX, que basicamente executa um exe que permite executar os arquivos dentro do arquivo morto. Abrir exe no 7zip mostra uma senha protegida. Procurei uma solução, ela deve armazenar a senha em algum tipo de cabeçalho ... Ao ler este tópico, uma solução alternativa me ocorreu.

Execute o exe, marque C: \ windows \ temp classificar por data e localize a pasta para a qual o exe foi extraído, existem os arquivos dentro do zip. Retire-os e feche-os novamente. Viola! você tem um zip do exe, sans password.

PhilFCS
fonte
0

Se você está lidando com jogos do gog.com, use o Innoextract . unzip, unrar7zip e outros não funcionaram para mim.

Robert
fonte
Outros programas zip NÃO funcionam com arquivos GOG? Os arquivos GOG são auto-extraíveis?
Music2myear