วิธีการแตก ZIP จาก exe แบบขยายตัวเอง?


18

เรื่องบอกว่ามันทั้งหมด ฉันมี exe ที่เป็น SFX และฉันต้องการแตก ZIP จาก SFX ฉันจะทำสิ่งนั้นได้อย่างไร

คำตอบ:


16

7-Zipควรมีความสามารถในการทำเช่นนี้ คุณสามารถคลิกขวาที่ไฟล์และเลือก "Open Archive" หรือไปที่ไฟล์ภายใน 7-Zip และคลิกขวาแล้วเลือก "Open Inside"


@Darcs: ฉันไม่สามารถเปิดการเก็บถาวรได้เนื่องจาก zip นั้นถูกเข้ารหัสด้วยรหัสผ่าน ฉันต้องการแยก zip จาก exe โดยไม่ต้องคลายซิปตรงกลาง
TCS

ไม่สามารถบอกได้ว่ามันจะทำงานกับไฟล์ของคุณหรือไม่ แต่เพียงแค่เปลี่ยนนามสกุลจาก. exe เป็น. zip ดูเหมือนว่าจะทำงานได้ดีสำหรับฉัน มันจะยังคงมีส่วนที่ปฏิบัติการได้ของไฟล์ แต่ดูเหมือนว่า 7-Zip ยินดีอย่างยิ่งที่จะไม่สนใจมัน
Dracs

7-zip จะเปิดและรับรู้ได้ แต่ฉันไม่ต้องการส่วน exe ในไฟล์ (ไฟล์ zip ล้วน ๆ ว่าส่วนหัวของมันคือ PK และไม่ใช่ MZ เหมือน exe)
TCS

1
ฉันจัดการให้ทำได้โดยใช้โปรแกรมแก้ไข hex ไฟล์ zip ธรรมดาและ SFX ที่แก้ไขนั้นเหมือนกัน กระบวนการที่ฉันทำคือมองหาส่วนหัวของไฟล์ zip ใน SFX สำหรับ 7-Zip ดูเหมือนว่าจะเป็น 37 7A BC ฉันค้นหาการเกิดขึ้นครั้งสุดท้าย จากนั้นฉันลบทุกอย่างก่อนหน้า ดูเหมือนว่าจะให้ไฟล์เหมือนกับการซิปไฟล์ทดสอบของฉันด้วยตัวเอง หากคุณต้องการแก้ไข hex ผมใช้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

ไม่แปลงเป็นไฟล์ที่สามารถแตกไฟล์ได้เนื่องจากส่วนที่ไม่ใช่ไฟล์ซิปไม่ได้เป็นส่วนเสริมเท่านั้นดูหน้าคู่มือ:

   -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 ไม่มีความคิด นานมาแล้วฉันพบ buggy handler ในตัวและฉันไม่ได้พยายามใช้มาตั้งแต่นั้น
Loren Pechtel

0

คุณสามารถเปิดไฟล์ SFX ด้วย WinZip หากคุณต้องการเข้าถึงไฟล์ภายใน คุณไม่จำเป็นต้องเรียกใช้ไฟล์

ดูเหมือนว่าช่วงของยูทิลิตี้การบีบอัดอื่น ๆ จะเปิดไฟล์ SFX ด้วย


ฉันไม่ต้องการคลายบีบอัดไฟล์ (ป้องกันด้วยรหัสผ่าน) ฉันแค่ต้องการแตก zip จาก exe
TCS

ที่จะทำเพื่อคุณ เปิดใน WinZip และบันทึกที่เก็บถาวรเป็นไฟล์. zip
Rory Alsop

0

ฉันมีปัญหาที่คล้ายกัน SFX ที่สามารถเรียกใช้งานได้ซึ่งโดยทั่วไปจะเรียกใช้ exe จากนั้นอนุญาตให้คุณเรียกใช้ไฟล์ภายในที่เก็บถาวร การเปิด exe ใน 7zip แสดงว่าได้รับการป้องกันด้วยรหัสผ่าน ฉันค้นหาวิธีแก้ปัญหามันจะต้องเก็บรหัสผ่านไว้ในส่วนหัวบางชนิด ... ขณะที่อ่านกระทู้นี้จะมีวิธีแก้ไขปัญหาอื่นให้ฉัน

เรียกใช้ exe จากนั้นตรวจสอบ C: \ windows \ temp จัดเรียงตามวันที่และค้นหาโฟลเดอร์ที่ exe แตกไปมีไฟล์อยู่ในไฟล์ zip นำพวกเขาออกและ zip พวกเขาสำรอง Viola! คุณมีไฟล์ zip ของรหัสผ่าน exe


0

หากคุณกำลังติดต่อกับเกม gog.com ใช้Innoextract unzip,, unrar7zip และคนอื่น ๆ ใช้งานไม่ได้สำหรับฉัน


โปรแกรมซิปอื่นไม่ทำงานกับไฟล์ GOG หรือไม่ ไฟล์ GOG แตกไฟล์เองหรือไม่?
music2myear
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.