About the UnZixWin Extractor
=========================

(please turn on word wrapping in your text editor to read this)

Table of Contents
===================
  *   Revision History
  *   Introduction
  *   Disclaimer
  *   What you should find in this package
  *   Warning and suggested precautions
  *   Installation
  *   Operation
  *   Caveats and Miscellaneous information
  *   About parsing AVI files
  *   About parsing torrent files
  *   About the source code
  *   Uninstallation
  *   Cleaning the Registry Settings
  *   In case of an infected or compromised distribution
  *   Feedback and bug reports

Revision History
=================
Date		Version		Comments
-----		-------		-----------------------------------
2007-09-09	0.0.9		Added support for new ZIX format.
                                Added support for 3w-encoded AVI files.
				Changed the crappy credits screen to DHTML
2007-05-26      0.0.7		Added support for huge files (2GB and above). Substantial rewrite.
				(The app now requires a type library to compile)
				Added quick check about AVI content (check for RIFF header)
				Added warnings about common hoaxes and viruses.
				Added target disk space check.
				Added credits dialog (accessible from Help/About...)
2007-05-18	0.0.6		Added code to handle folders and unexpected dictionary
				entries. Multiple-file content operation verified.
2007-05-14	0.0.5		Initial release. Largely untested.


Introduction:
=============

Hopefully, you were smart enough to read this first. Please read this document through before using anything inside this distribution.

UnZixWin is a quick-and-dirty utility I put together to extract the contents of ZIX archives. It is highly experimental, but has worked with the few ZIX archives I've encountered to date.

Its purpose of existance is to keep people from having to install the malicious WinZix spyware in order to unpack ZIX files they've mistakenly downloaded from the Internet.

Point of clarification: ZIX archives aren't spyware in and of themselves, and are not harmful to your computer. The software hitherto needed to unpack them (WinZix), however, _is_. If you've been unfortunate enough to receive a ZIX archive, this utility can be used as an alternative in order to unpack it.

Apologies for the ugliness and crudity of this utility; it was a rush job, put together over a week-end. In order to keep it simple and to avoid having to create a setup program, I avoided using any OCX controls or other doodads which would have generated dependencies on other components.
Therefore, the user interface is very simple and also very ugly. Then again, it's free, and worth every penny.

Disclaimer
==========
Be sure to read the end user license agreement ("EULA.TXT") before using this software. It'll contain the usual copperplate language about limitations of liability, et cetera. Basically, I'll absolve myself of any grief you might experience from using the software. It also details what you can and cannot do with it. Boring stuff, but reading these things is always a good idea, so get into the habit right now.


