
       Wipe - File Wiping Utility V0.2 Beta for OS/2 

      (c) 1995 Ramin Darakhschani <ramin@ping.at>

           * * *  THIS IS A BETA RELEASE * * *

BETA NOTE:

I have tested this released code and used the debugger enough as to
believe it is reasonably stable. There are lots of checks, on almost
every function call in fact, which makes this release bulky and slow.
Please drop me a note by email stating what you think about Wipe, and
telling me about anything you would like to have in a future release. 

User Feedback will allow me to make this program more suited to your needs.


Synopsis:

This program will overwrite and remove the specified file(s) from your disk 
forever. Each sector of the file(s) will be overwritten with character 0xF6 
and it's bit-reverse (0x09) three times before resetting it's size to zero
bytes and unlinking it.

0xF6 is the character written into sectors by FORMAT when initializing a disk.


Why use this program ?

The normal DEL function of OS/2 will only unlink() the file(s) deleted from
its directory entry, so if you have an appropriate tool it is still possible
to recover the contents of the so deleted file(s), even on HPFS partitions.
It is also possible to recover contents from formatted disks if special hardware
to scan disk and reconstruct magnetic signals is available, which is what some
'law enforcement' agencies or very smart spies would do to get their hands on
your sensitive data.

If you are really paranoid or have reasons to think that the governments thugs,
spies, crooks or other unpleasant existences are after your data, then you 
should consider using this tool.

While I don't guarantee that using this tool will make it absolutely impossible
for somebody with enough resources to recover your data, it will surely make 
their job much harder. If you want your data to be REALLY unrecoverable, think 
about degaussing or burning your disks.

* From the PGP Manual:
  It's personal.  It's private.  And it's no one's business but yours.



Usage : WIPE [[-s] [-n] file [file...]] , where

         When called without arguments you get a short usage help.

  -s     Silent mode. Don't ask 'Are you sure (Y/N) ?' before wiping files. 
  -n     No Cache. This will make Wipe bypass the FileSystem's cache for writing,
         and will make Wipe work slow. 

  file(s)   the file(s) to be processed.

You must enter he flags separately, use "wipe -s -n somefile" as opposed to
"wipe -sn somefile". The second variant will abort in error or just do nothing.



Supported and tested features:

* Longnames, in fact, anything that is syntactically correct.
  Exception: Files CANNOT begin with a dash '-' or slash '/'

* Any number of files on command line (30 tested).

* Any order of the arguments will work.

* File specifiers can be up to 255 characters long each including path and 
  drive names.

* Files can be anywhere, including network drives. I haven't tested files on
  network drives but think it should work as long as you have access rights 
  to the files. Feedback on this issue is welcome.

* Selective usage of the filesystem cache. Wipe V0.2 will, contrary to V0.1, 
  use the filesystem's cache by default. You can now turn off using the cache 
  from the command line in order to write directly to the disk.
  Note that this feature will not turn off the cache's lazywrite mode, but
  only bypass writing to the cache for the files processed. There will be no
  difference for other files or applications running on your system.

* Will rename the files to a dummy name before unlinking them. This will
  IMHO introduce one more source of trouble for data scavengers.

* The processing of each file is now an atomic, uninterruptible, action.
  This means that CTRL-C and other async signals received by the process when
  it is working on a file will be deferred until processing this file has been
  completed. This is to make sure that no file is left in an undefined state,
  from which one could potentially recover data.


Unsupported features (To do / coming soon) :

