Як витягнути ZIP з саморозпаковується exe?


18

Ну, тематика все це говорить. У мене є exe, який є SFX, і я хочу витягнути ZIP з SFX. Як я можу це зробити?

Відповіді:


16

7-Zip повинен бути здатний це робити. Ви можете клацнути правою кнопкою миші файл і вибрати "Відкрити архів" або перейти до файла в межах 7-Zip та клацнути правою кнопкою миші та вибрати "Відкрити всередину".


@Darcs: Я не можу відкрити архів, оскільки поштовий індекс зашифрований паролем. Я просто хочу витягнути блискавку з exe, не розгортаючи посередині.
TCS

Не можу сказати, чи буде він працювати для вашого файлу, але просто змінивши розширення з .exe на .zip, здавалося, добре працює для мене. Він все ще буде містити виконувані частини файлу, але 7-Zip, здається, абсолютно радий ігнорувати його.
Dracs

7-zip відкриє і розпізнає його, але я не хочу, щоб частина EXE у файлі (чисто zip-файл, щоб його заголовок був PK, а не MZ, як exe).
TCS

1
Мені вдалося це зробити за допомогою шестигранного редактора. Простий поштовий файл та відредагований SFX ідентичні. Я зробив пошук пошуку заголовка zip-файлу в SFX. Для 7-Zip це здається 37 7A до н.е., я здійснив пошук останнього явища. Потім я видалив усе до цього. Це, здається, дає мені файл, ідентичний тому, щоб застебнути свій тестовий файл. Якщо вам потрібен шестигранний редактор, я використовував XVI32 . Повідомте мене, чи працює це для вас чи вам більше потрібна допомога.
Dracs

1
Якщо це правильний ZIPархів формату, правильний спосіб пошуку даних - це пошук заголовка центрального каталогу за його чотирибайтовим магічним номером та зчитування центрального каталогу, щоб знайти перший заголовок файлу.
JdeBP

8

У Linux можливо за допомогою утиліти "zip":

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

Попередження: Наступний рядок змінює оригінальний файл .exe, щоб зробити його чистим архівом zip без частин 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

У Linux, якщо це впертий і

zip -J file.exe

не перетворює його на отримання блискавки, яку можна отримати, тому що частина, яка не містить ZIP, не є просто попередньою, див. сторінку керівництва:

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

то утиліта zip має ще два корисні варіанти:

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

Тож спробуйте

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

і якщо це не вдасться

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

1

Мені ще не доводиться бачити програму маніпуляції на блискавці, яка не може цього зробити. Архів архівів для самостійного вилучення також є дійсними поштовими файлами, лише з низкою зайвих речей у них (витяжка).

Напевно ви виявите, що ви не можете вибрати утиліту як спосіб відкриття файлу, але якщо просто запустити утиліту, а потім вибрати файл, який вона працює.


Як би ви це зробили за допомогою типової вбудованої утиліти "Стислі папки" за замовчуванням Windows?
ковбасник

@cowlinator Не маю ідеї. Давно, давно я знайшов вбудований обробник баггі, і з тих пір не намагався ним користуватися.
Лорен Печтел

0

Ви можете відкрити файл SFX за допомогою WinZip, якщо хочете отримати доступ до файлів всередині. Вам не потрібно виконувати файл.

Схоже, що ряд інших утиліт стиснення також відкриє файли SFX.


Я не хочу розпаковувати файл (він захищений паролем), я просто хочу витягнути ZIP з EXE.
TCS

Це зробить це за вас. Відкрийте у WinZip і збережіть архів як щось.zip
Rory Alsop

0

У мене була подібна проблема, виконуваний файл SFX, який в основному запускає exe, який потім дозволяє запускати файли в архіві. Відкриваючи exe в 7zip, він показує, що він захищений паролем. Я шукав рішення, він повинен зберігати пароль у якомусь заголовку ... Під час читання цієї теми мені прийшло альтернативне рішення.

Запустіть exe, після цього поставте прапорець C: \ windows \ temp сортувати за датою та знайдіть папку, до якої вилучено exe, там є файли всередині zip. Вийміть їх і застебніть назад. Віола! у вас є поштовий файл exe, sans пароль.


0

Якщо ви маєте справу з іграми gog.com, використовуйте Innoextract . unzip, unrar, 7zip і інші не працюють для мене.


Чи інші програми zip НЕ працюють з файлами GOG? Чи файли GOG саморозпаковуються?
music2myear
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.