Jak wyodrębnić plik ZIP z samorozpakowującego się pliku exe?

18

Temat mówi wszystko. Mam exe, który jest SFX, i chcę wyodrębnić ZIP z SFX. Jak mogę to zrobić?

TCS
źródło

Odpowiedzi:

16

7-Zip powinien być w stanie to zrobić. Możesz kliknąć plik prawym przyciskiem myszy i wybrać „Otwórz archiwum” lub przejść do pliku w 7-Zip i kliknąć prawym przyciskiem myszy i wybrać „Otwórz wewnątrz”.

Dracs
źródło
@Darcs: Nie mogę otworzyć archiwum, ponieważ zip jest szyfrowany hasłem. Chcę tylko rozpakować zip z exe, bez rozpakowywania w środku.
TCS
Nie mogę powiedzieć, czy to zadziała dla twojego pliku, ale po prostu zmiana rozszerzenia z .exe na .zip wydawała się działać dobrze. Wciąż będzie zawierać wykonywalne części pliku, ale 7-Zip wydaje się być całkowicie szczęśliwy, mogąc go zignorować.
Dracs,
7-zip otworzy się i rozpozna, ale nie chcę części exe w pliku (czysto zip, że jego nagłówek to PK, a nie MZ jak exe).
TCS
1
Udało mi się to zrobić za pomocą edytora szesnastkowego. Zwykły plik zip i edytowany plik SFX są identyczne. Cały proces polegał na szukaniu nagłówka pliku zip w SFX. W przypadku 7-Zip wydaje się, że jest to 37 7A pne, szukałem jego ostatniego wystąpienia. Następnie usunąłem wszystko przed tym. Wydaje mi się, że daje mi to plik identyczny jak sam plik zip. Jeśli potrzebujesz edytora szesnastkowego, użyłem XVI32 . Daj mi znać, czy to działa dla Ciebie, czy potrzebujesz dalszej pomocy.
Dracs,
1
Jeśli jest to ZIParchiwum w odpowiednim formacie, poprawnym sposobem zlokalizowania danych jest zlokalizowanie nagłówka centralnego katalogu za pomocą jego czterobajtowej magicznej liczby i przeczytanie centralnego katalogu w celu znalezienia pierwszego nagłówka pliku.
JdeBP
8

W systemie Linux jest to możliwe dzięki narzędziu „zip”:

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

Ostrzeżenie: następny wiersz zmienia oryginalny plik .exe, dzięki czemu staje się czystym archiwum zip bez części 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.
...
użytkownik2771443
źródło
2

W systemie Linux, jeśli jest uparty i

zip -J file.exe

nie przekształca go w ekstraktowalny zamek błyskawiczny, ponieważ część nieobsługiwana przez zip jest nie tylko wcześniejsza, patrz strona instrukcji:

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

wtedy narzędzie zip ma dwie inne przydatne opcje:

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

Więc spróbuj

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

a jeśli to się nie powiedzie

zip -FF file.exe --out extracted.zip
Nikt
źródło
1

Nie widziałem jeszcze programu do manipulacji zipem, który nie może tego zrobić. Archiwa samorozpakowujące są również prawidłowymi plikami zip, z kilkoma dodatkowymi rzeczami (ekstraktorem).

Prawdopodobnie okaże się, że nie można wybrać narzędzia jako sposobu otwarcia pliku, ale jeśli po prostu uruchomisz narzędzie, a następnie wybierzesz plik, który działa.

Loren Pechtel
źródło
Jak zrobiłbyś to z domyślnym wbudowanym narzędziem Windows „Foldery skompresowane”?
cowlinator
@cowlinator Nie mam pojęcia. Dawno, dawno temu znalazłem wbudowany moduł obsługi i od tego czasu nie próbowałem go używać.
Loren Pechtel,
0

Możesz otworzyć plik SFX za pomocą WinZip, jeśli chcesz uzyskać dostęp do plików w nim zawartych. Nie musisz wykonywać pliku.

Wygląda na to, że szereg innych narzędzi do kompresji otworzy również pliki SFX.

Rory Alsop
źródło
Nie chcę dekompresować pliku (jest chroniony hasłem), chcę tylko rozpakować zip z exe.
TCS,
To zrobi za ciebie. Otwórz w WinZip i zapisz archiwum jako coś. Zip
Rory Alsop
0

Miałem podobny problem, plik wykonywalny SFX, który zasadniczo uruchamia plik exe, który następnie pozwala na uruchamianie plików w archiwum. Otwarcie exe w 7zip pokazuje, że jest chronione hasłem. Szukałem rozwiązania, które musi przechowywać hasło w jakimś nagłówku ... Podczas czytania tego wątku przyszło mi do głowy alternatywne rozwiązanie.

Uruchom plik exe, a następnie sprawdź sortowanie według C: \ windows \ temp według daty i znajdź folder, do którego plik exe został wyodrębniony, w pliku zip znajdują się pliki. Wyjmij je i zapakuj z powrotem. Altówka! masz zip exe, bez hasła.

PhilFCS
źródło
0

Jeśli masz do czynienia z grami gog.com, użyj Innoextract . unzip, unrar, 7zip i inni nie działa dla mnie.

Robert
źródło
Czy inne programy zip NIE działają z plikami GOG? Czy pliki GOG są samorozpakowujące się?
music2myear