WWPACK 3.04 a powerful executable file compressor for DOS Copyright (c) 1993-96 by Piotr Warezak and Rafal Wierzbicki 6 January 1996 Lodz, Poland All Rights Reserved We are happy to provide our e-mail addresses. Please feel free to inform us of any problems at the following addresses. Authors: awarezak@krysia.uni.lodz.pl American distributor: gjereza@crl.com German distributor: support@vgasoft.com The latest shareware version of WWPACK can always be found on: o Slovak Antivirus Center: ftp.elf.stuba.sk /pub/pc/pack o SimTel mirrors, directory /SimTel/msdos/execomp (eg. oak.oakland.edu or ftp.cyf-kr.edu.pl) o The ClipBoard BBS (415) 293 0454 8N1 2400-28800bps 24 hours, San Francisco o WWPACK is FREQable (file requestable) from The ClipBoard BBS, FidoNet 1:125/454 The magic name is WWPACK. o VGA-Copy Headquarters BBS +49-441-972955 8N1 USRobotics V34 24 hours, Germany o WWPACK is file requestable from VGA-Copy Headquarters, FidoNet 2:2426/2240 The magic name is WWPACK. o ftp-mailserver: fileserv@vgasoft.com *** This version of WWPACK must be registered,and requires the WWPACK.REG *** key file created specifically for you. *** The WWPACK.REG file can not be distributed, sent, rented, changed, *** hacked, or reversed engineered in any way. Any attempts to do so will *** automatically terminate the license! *** The original version WWPACK is distributed in the ZIP file containing *** WWP304.EXE RAR 1.55 SFX archive with Authenticy Verification information *** "by Piotr Warezak and Rafal Wierzbicki". WHAT IS A WWPACK? WWPACK is a powerful EXE file compressor. This program compresses most DOS executable files. Compressed programs use less disk space because they are much smaller. All files run EXACTLY as before. REQUIREMENTS TO RUN WWPACK. WWPACK works on any machine with about 450Kb free DOS memory. Remember that the faster machine you use the less time you need to compress an EXE file. Requirements to run EXE files compressed with WWPACK. A file compressed with WWPACK will run on IBM or compatible based systems like the XT, AT, 80286, 80386, 80486, Pentiums, laptops, and palmtops (eg. the Hewlett Packard HP95LX). DOS 2.0 or higher is required. WWPACK'S COMMANDS - to get a very short help type: WWPACK /? To pack an EXE file enter: WWPACK FILENAME.EXE or WWPACK P FILENAME.EXE When complete, the file will be smaller and work as before. The packing process can be interrupted by using the CTRL+Break keys. To pack a relocation table enter: WWPACK PR FILENAME.EXE To create an unextractable and encrypted (!) file use this command: WWPACK PU FILENAME.EXE Warning: this procedure cannot be reversed! This command should be used only on files that you want to distribute. To protect a file with a password type: WWPACK PP FILENAME.EXE WWPACK will ask you for a password which you must enter twice. The password must be from four to nine characters long and is NOT case sensitive. Warning: if you forget your run-password your file will be unusable! To unpack an EXE file enter: WWPACK U FILENAME. Remember that the file you want to process with this command must be already compressed with WWPACK! (Note that the 'U' command can't decompress files created with the 'PU' command). TESTING EXE FILES. Command 'T' lets you see if the file is already compressed by any executable file compressor. WWPACK recognizes files compressed by LZEXE, PKLITE and many many other compressors. Usage: WWPACK T FILENAME.EXE Additional command WWPACK T checks automatically all EXE files stored in the current directory. OPTIMIZING HEADERS. If you want to optimize a header of an EXE file use: WWPACK O FILENAME.EXE Sometimes the header can be a bit shorter but in most cases nothing will change. ADDITIONAL COMMANDS: 'PD' and 'UD'. WWPACK has two commands that you can use on any file you want: 'PD' and 'UD' (pack data and unpack data). Command 'PD' will pack a data file. Example: WWPACK PD PROGRAM.DAT Command 'UD' will unpack any file packed with 'PD'. Example: WWPACK UD PROGRAM.DAT Note: Normally, a packed data file is unusable. Therefore, you must first unpack it (ie 'PD' and 'UD' options are similar to PKZIP's 'a' and 'e' commands). Please see the WWPACK Pascal Support procedures for info how to use WWPACKed data files in your programs. With our TPU files, you can read WWPACKed files and decompress them directly to memory! CAN I USE WILDCARDS? Sure! WWPACK lets you to use '*' and '?' in every command. Examples: to compress all EXE files in the current directory just type: WWPACK P *.EXE to optimize headers of all EXE files type: WWPACK O *.EXE to pack all files (as data) enter this command: WWPACK PD *.* CAN I USE PATHS? Of course you can! Example: command WWPACK P C:\UTILITY\TEST.EXE will compress TEST.EXE file stored in C:\UTILITY directory. CONFIGURATION MENU. We wanted to make WWPACK easy to use. You don't have to remember any options because you can set everything in a special configuration menu. To configure the program enter: WWPACK C. Now use number keys to set some useful options. 1 - do you want WWPACK to make backup files? Select 'ON' and you will always get OLD and OLP files. (There are two exceptions: WWPACK always makes backups when 'PP' command is used or when the file packed with the 'PP' command is being unpacked). 2 - select 'ON' if you want to get more information about every file that is being compressed. 3 - please select 'ON' if you want to compress files with overlays or 'OFF' if you don't want to compress such a files. If you choose 'ASK' WWPACK will always ask you if the file should be compressed or not. 4 - select 'ON' if you want WWPACK to compress already compressed files. 5 - sometimes WWPACK is slow, so selecting 'ON' is a good idea. 6 - select 'ON' to use 'Smart unpacking'. This option tells WWPACK to copy .OLD or .OLP file to .EXE instead of the normal unpacking when possible (this way unpacking is much faster). 7 - use this option to select an "unextractable compression method": SOFT - to create files unextractable with WWPACK HARD - to create files unextractable not only by WWPACK but with many other intelligent unpackers (we tried CUP 1.2, UUP 1.4, TRON 1.21+ Shareware and many other decompression programs - all failed to extract the code!) When you set all options, press 'S' key to save them or 'ESC' to exit without saving. You may use the 'T' key to set the default configuration. PARAMETERS AND SWITCHES. Here is list of parameters that you may use while working with WWPACK: -adv use advanced mode -b- tells WWPACK not to make backup files -b+ always make backups (OLD and OLP files) -d compressed files will run before specified day (this option can be used only with 'PU' compression method) -o- don't pack files with overlays -o+ always pack files with overlays -p- don't pack already packed files -p+ pack already packed files -t ask for a text that the file packed with -d option will show when the run date is exceeded -us use unextractable SOFT compression method (with 'PU' command only) -uh use unextractable HARD compression method -y assume 'YES' on all queries (WWPACK will proces automatcally all files) Example: WWPACK P -B- -O+ -Y MYPROG.EXE means: pack MYPROG.EXE file; don't make backup; pack even if the file contains an overlay. Process automatically the file (no questions while packing). PACKING FILES FROM THE LIST FILE. A special option: -@FileName lets you to process only selected files. To pack only a few files from the current directory, you can create a special file, for example: WWPACK.LST (name of this file is not important). This file should contain the names of all files you want to process. Every name should begin from a new line. There musn't be any free lines in the list file! Here is an example of a list file: --- cut here --- MYFILE.EXE ANYFILE.EXE anotHer.EXE --- cut here --- This small file tells WWPACK to process only three files. All other files from the current directory will be skipped. To use this list file type: WWPACK P -@WWPACK.LST Note, that wildcards and paths aren't allowed in the list file! BACKUP FILES. Not every EXE file can be compressed with WWPACK. That's why this program creates backups. In case of problems you can restore the original file. Remember: Original FILENAME.EXE file is always renamed to FILENAME.OLD file while compressing or optimizing, and to FILENAME.OLP when decompressing. HINT: If you forgot to make a backup while compressing an EXE file, try undeleting or unerasing it! FILES THAT CAN'T BE PACKED. Some files can't be compressed with WWPACK. o programs that check the CRC of a file o files that store configuration data internally o drivers that can be loaded in a config.sys file o some files with overlays o Windows and OS/2 files ('NE' and 'LE' programs) o some COM files (COM file may not work after conversion to EXE format) o files that contain more than 15000 relocation entries Some files are automatically recognized by WWPACK. But sometimes it's impossible to predict if the file can be compressed. You just have to check every compressed EXE file! CRC MODULE: "Be sure that the file isn't damaged" WWPACK uses special module that adds CRC code to EVERY compressed EXE file. This unique technology lets you to check if any WWPACKed EXE file has been damaged or infected by a virus. To check files you may use WWVIR or CRC program. HINTS FOR PROGRAMMERS: o You may freely add CRC program to your commercial and noncommercial products. It's public domain! (However, you must have the enhanced version of WWPACK to distribute WWPACKed programs) o CRC module checks almost EVERY byte of compressed EXE file: from the beginning ('MZ' signature) to the very end. Warning: CRC module doesn't check overlays! o There are six bytes in the compressed EXE file that you can freely change. The area in $1A to $1F bytes is not protected with the CRC module, so you can store configuration or any data here. o Please see WWPACK Pascal Support for CRC.TPU unit. ERRORS AND OTHER MESSAGES. WWPACK is quite an intelligent program and sometimes it may show some kind of an error message. But don't worry. Just read the comment and you will find an explanation for the problem (WWPACK has almost 30 error messages!). From time to time you may see some question also (it depends on a configuration that you have chosen). Here is a list of important questions and messages that you may meet when working with WWPACK: CRC status: OK File CRC is OK. It means that the file is not damaged nor infected by a virus. This massage appears while unpacking the file packed with WWPACK version 3.03 or 3.04. Delete FILENAME file to make a new backup file [Y/n]? WWPACK must know if the old backup file can be deleted. Press 'Y' key to continue processing or 'N' to quit (and save an old backup). Enter date limit (dd-mm-yy): Type the date that the packed file will not work after. For example: 01-02-97 tells WWPACK to create the file that will not work after the 1st february 1997. Enter date limit text: Type the text, that you want to be shown by the packed file when the date limit is exceeded. The text must not exceed 55 characters! Enter password: This message appears when the 'PP' or 'U' command is used. Please enter the password required to run the packed file ('PP' command) or enter the password required to unpack the compressed file ('U' command). File not processed. You didn't let WWPACK process the file (for example you didn't let WWPACK delete an old backup file). Relocation table is already packed. You can't use 'PR' command because the relocation table is already packed. Please try the 'P' command to get a higher compression ratio. The file FILENAME has set attribute READ ONLY. Change file attribute [Y/n]? The file has set the READ ONLY attribute. To process it the attribute must be deleted. Press 'Y' key to continue packing or 'N' to stop WWPACK. The file contains Debug_Info. Do you want to remove it [Y/n]? The file contains some data that aren't required by a program. These data can be removed - the file will be much shorter. Press 'Y' if you want WWPACK to remove Debug_Info or 'N' to process the file without removing it. The file size stored in the header is bigger then the real file size. The processed file may not work. Continue [Y/n]? The file is probably damaged but you may want WWPACK to pack it. This message is rarely seen. Warning: bad CRC. File probably damaged. The file that is being unpacked is damaged. It may not work after decompression! Warning: the file contains an overlay XXX bytes. Continue [Y/n/r]? The file that you want to process contains an overlay. Press 'Y' to pack or optimize the file or 'N' if you don't want to process it. Press 'R' to remove an overlay and then process the file (not recommended really). Warning: the file is already packed with .... Do you want to pack it [Y/n]? The file is already packed but WWPACK may try to pack it. Press 'Y' if you want WWPACK to process the file or 'N' to quit. Warning: there are some identical relocation entries. This message shows that the file may not work after compression because the relocation table contains incorrect data. Warning: this is COM file. Convert it to EXE format [Y/n]? The file you want to process is not an EXE. Press 'Y' if you want to convert it to EXE format or 'N' to quit. Note that you must select between Yes or No. Pressing the Enter key alone will always select the default answer. HOW DOES WWPACK WORK? First it compresses EXE file; then it adds a small extract code. When you load the packed file into memory, the computer first runs this extract code and then the unpacked program. It's simple, isn't it? HOW DOES WWPACK COMPARE TO THE OTHER COMPRESSORS? Read this short table and compare: (Note: All sizes are in bytes) qp.exe ncmain.exe ndd.exe total size Unpacked 86,842 212,393 383,874 683,109 TINYPROG 53,520 117,632 225,440 396,592 LZEXE 52,983 116,980 224,646 394,609 PKLITE 52,289 115,354 222,995 390,638 DIET 52,694 116,044 220,799 389,527 AVPACK 51,943 113,252 217,622 382,817 AINEXE 51,534 111,350 210,955 373,839 COMPACK 51,052 111,180 210,956 373,188 JAM 51,204 109,556 208,292 369,052 UCEXE 51,053 109,157 205,557 365,767 WWPACK 49,787 106,209 200,293 356,289 To make this comparison we used these popular shareware programs: AINEXE 2.1 by Transas Marine Ltd. AVPACK 1.22 by Andrei Volkov COMPACK 4.5 by W.J. Collis DIET 1.45 by Teddy Matsumoto JAM 2.11 bu Eugen Vasilchenko LZEXE 0.91 by Fabrice Bellard PKLITE 1.50 by PKWARE TINYPROG 3.9 by Tranzoa, Co. UCEXE 2.4 by Ad Infinitum Programs and of course our WWPACK 3.04 with 'P' command. List of files we used to compress: QP.EXE (Quattro pro 4.0), NCMAIN.EXE (Norton Commander 4.0), NDD.EXE (Norton Utility 8.0). Is WWPACK very powerful? Try it and find out! FREQUENTLY ASKED QUESTIONS Q: Can I use WWPACK instead of PKZIP or RAR? A: No. With PKZIP or RAR you can pack all kinds of files but you can't normally use the packed programs. With WWPACK you can compress only EXE files, however, they will still run normally! So the best way is to use two compression programs: first use WWPACK on all EXE files and then use RAR or PKZIP. Q: Does WWPACK work with Stacker and DoubleSpace? A: Sure. We have tested WWPACK with those programs and everything has worked correctly. What's more you will have more space on the stacked drive when you compress all your EXE files. Q: Is it possible to detect a virus in a compressed file? A: No. You can't check if there is a virus under the WWPACK's code. That's why everytime you compress some files you must be sure that they are virus free! Q: Can I run DOS compressed files under Windows 3.1 and Windows 95? A: Sure. You can use Windows or DOS. Q: Why is the compression ratio of 'PR' so poor? A: It isn't poor. This command compresses only relocation tables. Q: What's the relocation table? A: It's a part of an EXE file. It contains special data that are needed to load and then execute program. Q: Why can't some overlaid files be compressed? A: Because when you compress such a file the overlay offset changes and the compressed program may not find an overlay. Q: Can I decompress an EXE file compressed with the 'PP' command? A: Sure, but you must know the password. To decompress the file, enter: WWPACK U FILENAME.EXE Enter a password and wait momentarily. The file will be unpacked! Q: I want to create a program that will show if the EXE file is already compressed. How can I check if it's packed with WWPACK? A: Please see our WWPACK Pascal Support package (\PASCAL directory). With our functions and units you will not only recognize WWPACKed EXE files. We gives you procedures, that will let you scan WWPACKed files for viruses! Please see our examples and CRC source code for complete information about how to use Pascal Support units. HINTS o If you want to compress the file that is already packed with EXEPACK you should first unpack it. You will get a higher compression ratio. o Always make backups (especially when you compress files with overlays). Why? To make WWPACK much safer. o Allow WWPACK to remove Debug_Info. The file without Debug_Info can be up to 10% smaller. Here are some words about us (authors): We are twenty. We are students of the University of Lodz. Piotr studies computers (second year). Rafal is a student of International Economical and Political Relations (second year also). We will improve our program because we like it and it gives us great satisfaction. That's why we are waiting for your suggestions. We would like to thank these people for their suggestions and beta-testing: Thank you! Marcel Barbulescu & Cristi Bradiceanu (The DOP), Peter Hubinsky (Slovak Antivirus Center), George Jereza (The ClipBoard BBS), Karl Loncarek, Piotr Kuciel, Thomas Monkemeier (VGA Software GmbH), Konrad Olejnik, Ralph Roth (ROSE), Grzegorz Zgondek and Romuald Zylla. We would like to thank to all people, who have tried earlier versions of WWPACK, especially to all registered users of WWPACK. WWPACK'S CODE INFORMATION: written in Turbo Pascal, ver. 7.0 (source code: 3690 lines) assembler 8088 (1478 lines) utility package and WWPACK Shell: written in Turbo Pascal 7.0 (6219 lines) Software we used to create WWPACK: Borland Pascal 7.0, Turbo Assembler 3.2, Turbo Debugger 3.2 by Borland International DocGen II, FileTime 0.1, FTC 2.1, Perfidious 1.0 by Piotr Warezak EatMem 1.1c by TifaWARE HackStop 1.11 by Ralph Roth - ROSE RAR archiver 1.55 by Eugene Roshal UPGRADE INFO. Thanks for registering. Are you interested in a new version of our program? Great! How can I get the newest version? Wherever you find a newer downloadable version of WWPACK. Is that all? Sure! The WWPACK.REG file will work with new versions of WWPACK. See the top of this file to find out where WWPACK can be found! All programs mentioned in this documentation are trademarks of their respective owners. They're used for identification purposes only. End of the WWPACK documentation file.