* Input redirection, meaning you can't take the files from a file list ,
  like in `wipe -s < responsefile'. This is planned for a future release.

* Extended overwrite mode. Overwrite the file 3 times with 8 different patterns
  before deleting.

* Use of wildcards. This will come soon. You can type any number of files on 
  the command line instead.

* Extended Attributes. This release will only process the file itself. 
  EA support is planned for a future release

* Subdirectory recursion is not yet implemented.

* Zapping the f-node of the files should also be done.
  Does anybody know the API calls to work on the filesystem's fnodes ?

* Eliminating the file's presence from the system profiles is a new area
  of concern, and is not beeing done for now.

* Any wishes ?



New/changed/corrected in V0.2 :

* Straightened out some code for better stability. It will not more abort the 
  whole session when unusual situations, like SYS0032, are found on one file. 
  Instead, you will now get an error message and Wipe will skip to the next file

* Corrected some internal errors and rooted out some stupid logic.

* Added some verbosity to allow you to see what is beeing done. In addition to 
  error messages delivered to stderr, you will get current status on each file 
  beeing processed on stdout.

* Selective use of the Filesystem cache. V0.1 used to bypass the cache by default,
  Wipe V0.2 uses the cache by default and allows you to turn cache usage off.

* Files will now be renamed to a dummy name before beeing unlinked.

* Minor corrections and extensions to the documentation (this file).

* The processing of each file is now an atomic, uninterruptible, action.
  In Wipe V0.1 it was possible to press CTRL-C in the middle of wiping
  a file, which could potentially leave undeleted data on the disk.


Bugs:

* The bit patterns used for overwrites almost surely don't correspond to DOD 
  standard. I invented them. Does anybody have an idea where to get the DoD 
  specs for file wiping ?

* The handling of the commandline is still clumsy at best.

* The code is sloppy. I have never learnt to program. I bought the IBM compiler 
  and am having lots of fun learning to do so.

* Did I miss anything ?



License :

You may use Wipe for your personal and private purposes. 
You may NOT use Wipe in a commercial environment or for commercial purposes.
  If you do so, I will ask you to register and pay a small license fee.
You may NOT use Wipe in a military or law enforcement environment or for such 
  purposes. This includes military or law enforcement data processing 
  environments, machines used and/or owned by contractors to them or by 
  individuals working in any form or under any title (even for free) for 
  military or law enforcement agencies.
You may NOT distribute Wipe over MSN (Microsoft Network).
You may NOT bundle Wipe with any product from Microsoft.
You may distribute Wipe as you see fit, as long as the archive and the files
  within remain intact and unaltered, and you don't charge more than five (5,00) 
  US dollars for its distribution. See exceptions noted above.
Wipe is shareware and may be included in shareware CDROM compilations.

You are not allowed to rent, sell, license or reverse-engineer this program.

As stated, you are granted a limited RIGHT TO USE, and nothing else, of Wipe.

All rights on the program and its code, including ownership, remain my own.



Disclaimer and Warning :

Wipe will destroy files in such a manner as to make them unrecoverable.
DO NOT use it if you have any doubts about the data you are destroying.
I do NOT guarantee that this program (Wipe.exe) is useful in anyway or
will help you avoid losses or make profit of any kind. 
I will definitely NOT be held responsible for malicious use of Wipe.

You are getting this for FREE. Say thanks before doing anything else !



Contacting the Author :

COMMENTS & SUGGESTIONS are always welcome.

Write me a note at <ramin@ping.at> if you found a bug or would like 
improvements. You can also send me snailmail to

        Ramin Darakhschani-Mayer
        Schulgasse 63/22
        A-1180 WIEN
        AUSTRIA - EUROPA



REGISTERING

I will not ask you to register this beta release. A future release will 
almost certainly have a small price tag on it to afford the financing
of all the pizza used up in this project.

I would really like to get lots of feedback on this program, and will ask 
you to update your copy as soon as I make a new release available.


Where to find Wipe ?

I will distribute new releases to following sites :

INTERNET:
ftp://ftp.leo.org
ftp://ftp-os2.cdrom.com

FIDONET:
LA BAMBA BBS     2:310/14     (+43 1) 618 6511

New releases will be announced on Usenet to
  alt.2600.moderated
  comp.os.os2.announce
  alt.org.team-os2

What follows is my PGP public key. It's KeyID is 9E6ADB11 and it is signed.
You can get an unsigned version from well-known PGP keyservers on the net.

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.2i

mQCNAi7otD4AAAEEAM9A3BhTJfmaBWnaH/au3uFam2Qbpe3WJ7tpm6dxMWTTzdUY
fYqA/h+SDFKfnBMlvL0U7ZyUSmmZibz5exmGqP2FxB6pquRdEbvJjzJcnUpo7gB3
Oh+sq5DR1GZlWjSKWppcFcVLEOeMEx2+DAtl06JwDQstd8AGV8GN5t2eatsRAAUR
tCJSYW1pbiBEYXJha2hzY2hhbmkgPHJhbWluQHBpbmcuYXQ+iQCVAgUQLzjqv8GN
5t2eatsRAQEINgP7BD62IMW69/aOxS1Q4fKeEuEKCeDDEsPHv2lqW0fBotcawETq
08PbUyQZhX321pjRgcYnotL4QmD3jvUdZZdPeM9/oYlpg8Rt4wZBXNIhuPg4Ew9y
DPLjq4dCRQGhADkvMbM1EwvyDbH78JhHpKsUY4y9e5YRfwFPW+ifOzTcGXQ=
=8/xI
-----END PGP PUBLIC KEY BLOCK-----