What you should find in this package:
=====================================
Readme.txt		(the document you're reading)
Setup.exe		(installer. Requires the cab file below)
UnZixWin.cab            (cabinet archive containing everything else)
EULA.txt		(End-user licence agreement)
FAQ.htm			(Frequently asked questions)
UnZixWin.exe  		(the utility itself)
Source.zip 		(the full source code to the utility)
contact_info.txt 	(how to get in touch with me)
ZIX_File_Format.htm 	(Document describing the internals of ZIX archives)
ZIX_2_File_Format.htm   (Document describing the new format in circulation)

IMPORTANT
=========
Running any software downloaded from the Internet is always a risky proposition. This utility should not be considered an exception. While I can guarantee that nothing in this package contains any spyware, malware or any kind of virus (at least, none known to me or my Antivirus toolkit), taking my word for it is arguably as unwise as taking the WinZix creators at theirs.

Therefore: be sure to scan this archive and its contents with a properly updated antivirus/antispyware toolkit (You do have one installed, right?) before executing anything inside it.

Further discussion on precautions will be found further down in this document.

Installation
============
As of version 0.0.9, UnZixWin now requires an installation package. This is in order to correctly install and register some components needed for decompression of ZIX 2.0 archives on the system.
A bonus of this is, we don't need to bother with shipping the VB runtimes as a separate package. What you need will be automatically installed.

UnZip the contents of "UnZixWin_0_0_9.zip" into a temporary folder, and then run the setup program.
NOTE! You may be prompted to restart your system once. Don't be alarmed. There's nothing dangerous going on. It's just the SP6 update of MSVBM60.DLL being installed, which is required for the rest of the setup process to run its course.

  Apologies for the crude and ugly installation program. It's what is produced by the Package and Deployment Wizard provided with Visual Studio. In an upcoming release, I plan to personalize this.
  In the installer screen, click the big square icon with the picture of the computer and the opened package to install UnZixWin.


Operation:
==========
The UnZixWin utility is super-simple; there's almost nothing that could possibly confuse anyone but the most inexperienced of computer users. Still, for completeness, here's a quick rundown.

Start the UnZixWin utility, then click "File/Open Archive..." on the menu to select a ZIX archive.

After browsing to and selecting a ZIX archive, a list of contained files (typically only one file) should appear in the main window. Only a filename and a size will appear, since this is pretty much all the information a ZIX archive stores.

When you click a file in the list, the status bar will show some info about it. In case it flashes red, pay attention. You're being warned about a serious threat.
If it flashes pink, you are being warned about other potential problems with the file in question.
Otherwise, the status bar will show the usual background color. I hope it's not red or pink on your
system, or you will miss any warnings.

To extract a contained file, select it from the list, and then click "File/Save As...". You'll get a standard browse dialog which lets you select a target folder and a filename to extract to. If you wish to rename the file in the progress, feel free to do so. The suggested filename is the one stored in the archive.

(NOTE: You must *select* a file (by clicking on it in the list, or simply pressing the Down arrow key) for the "Save As" menu item to become available. This even if there is only one file in the archive. This is the one possible source of confusion which may arise. I could have coded the app to preselect the first item, but there were reasons why this wasn't a viable option.)

A progress dialog will appear, giving you a hint of what's happening and how long it will take. Extracting several hundred megs of data can take a while, so be patient.
If you change your mind, you can hit "Cancel" to abort the extraction.
You'll be asked if you wish to remove the incomplete destination file. I suggest you respond "yes". Otherwise, you'll have to delete the partially extracted file manually.

Unlesss you aborted extraction, the extracted file is ready for your perusal as soon as the progress dialog disappears. The status bar of the main window should contain a message to the effect.

Useful shortcut keys:
  CTRL+O: Open archive
  CTRL+S: Save file

The Options dialog
==================
UnZixWin will remember where you last opened an archive and to where you last extracted it. It will use this information to suggest these folders and save you the hassle of browsing around for it. But unless you tell it to do so, it won't remember between sessions.
Selecting Tools, Options on the menu brings up the Options dialog, where
you can see and change the default source and destination folders.
Checking the "Remember" checkbox will make UnZix remember and reuse your last path choices.
Checking the "Allow saving..." checkbox will let UnZixWin store these choices to the registry and remember them next time.
This is the one and only alteration to your system UnZixWin will make.

Caveats and Miscellaneous information
=====================================
* UnZixWin is an experimental utility; this version is to be considered an alpha or beta test (except that no log files or other trace data will be generated). Problems may occur, a few of which I can predict:
* (Versions prior to 0.0.7)UnZixWin will probably not work with ZIX archives larger than about 2 gigabytes in size. This is due to some limitations inherent in VB's file handling functions. If encouraged to continue development of this utility, this limitation will be first on my fix list; it does, however consitute a biggish code rewrite. Whether or not I can be arsed to do so depends on feedback and necessity; hopefully we won't see many more of these wretched files, and chances are slim that you'll ever encounter such a large ZIX archive.
* UnZixWin will not preserve any (suggested) folder structure embedded in the manifest. You have to extract each file in turn, at which point you can create your own folders in the Save As... dialog.

UnZixWin has no provisions to prevent you from making boneheaded mistakes, such as attempting to extract files to a read-only folder or medium, or extracting to a disk with insufficient space. In that case, what happens is not predictable.
Hopefully, you will receive a somewhat polite error message which hints at the problem. Worst-case scenario is, UnZixWin may crash and leave a partially extracted file behind. If you receive an error message which makes no sense, a condition has arisen which I did not predict, and I'd welcome any feedback.

About parsing AVI files
=======================
  As of version 0.0.9, UnZixWin can now decode AVI files which were encrypted to run only in the spyware-infested 3wPlayer application. These are special AVI files, in which the first part is a short clip with a black screen telling you that "This movie requires the 3wPlayer to run", or words to that effect. The second part is encrypted inside.
  You need only mess with this feature if you have such a file. Also, if you have young children, I suggest you make sure they're nowhere around when you do this. More on that shortly.

To decode such a file, choose File/Open... on the menu (or hit CTRL+O on the keyboard), then select "AVI Files (3w-Encoded)" on the dropdwon in the dialog which appears. Browse to where your AVI file is and select it, then click Open.

After a very brief analysis, you will get a file in the list box which is named
"decrypted_<name of your original file>". UnZixWin prepends the "decrypted_" prefix to distinguish the name of the decoded file once you've extracted it.
  But it isn't actually decoded as yet. You must select this entry in the list, then click File/Save As... on the menu (or CTRL+S on the keyboard). A dialog will appear prompting you for where to save it and under what name. Click Save to begin the decoding process.
  A progress dialog will appear. Be patient while this runs its course.

  Decoding such a file takes somewhat longer than ordinary extraction. The decryption isn't complicated (in fact, it's one of the easiest around), but it adds some computing time to the process.

  Once the progress dialog disappears, you should have the message in the status bar to the effect that the file has been successfully extracted. You should also have a new AVI file where you chose to save it. However, there is no guarantee that the AVI file is actually the movie you wanted to see. In some cases, it's actually a hardcore porno flick. There, aren't you glad your kids were out of the room?
  The scammers who perpetrated the WinZix scam on us are often fond of distributing the wrong file. It's not necessarily a porno, it's just whatever AVI file with a suitable length which they happened to have on hand. If you're very lucky, it happens to be the one you wanted to see.

About parsing torrent files
===========================
Curious and experimentative (is that a real word?) users may discover that you can also open bittorrent files (*.torrent) and see which files they contain information about. This is a remnant of some experimentation I did while developing. A fun thing to try, but totally useless in and of itself.
It should be obvious that you cannot extract files from a torrent file; those are pure metainformation and contain no binary payload. In other words, torrent files are NOT archives, and contain no real files inside. Therefore, you will not be given an option to extract anything from them. Please ignore this feature; removing the option to open torrent files is more of a hassle than explaining why the functionality is there, so I can't be bothered.

However, in releases prior to 0.0.7, this leads to a stupid 'feature', if you open a torrent file, then select a file in the list of contents, UnzixWin will flag the file as 'compressed', which is clearly not the case. The file isn't there at all! The end result, however, is still valid: you won't get the option to extract it.

About the source code:
======================
The archive containing the source code will contain its own readme file. Be sure to read that before loading or tampering with the code. It'll contain some basic information you'll find useful.
Some of the classes and modules are courtesy of Steve McMahon (http://vbaccelerator.com).

Uninstallation
=============
You are best served by uninstalling UnZixWin from the Add/Remove Programs portion of the Control Panel. This will ensure that as much of UnZixWin as possible is removed from the system.
You may be asked if you wish to keep some components which are marked as shared. Respond to that how you like, but there is no harm in leaving them.

Cleaning the Registry Settings
==============================
UnZixWin may have created a couple of entries in your system registry (but only if you specifically asked it do do so by checking the "Allow saving..." checkbox in the options dialog). These pertain to the paths from which you last opened an archive and where you last saved extracted content. This functionality is offered so UnZixWin can automatically suggest these folders when browsing for source and destination folders. Unless you checked the "Allow saving settings to registry" checkbox in the Tools/Options dialog, nothing will be saved to the registry. If you did, then you may want to remove the settings manually using the Registry Editor (RegEdit.exe).

Note that these settings have no effect on the operation of your computer or any software on it; leaving them will cause no harm. But if you wish to do so, here's how:

The registry settings can be found under the following key:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\UnZixWin

Deleting this key and its subkeys should completely remove any trace of the presence of the UnZixWin utility.

The usual warnings about using Regedit.exe and messing with the registry, yada yada, apply. If you understood any of what I just said, you know all that.

If your Antivirus software finds a virus in this distribution
=============================================================
(or if you're suspicious about the contents anyway)

Should your antivirus software report anything fishy, please contact me at once; it might mean that a hacked, cracked or infected version of this utility is floating around on the internet, distributed by devious cronies of WinZix and their spyware. I'll be grateful for any informaiton about the distribution you have and where you obtained it.

Even if your antivirus software gives this distribution a clean bill of health, a certain amount of precaution is still advisable; after all, my antivirus software (AVG Free, v.7.5) found nothing suspicious in the WinZix software distribution (which is known to cause problems for anyone unwise enough to have installed it).

The full source code for the utility is provided, so that anyone equipped with Visual Studio 6.0 (service pack 5 or later) can inspect the source code, weed out anything undesirable, and compile their own executable. This requires a bit of proficiency with VB development, but the option is there for those so inclined.

What if you don't have Visual Studio, or don't know Visual Basic? How can you be certain that this program won't cause you any harm?
Well, you may have to take my word for it, such as it is.

One option left open to you is to wait a while, monitoring the website on which you found this software, and see if anyone reports experiencing ill effects from running it. Also, do a google search to  find any discussion on problems with the utility or arising from the usage of it.
NOTE: Be wary of anyone who claims that the UnZixWin utility is a virus, or spyware, or another ruse by WinZix, et cetera. True, they might just be misguided, or overly suspicious. But they might be cronies of WinZix.
Do a search on them to ensure that they themselves have not produced and distributed ZIX archives (or torrents pointing to them).

From my end, I can only do so much to protect you. On my lame-ass website (details can be found in the contact info file), I intend to put a list of any distributions I make, complete with release date and checksums of the contents. This will take a couple of days to get up, so be patient.
If you have a utility which can produce CRC32 checksums, feel free to run it on the archive containing this distribution, and compare the checksums and sizes to the ones found on my website.
If the checksums match, you'll at least know that you have the archive as I packaged it. Any discrepancy may be cause for concern.
Do not compare with any checksums provided in this distribution; if the distribution has been compromised, so may the checksums have been.

(Is MD5 better than CRC32? Does anyone have an opinion?)

Feedback and bug reports:
=========================

In case you have any questions, or the software doesn't work as stated, or you have suggestions for improvements, or you suspect you have received a compromised distribution, you can contact me using the information found in the file "contact_info.txt". I will do my best to reply, but make no promises as to when and even if I'll do so.

If you have a ZIX archive for which the utility doesn't work, be sure to provide me with info on where you obtained it (or, better yet, provide a torrent file along with your e-mail). I'll check it out and make any necessary fixes as soon as possible.

Please do provide as much information as you can,  including:
 * What archive you were trying to open (filename, and where it came from)
 * What the utility was (or wasn't) doing
 * Full text of any error message you got
 * Whatever else you think will be useful in resolving the problem

If you simply wish to complain about the lameness of the utility, don't bother. I know it's a miseerable-looking thing. At least, suggest how it can be improved.

If you have any questions or comments about the source code, I'm all ears. I'll try to explain the logic, but it might require writing an article.

If you have suspicions about the distribution being compromised, provide me with info on how it reached you. If you downloaded it using a torrent file, so much the better. Mail me the torrent and I'll compare it to my original. In case anything is fishy, it should become obvious then.

In case you got this utility some other way, tell me where I can find it, so I can download and inspect compare it to my own.

Finally, do not intentionally download any more ZIX archives. As of this writing, they are not malicious in and of themselves, but this may come to change. Once you've used this utility, delete all ZIX archives and feel free to ditch this utility. And whatever you do, don't spread ZIX archives!

Good Luck.

Kind regards,

Kenneth Sörling
September 18th, 2007
