อ่าน 8 นาที
การบีบอัดไฟล์ปฏิบัติการ
การบีบอัดไฟล์ปฏิบัติการ คือวิธีการใดๆ ก็ตามใน การบีบอัด ไฟล์ ปฏิบัติการ และรวมข้อมูลที่ถูกบีบอัดเข้ากับโค้ดการคลายการบีบอัดเป็นไฟล์ปฏิบัติการเดียว...
การบีบอัดไฟล์ปฏิบัติการ
การบีบอัดไฟล์ปฏิบัติการคือวิธีการใดๆ ก็ตามในการบีบอัดไฟล์ปฏิบัติการและรวมข้อมูลที่ถูกบีบอัดเข้ากับโค้ดการคลายการบีบอัดเป็นไฟล์ปฏิบัติการเดียว เมื่อไฟล์ปฏิบัติการที่ถูกบีบอัดนี้ถูกเรียกใช้ โค้ดการคลายการบีบอัดจะสร้างโค้ดดั้งเดิมขึ้นใหม่จากโค้ดที่ถูกบีบอัดก่อนที่จะเรียกใช้ ในกรณีส่วนใหญ่ กระบวนการนี้จะเกิดขึ้นอย่างโปร่งใส ดังนั้นไฟล์ปฏิบัติการที่ถูกบีบอัดจึงสามารถใช้งานได้ในลักษณะเดียวกับไฟล์ดั้งเดิมทุกประการ โปรแกรมบีบอัดไฟล์ปฏิบัติการมักถูกเรียกว่าโปรแกรมแพ็คไฟล์ ปฏิบัติการ โปรแกรมแพ็คขณะทำงาน โปรแกรมแพ็คซอฟต์แวร์ โปรแกรมป้องกันซอฟต์แวร์หรือแม้แต่ " โปรแกรมแพ็คแบบโพลีมอร์ฟิก " และ " เครื่องมือปกปิดข้อมูล "
ไฟล์ปฏิบัติการที่ถูกบีบอัดสามารถพิจารณาได้ว่าเป็นไฟล์เก็บถาวรแบบแตกไฟล์ได้เองโดยที่ไฟล์ปฏิบัติการที่ถูกบีบอัดจะถูกบรรจุรวมกับโค้ดการคลายการบีบอัดที่เกี่ยวข้องในไฟล์ปฏิบัติการไฟล์เดียว ไฟล์ปฏิบัติการที่ถูกบีบอัดบางไฟล์สามารถคลายการบีบอัดเพื่อสร้างไฟล์โปรแกรมดั้งเดิมขึ้นมาใหม่ได้โดยไม่ต้องเรียกใช้งานโดยตรง โปรแกรมสองโปรแกรมที่สามารถใช้ในการทำเช่นนี้ได้คือ CUP386 และ UNP
โดยทั่วไปแล้ว ไฟล์ปฏิบัติการที่ถูกบีบอัดส่วนใหญ่จะคลายการบีบอัดโค้ดต้นฉบับในหน่วยความจำ และส่วนใหญ่ต้องการหน่วยความจำเพิ่มขึ้นเล็กน้อยในการทำงาน (เนื่องจากต้องจัดเก็บโค้ดคลายการบีบอัด ข้อมูลที่ถูกบีบอัด และโค้ดที่คลายการบีบอัดแล้ว) นอกจากนี้ ไฟล์ปฏิบัติการที่ถูกบีบอัดบางไฟล์ยังมีข้อกำหนดเพิ่มเติม เช่น ไฟล์ที่เขียนไฟล์ปฏิบัติการที่คลายการบีบอัดแล้วลงในระบบไฟล์ก่อนที่จะเรียกใช้งาน
การบีบอัดไฟล์ปฏิบัติการไม่ได้จำกัดเฉพาะไฟล์ปฏิบัติการไบนารีเท่านั้น แต่ยังสามารถนำไปใช้กับสคริปต์ เช่นJavaScript ได้ด้วย เนื่องจากภาษาสคริปต์ส่วนใหญ่ถูกออกแบบมาให้ทำงานกับโค้ดที่มนุษย์อ่านได้ซึ่งมีความซ้ำซ้อน สูง การบีบอัดจึงมีประสิทธิภาพมากและง่ายดาย เพียงแค่แทนที่ชื่อยาวๆ ที่ใช้ระบุตัวแปรและฟังก์ชันด้วยชื่อที่สั้นกว่า และ/หรือลบช่องว่างออก
ข้อดีและข้อเสีย
ผู้จัดจำหน่าย ซอฟต์แวร์ใช้การบีบอัดไฟล์ปฏิบัติการด้วยเหตุผลหลายประการ โดยหลักๆ แล้วเพื่อลดความต้องการพื้นที่ จัด เก็บข้อมูลสำรอง ของซอฟต์แวร์ เนื่องจากโปรแกรมบีบอัดไฟล์ปฏิบัติการได้รับการออกแบบมาโดยเฉพาะเพื่อบีบอัดโค้ดปฏิบัติการ จึงมักให้ ผลลัพธ์การบีบอัด ที่ดีกว่าโปรแกรม บีบอัดข้อมูลมาตรฐานเช่นgzip , zipหรือbzip2これにより ผู้จัดจำหน่ายซอฟต์แวร์จึงสามารถอยู่ภายใต้ข้อจำกัดของสื่อการจัดจำหน่ายที่เลือกใช้ (เช่นCD-ROM , DVD-ROMหรือฟลอปปี้ดิสก์ ) หรือลดเวลาและแบนด์วิดท์ที่ลูกค้าต้องการในการเข้าถึงซอฟต์แวร์ที่จัดจำหน่ายผ่านทางอินเทอร์เน็ตได้
การบีบอัดไฟล์ปฏิบัติการมักถูกใช้เพื่อป้องกันการวิศวกรรมย้อนกลับหรือเพื่อปกปิดเนื้อหาของไฟล์ปฏิบัติการ (เช่น เพื่อซ่อนมัลแวร์จากโปรแกรมสแกนไวรัส ) โดยใช้วิธีการบีบอัดที่เป็นกรรมสิทธิ์และ/หรือการเข้ารหัส เพิ่มเติม การบีบอัดไฟล์ปฏิบัติการสามารถใช้เพื่อป้องกันการถอดรหัส โดยตรง ปิดบังข้อความตัว อักษร และแก้ไขลายเซ็น แม้ว่าสิ่งนี้จะไม่สามารถกำจัดโอกาสในการวิศวกรรมย้อนกลับได้ทั้งหมด แต่ก็สามารถทำให้กระบวนการมีต้นทุนสูงขึ้นได้
ไฟล์ปฏิบัติการที่ถูกบีบอัดจะใช้พื้นที่จัดเก็บในระบบไฟล์น้อยลง ดังนั้นจึงใช้เวลาน้อยลงในการถ่ายโอนข้อมูลจากระบบไฟล์ไปยังหน่วยความจำ ในทางกลับกัน ก็ต้องใช้เวลาในการคลายการบีบอัดข้อมูลก่อนที่จะเริ่มทำงาน อย่างไรก็ตาม ความเร็วของสื่อจัดเก็บข้อมูลต่างๆ ไม่ได้พัฒนาตามความเร็วเฉลี่ยของโปรเซสเซอร์ ดังนั้นพื้นที่จัดเก็บข้อมูลจึงมักเป็นคอขวด ด้วยเหตุนี้ ไฟล์ปฏิบัติการที่ถูกบีบอัดจึงโหลดได้เร็วกว่าในระบบทั่วไปส่วนใหญ่ ในคอมพิวเตอร์เดสก์ท็อปสมัยใหม่ ความแตกต่างนี้แทบจะไม่สังเกตเห็นได้เลย เว้นแต่ไฟล์ปฏิบัติการจะมีขนาดใหญ่ผิดปกติ ดังนั้นความเร็วในการโหลดจึงไม่ใช่เหตุผลหลักในการตัดสินใจว่าจะบีบอัดไฟล์ปฏิบัติการหรือไม่
ในระบบปฏิบัติการที่ดึงไฟล์ปฏิบัติการจากดิสก์ตามความต้องการ ไฟล์ปฏิบัติการที่ถูกบีบอัดจะทำให้กระบวนการนี้มีประสิทธิภาพลดลง ตัวถอดรหัสจะจัดสรรบล็อกหน่วยความจำเพื่อเก็บข้อมูลที่ถอดรหัสแล้ว ซึ่งจะยังคงถูกจัดสรรตราบใดที่ไฟล์ปฏิบัติการยังคงโหลดอยู่ ไม่ว่าจะถูกใช้งานหรือไม่ก็ตาม และจะแย่งชิงทรัพยากรหน่วยความจำกับแอปพลิเคชันอื่นๆ ตลอดเวลา หากระบบปฏิบัติการใช้ไฟล์สวอป ข้อมูลที่ถอดรหัสแล้วจะต้องถูกเขียนลงในไฟล์สวอปเพื่อปลดปล่อยหน่วยความจำ แทนที่จะทิ้งบล็อกข้อมูลที่ไม่ได้ใช้และโหลดใหม่จากไฟล์ปฏิบัติการหากจำเป็น โดยปกติแล้วจะไม่สังเกตเห็นปัญหานี้ แต่จะกลายเป็นปัญหาเมื่อไฟล์ปฏิบัติการถูกโหลดมากกว่าหนึ่งครั้งในเวลาเดียวกัน ระบบปฏิบัติการไม่สามารถนำบล็อกข้อมูลที่โหลดแล้วกลับมาใช้ใหม่ได้ ข้อมูลจะต้องถูกถอดรหัสลงในบล็อกหน่วยความจำใหม่ และจะถูกสวอปออกไปหากไม่ได้ใช้งาน ความต้องการพื้นที่จัดเก็บและเวลาที่เพิ่มขึ้นหมายความว่าต้องพิจารณาอย่างรอบคอบว่าจะบีบอัดไฟล์ปฏิบัติการที่มักจะถูกเรียกใช้มากกว่าหนึ่งครั้งในเวลาเดียวกันหรือไม่
ข้อเสียอีกประการหนึ่งคือ ยูทิลิตี้บางตัวไม่สามารถระบุ การพึ่งพา ไลบรารีในขณะทำงาน ได้อีกต่อไป เนื่องจากมองเห็นได้เพียงส่วนย่อยของตัวแยกข้อมูล ที่เชื่อมโยงแบบคงที่ เท่านั้น
นอกจากนี้ โปรแกรมสแกนไวรัสรุ่นเก่าบางโปรแกรมจะรายงานไฟล์ปฏิบัติการที่ถูกบีบอัดทั้งหมดว่าเป็นไวรัสเนื่องจากส่วนของตัวถอดรหัสมีลักษณะบางอย่างคล้ายคลึงกับไฟล์เหล่านั้น โปรแกรมสแกนไวรัสสมัยใหม่ส่วนใหญ่สามารถถอดรหัสชั้นการบีบอัดไฟล์ปฏิบัติการหลายชั้นเพื่อตรวจสอบไฟล์ปฏิบัติการจริงภายในได้ แต่โปรแกรมป้องกันไวรัสและมัลแวร์ยอดนิยมบางโปรแกรมก็ประสบปัญหาการแจ้งเตือนผิดพลาดเกี่ยวกับไฟล์ปฏิบัติการที่ถูกบีบอัด ในความพยายามที่จะแก้ปัญหาของมัลแวร์ที่ถูกปกปิดด้วยความช่วยเหลือของตัวบีบอัดขณะทำงาน กลุ่มความปลอดภัย ของIEEE Industry Connectionsจึงได้นำเสนอระบบ แท็กซอฟต์แวร์
การบีบอัดไฟล์ปฏิบัติการเคยได้รับความนิยมมากกว่าในยุคที่คอมพิวเตอร์มีข้อจำกัดด้านความจุในการจัดเก็บข้อมูล เช่นฟลอปปี้ดิสก์ซึ่งทั้งช้าและมีความจุต่ำ รวมถึงฮาร์ดไดรฟ์ ขนาดเล็ก การบีบอัดไฟล์ปฏิบัติการช่วยให้คอมพิวเตอร์สามารถจัดเก็บซอฟต์แวร์ได้มากขึ้นในพื้นที่เท่าเดิม โดยไม่ต้องเสียเวลาในการแตกไฟล์เก็บถาวรทุกครั้งที่ต้องการใช้งานซอฟต์แวร์ อย่างไรก็ตาม การบีบอัดไฟล์ปฏิบัติการได้รับความนิยมน้อยลงเนื่องจากความจุในการจัดเก็บข้อมูลของคอมพิวเตอร์เพิ่มขึ้น แต่ก็ยังคงมีประโยชน์ในวงการเดโมซีน (demoscene)ที่เดโมต้องมีขนาดไม่เกินที่กำหนด เช่นอินโทร 64kมีเพียงรูปแบบการบีบอัดที่ซับซ้อนมากเท่านั้น ซึ่งจะทำให้เวลาในการโหลดเพิ่มขึ้น จึงจะทำให้ไฟล์ปฏิบัติการมีขนาดเล็กพอที่จะเข้าร่วมการแข่งขันได้
รายชื่อโปรแกรมแพ็คเกอร์ที่สามารถเรียกใช้งานได้
ไฟล์ปฏิบัติการ CP/M และ MSX-DOS
โปรแกรมบีบอัดไฟล์แบบเรียกใช้งานได้ที่รู้จักสำหรับไฟล์ .COM ของ CP/M-80 / MSX-DOS :
- PMexe (ตั้งแต่ปี 1990 เขียนโดย Yoshihiko Mino, PMARC.COM+PMEXE.CPM, ลายเซ็น "-pms-") [ 1 ]
- PopCom! (ตั้งแต่ปี 1992 เขียนโดย Yoshihiko Mino, POPCOM.COM, ลายเซ็น "-pc1-")
ไฟล์ปฏิบัติการ MS-DOS
โปรแกรมบีบอัด ไฟล์ปฏิบัติการที่ใช้ได้กับMS-DOS ( .COMหรือ.EXE ) ที่รู้จัก:
- Realia Spacemaker (ตั้งแต่ปี 1982 เขียนโดยRobert BK Dewar , SM.COM, ลายเซ็น "MEMORY$") [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
- Microsoft EXEPACK (ตั้งแต่ปี 1985 เขียนโดย Reuben Borman, EXEPACK.EXE, LINK.EXE /E[XEPACK], ลายเซ็น "RB") [ 9 ] [ 5 ] [ 4 ] [ 10 ]
- LZEXE (ตั้งแต่ปี 1989 เขียนโดยFabrice Bellard , LZEXE.EXE) [ 11 ] [ 12 ]
- PKWare PKLite (ตั้งแต่ปี 1990 เขียนโดยPhil Katz , PKLITE.EXE) [ 12 ] [ 13 ]
- DIET (ตั้งแต่ปี 1991 เขียนโดย Teddy Matsumoto, DIET.EXE) [ 12 ]
- TINYPROG (TINYPROG.EXE)
- RJS Software RJCRUSH (เขียนโดย Roland Skinner ตั้งแต่ปี 1994 ไฟล์ RJCRUSH.EXE)
- XPA (เขียนโดย JauMing Tseng ตั้งแต่ปี 1995 ไฟล์ XPA.EXE)
- ซอฟต์แวร์ Ibsen aPACK (ตั้งแต่ปี 1997 เขียนโดย Jørgen Ibsen, APACK.EXE)
- UPX (ตั้งแต่ปี 1998 เขียนโดย Markus FXJ Oberhumer และLászló Molnár)
- 32LiTE (เขียนโดย Oleg Prokhorov ตั้งแต่ปี 1998, 32LITE.EXE)
- คอมเพรสเซอร์ LZW ของพลวัตความรู้[ 14 ]
- WWpack (ตั้งแต่ปี 1994 เขียนโดย Piotr Warezak และ Rafal Wierzbicki, WWPACK.EXE)
- 624 (สำหรับไฟล์ .COM ที่มีขนาดเล็กกว่า 25 KB เท่านั้น โดยใช้LZW )
- ไอเน็กซ์
- เอฟแพ็ค
- คอมแพค
- ซองจดหมาย HASP
- แอลจีแอลซี
- พีเอ็มดับเบิลยูไลท์
- โปรแพ็ค
- ยูซีเอ็กซ์
- ดับเบิลยูดีเอสเอ็กซ์
- เอ็กซ์อี
- เอ็กซ์แพ็ค
ไฟล์ปฏิบัติการ OS/2
โปรแกรมบีบอัดไฟล์ปฏิบัติการที่รู้จักภายใต้ระบบปฏิบัติการ OS/2 :
- เนไลท์
- แอลเอ็กซ์ไลท์
ไฟล์ปฏิบัติการใหม่
โปรแกรมบีบอัดไฟล์ปฏิบัติการที่รู้จักสำหรับไฟล์ปฏิบัติการใหม่ :
- แพ็ควิน
- PKWare PKLite (ตั้งแต่เวอร์ชัน 2.01)
- วินไลท์
ไฟล์ปฏิบัติการแบบพกพา
โปรแกรมบีบอัดไฟล์ปฏิบัติการสำหรับPortable Executables ที่เป็นที่รู้จัก :
หมายเหตุ: ลูกค้าที่มีสีม่วงคือลูกค้าที่สิ้นสุดการพัฒนาแล้ว
| ชื่อ | เวอร์ชั่นเสถียรล่าสุด | ใบอนุญาตซอฟต์แวร์ | รองรับ x86-64 |
|---|---|---|---|
| 32 ลิตร | |||
| เอเลี่ยน | 1.4 (17 สิงหาคม 2563 ) | กรรมสิทธิ์ | เลขที่ |
| แอนด์แพ็กก์2 | |||
| อาร์มาดิลโล | 9.62 (7 มิถุนายน 2556 ) | กรรมสิทธิ์ | Yes |
| ASPack | 2.40 (7 December 2018) | Proprietary | Yes |
| ASPR (ASProtect) | 2.78 (7 December 2018) | Proprietary | Yes |
| BeRoEXEPacker | |||
| BIN-crypter | |||
| BoxedApp Packer | 3.3 (26 July 2015) | Proprietary | Yes |
| CExe | 1.0b (20 July 2001) | GPL | No |
| Crinkler | 2.3 (22 July 2020) | Zlib | Yes |
| dotBundle | 1.3 (4 April 2013)[15] | Proprietary | Yes |
| Enigma Protector | 6.60 (21 August 2019)[16] | Proprietary | Yes |
| Enigma Virtual Box | 9.40 (10 October 2019)[16] | Proprietary | Yes |
| exe32pack | |||
| EXE Bundle | 3.11 (7 January 2011)[17] | Proprietary | ? |
| EXECryptor | |||
| EXE Stealth | 4.14 (29 June 2011)[17] | Proprietary | ? |
| eXPressor | 1.8.0.1 (14 January 2010) | Proprietary | ? |
| FSG | 2.0 (24 May 2004)[18] | Freeware | No |
| kkrunchy src | 0.23a4 (Unknown) | Public domain | No |
| MEW | 1.1 (Unknown) | Freeware | No |
| MPRESS | 2.19 (2 January 2012) | Freeware | Yes |
| MuCruncher | |||
| NeoLite | |||
| NsPack | |||
| Obsidium | 1.6 (11 April 2017)[19] | Proprietary | Yes |
| PECompact | |||
| PEPack | |||
| PESpin | 1.33 (3 May 2011) | Freeware | Yes |
| Petite | 2.4 (22 September 2016) | Freeware | No |
| PKLite32 | |||
| RLPack Basic | 1.21 (31 October 2008) | GPL | No |
| Shrinker32 | |||
| Smart Packer Pro X | 2.0.0.1 (3 June 2019) | Proprietary | Yes |
| Themida/WinLicense | 3.2.5.0 (17 November 2025) | Proprietary | Yes |
| Upack | |||
| UPX | 5.0.1 (6 May 2025) | GPL | Yes |
| VMProtect | 3.4 (3 August 2019) | Proprietary | Yes |
| WWPack32 | 1.20 (19 June 2000) | No | |
| XComp/XPack | 0.98 (18 February 2007) | Freeware | No |
| Yoda's Crypte | |||
| YZPack |
ELF files
Known executable compressors for ELF files:
- gzexe (uses a shell script stub and gzip, works on most Unix-like systems)
- HASP Envelope
- UPX
- 624 (for Linux/386)[20]
CLI assembly files
Known executable compressors for CLI assembly files:
- .NETZ
- NsPack
- Mpress
- HASP Envelope
- dotBundle
- Exepack.NET
- DotProtect:[21] Commercial protector/packer for .net and mono. Features on-line verifications and "industry standard encryption".
Mac OS Classic applications
Executable compressors for Mac OS Classic applications:
- Application VISE[22]
- StuffIt InstallerMaker
Mach-O (Apple Mac OS X) files
Known executable compressors for Mach-O (Apple Mac OS X) files:
- HASP Envelope
- UPX
- VMProtect
Commodore 64 and VIC-20
Known executable compressors for executables on the Commodore 64 and VIC-20:
อามิกา
โปรแกรมบีบอัดไฟล์ปฏิบัติการที่รู้จักสำหรับไฟล์ปฏิบัติการบน ซีรี่ส์ Amiga :
- พาวเวอร์แพ็คเกอร์[ 26 ]
- เครื่องบดไททานิค[ 26 ]
- เครื่องระเบิด[ 26 ]
- TNM ครันเชอร์
- ชิคเลอร์[ 27 ]
- แพ็คไฟร์[ 28 ]
ชวา
โปรแกรมบีบอัดไฟล์ปฏิบัติการที่เป็นที่รู้จักสำหรับJava :
ไฟล์ JAR :
- ซองจดหมาย HASP
- แพ็ค 200
- โปรการ์ด
ไฟล์ WAR :
- ซองจดหมาย HASP
โค้ด JavaScript
มีวิธีการบีบอัดสองประเภทที่สามารถนำมาใช้กับ สคริปต์ JavaScript ได้ :
- ลดความซ้ำซ้อนในสคริปต์ (โดยการลบความคิดเห็น ช่องว่าง และย่อชื่อตัวแปรและฟังก์ชัน) การดำเนินการนี้จะไม่เปลี่ยนแปลงการทำงานของสคริปต์
- บีบอัดสคริปต์ต้นฉบับแล้วสร้างสคริปต์ใหม่ที่มีโค้ดสำหรับคลายการบีบอัดและข้อมูลที่ถูกบีบอัด กระบวนการนี้คล้ายกับการบีบอัดไฟล์ปฏิบัติการแบบไบนารี
คอมเพรสเซอร์แบบลดแรงดันอัตโนมัติ
คำสั่งเหล่านี้จะบีบอัดสคริปต์ต้นฉบับและสร้างสคริปต์ใหม่ที่มีตัวคลายการบีบอัดและข้อมูลที่ถูกบีบอัดแล้ว
- เจเอสเอฟเอ็กซ์
- แพ็คฟาย
คอมเพรสเซอร์ที่ช่วยลดความซ้ำซ้อน
คำสั่งเหล่านี้จะลบช่องว่าง ลบความคิดเห็น และย่อชื่อตัวแปรและฟังก์ชัน แต่จะไม่เปลี่ยนแปลงพฤติกรรมของสคริปต์
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การบีบอัดไฟล์ปฏิบัติการ
การบีบอัดไฟล์ปฏิบัติการ คือวิธีการใดๆ ก็ตามใน การบีบอัด ไฟล์ ปฏิบัติการ และรวมข้อมูลที่ถูกบีบอัดเข้ากับโค้ดการคลายการบีบอัดเป็นไฟล์ปฏิบัติการเดียว...
ข้อดีและข้อเสีย
ผู้จัดจำหน่าย ซอฟต์แวร์ ใช้การบีบอัดไฟล์ปฏิบัติการด้วยเหตุผลหลายประการ โดยหลักๆ แล้วเพื่อลดความต้องการพื้นที่ จัด เก็บข้อมูลสำรอง ของซอฟต์แวร์ เนื่องจากโปรแกรมบีบอัดไฟล์ปฏิบัติการได้รับการออกแบบมาโดยเฉพาะเพื่อบีบอัดโค้ดปฏิบัติการ จึงมักให้ ผลลัพธ์การบีบอัด...
ไฟล์ปฏิบัติการ CP/M และ MSX-DOS
โปรแกรมบีบอัดไฟล์แบบเรียกใช้งานได้ที่รู้จักสำหรับ ไฟล์ .COM ของ CP/M-80 / MSX-DOS :
ไฟล์ปฏิบัติการ MS-DOS
โปรแกรมบีบอัด ไฟล์ปฏิบัติการที่ใช้ได้กับ MS-DOS ( .COM หรือ .EXE ) ที่รู้จัก: