Làm thế nào để trích xuất ZIP từ exe tự giải nén?


18

Vâng, chủ đề nói lên tất cả. Tôi có một exe là SFX và tôi muốn trích xuất ZIP từ SFX. Làm thế nào tôi có thể làm điều đó?

Câu trả lời:


16

7-Zip phải có khả năng để làm điều này. Bạn có thể nhấp chuột phải vào tệp và chọn "Mở Lưu trữ" hoặc điều hướng đến tệp trong 7-Zip và nhấp chuột phải và chọn "Mở bên trong".


@Darcs: Tôi không thể mở kho lưu trữ vì zip được mã hóa bằng mật khẩu. Tôi chỉ muốn trích xuất zip từ exe, mà không giải nén ở giữa.
TCS

Không thể nói nếu nó sẽ hoạt động cho tệp của bạn, nhưng chỉ cần thay đổi phần mở rộng từ .exe sang .zip dường như hoạt động tốt với tôi. Nó vẫn sẽ chứa các phần thực thi của tệp, nhưng 7-Zip dường như hoàn toàn hạnh phúc khi bỏ qua nó.
Dracs

7-zip sẽ mở và nhận ra nó, nhưng tôi không muốn phần exe trong tệp (hoàn toàn là tệp zip, tiêu đề của nó là PK chứ không phải MZ như exe).
TCS

1
Tôi đã quản lý để làm điều này bằng trình soạn thảo hex. Tệp zip đơn giản và SFX được chỉnh sửa giống hệt nhau. Quá trình tôi đã làm là tìm kiếm tiêu đề của tệp zip trong SFX. Đối với 7-Zip, điều này có vẻ là 37 7A trước Công nguyên, tôi đã tìm kiếm sự xuất hiện cuối cùng của nó. Sau đó tôi xóa mọi thứ trước nó. Điều này dường như cung cấp cho tôi một tệp giống hệt với việc nén tệp thử nghiệm của mình. Nếu bạn cần một trình soạn thảo hex, tôi đã sử dụng XVI32 . Hãy cho tôi biết nếu nó hoạt động cho bạn hoặc nếu bạn cần giúp đỡ nữa.
Dracs

1
Nếu đó là một ZIPkho lưu trữ định dạng phù hợp , cách chính xác để xác định dữ liệu là định vị tiêu đề thư mục trung tâm bằng số ma thuật bốn byte của nó và đọc thư mục trung tâm để tìm tiêu đề tệp đầu tiên.
JdeBP

8

Trên Linux, có thể có tiện ích "zip":

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

Cảnh báo: Dòng tiếp theo thay đổi tệp .exe gốc để biến nó thành một kho lưu trữ zip thuần túy mà không cần các phần 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

Trên Linux, nếu đó là một lỗi cứng đầu và

zip -J file.exe

không chuyển đổi nó thành một zip có thể giải nén được vì phần không phải là zip không được dự phòng, xem trang hướng dẫn:

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

sau đó tiện ích zip có hai tùy chọn hữu ích khác:

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

Hãy thử

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

và nếu thất bại

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

1

Tôi vẫn chưa thấy một chương trình thao tác zip không thể làm điều này. Lưu trữ tự giải nén cũng là các tệp zip hợp lệ, chỉ với một loạt các công cụ bổ sung trong đó (trình trích xuất).

Bạn có thể sẽ thấy rằng bạn không thể chọn tiện ích làm cách mở tệp nhưng nếu bạn chỉ cần chạy tiện ích và sau đó chọn tệp thì nó hoạt động.


Bạn sẽ làm điều đó như thế nào với tiện ích "Thư mục nén" mặc định của Windows?
chăn bò

@cowlinator Không có ý kiến. Từ lâu, tôi đã tìm thấy lỗi xử lý tích hợp sẵn và tôi đã không thử sử dụng nó kể từ đó.
Loren Pechtel

0

Bạn có thể mở tệp SFX bằng WinZip nếu bạn muốn truy cập các tệp trong đó. Bạn không cần phải thực thi tập tin.

Có vẻ như một loạt các tiện ích nén khác cũng sẽ mở các tệp SFX.


Tôi không muốn giải nén tập tin (nó được bảo vệ bằng mật khẩu), tôi chỉ muốn giải nén zip từ exe.
TCS

Điều đó sẽ làm điều đó cho bạn. Mở trong WinZip và lưu trữ dưới dạng một cái gì
đó.zip

0

Tôi đã có một vấn đề tương tự, một thực thi SFX, về cơ bản chạy một exe sau đó cho phép bạn chạy các tệp trong kho lưu trữ. Mở exe trong 7zip cho thấy mật khẩu được bảo vệ. Tôi đã tìm kiếm một giải pháp, nó phải lưu trữ mật khẩu trong một số loại tiêu đề ... Trong khi đọc chủ đề này, một giải pháp thay thế đã xảy ra với tôi.

Chạy exe, sau đó kiểm tra C: \ windows \ temp sort theo ngày và tìm thư mục mà exe đã giải nén, có các tệp bên trong zip. Lấy chúng ra và nén chúng lại. Viola! bạn có một mã zip của mật khẩu exe, sans.


0

Nếu bạn đang làm việc với các trò chơi gog.com, hãy sử dụng Innoextract . unzip,, unrar7zip và những người khác không làm việc cho tôi.


Các chương trình zip khác KHÔNG hoạt động với các tệp GOG? Các tệp GOG có tự giải nén không?
nhạc2myear
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.