WIPE 12.08.1997 (12 August 1997) v2.0 ------------------------------------------------------------------------------ DESCRIPTION: Wipes (overwrites) one or more files, or entire subdirectories if requested. SYNTAX: WIPE file... [/A:[-]AHRS] [/NPQSTXYZ] [/! | /E files... /I files...] [/M[NQWGF] /V"xxx" /Rn /C"command";"off";"on"] [@|%][name] [/4[:dfile] [/[dts-ranges]] file... Specifies one or more files to be deleted. Wildcards are allowed. /A: Attribute select /T Total /C Command off/on /V overwriting Values /M wiping Mode /X removes empty subdirectories /N Nothing /Y answers "Yes" to all prompts /P Prompt /Z Zap: removes also protected files /Q Quiet /E Exclude following files /R Repeat /I Include following files /S Subdirectories /! delete all except following files [@|%][name] Reads parameters from a file or from an environment variable. /4[:dfile] 4DOS: Removes also 4DOS file descriptions from "dfile". /[dts-ranges] Specifies date, time or size range according to which files are chosen. Format is: /[{type}{begin},{end}]. This help summary is available with /? switch. USAGE: WIPE deletes files overwriting them so that they cannot be undeleted. Normal "del" command of DOS does not actually remove files from the disk. They are simply marked as "removed" and their disk space can be used again by some other files. However, until the file is finally written over by some other data, the old data remains on the disk and it can be restored, in the simplest case by using "undelete" command and in some more compli- cated cases by using some disk editor programs. Usually this does not cause any problems. However, if one wants to remove a file that contains sensi- tive or secret information, one has to take care that information will really be erased from the disk. This is what WIPE does: overwrites files so that they cannot be restored. If no other instructions are given, file is written over once by null characters (ascii code 0). Then the length of file is truncated to zero and it is renamed using random name. Renaming is repeated as many times as the wiping and a new random name is used each time. The date of the file is then changed to "null date", January 1 1980. Finally the file is removed from the directory. If subdirectories will be removed (switches /S/X) they will also be renamed using random names. Once the file is wiped it CANNOT BE RESTORED using normal DOS commands! So, be careful when using WIPE. Techically, it's possible to recover data from a wiped file. As the file is wiped, it's overwritten with new data. However, the old magnetic pattern on the disk doesn't disappear completely. Using some special methods and instruments the old data can be made readable under the new one. Overwriting the file several times makes wiping more complete and recovering of the data more difficult. Best results are achieved by repeating the wiping several times and using different wiping patterns each time. See "wiping mode" (/M) and "value" (/V) switches below. FILE SELECTION: Several files can be given on the same command line. If the file name is a directory, with or without a backslach '\', WIPE assumes that all files in the given directory are to be removed. That is, "wipe foo\" is equivalent to "wipe foo\*.*" Extented wildcards can be used in filenames. Extented wildcards are '*', '?' and '[]'. Asterisk '*' matches to any number of arbitrary characters and question mark '?' matches to one arbitrary character. Character list '[xxx]' matches to any of the characters between the brackets. If the first character in brackets is exclamation mark '!', range is negated: it matches to any character not in the brackets. These wildcards can be used in any combination. For example: "f*a" matches to any file name which first letter is 'f' and last one 'a'. "[a-grs]" matches to any letter from 'a' to 'g' and also to 'r' and 's'. "[!ab]*" matches to any file name which name does NOT begin with 'a' or 'b'. Files located in the same directory can also be grouped so that their path needs to be given only once. This is done by giving the path and then the names of the files separeted by semicolons. For example: "wipe test\foo;bar" is equivalent to "wipe test\foo test\bar" WIPE provides also extented parent directory names: each additonal '.' added to the normal parent directory name ".." represents one additional directory level above current directory. Eg. "..." is equivalent to "..\..", "...." to "..\..\.." etc. OPTIONS: Switches can be given in any order (except /E,/I and /D). Several switch characters can also be grouped after one / sign: for example /SPX, /S/P/X and /S /P /X are equivalent forms. /A:[-]AHRS Attributes: Deletes only those files with specified attributes on or off. Colon after /A is obligatory. Attributes are A archive R read-only H hidden S system Preceding the attribute character with hyphen '-' will select the files that do not have that attribute on: /A:-A will match to files that doesn't have archive attribute on. Files must match to all selected attributes: eg. /A:SR will match only to files that have system and read-only attributres on. Bare /A: will match to any attributes. Note: files that have read-only attribute on cannot be deleted, although they are chosen by the /A:R attribute selection. Use switch /Z to remove also read-only files. (See /Z below.) /C{command};{off};{on} Command: Specifies a DOS commands WIPE performs before and after wiping action. This option is intented to be used for turning the disk cache off and on. Disk caches speed up disk actions by creating a memory buffer where they store information read from disk and written to it. If a file is modified sequentially several times it may happen that all these modifications are done in the cache, and the file is finally written to the disk only once. If you want to overwrite a file several times it's advised to turn the disk cache off during the operation. Format is: /C{command};{off};{on} {command} is a common part for both commands. {off} specifies the "off"-parameters used before wiping and {on} specifies the "on"-parameters used after wiping. {off} and {on} -parameters will be appended to the {command}. Any part of the command can be left out but semicolons must be present. For example: /Cc:\windows\smartdrv;c-;c+ runs command "c:\windows\smartdrv c-" before any files are wiped. This turns Smartdrive's disk caching off in the drive C. Command "c:\windows\smartdrv c+" is run after wiping is finished to switch the cache back on. /C;foo;bar runs command "foo" before wiping and command "bar" after it. The common part has been left out. /Mx wiping Mode: Chooses the mode WIPE uses when overwriting files. Alternatives are: N : no wipe, files are only deleted Q : quick wipe, wipes 1 kb and skips next 32 kb's W : normal wipe, default G : government, follows certain U.S. government rules for wiping F : flux reversal, follows Secure File Systems wiping instructions Default mode is /MW. N-mode (/MN) deletes files normally without wiping them. The action is similar than that of "del"-command. Q-mode (/MQ) performs a "quick" wiping: first 1 kb is written over, next 32 kb is skipped and then again 1 kb is written over. This is repeated through the file. The last 1 kb is always wiped. This method is not very safe but it is practical for deleting quickly compressed volumes and archives. Most of data will still be available on the disk but recovering it will be at least bit complicated. W-mode (/MW or /M) performs normal wiping using the overwriting strings specified by /V-switch and repeats wiping the number of times specified by /R-switch. G-mode (/MG) wipes a file seven times in total. First the wiping is done by writing all 1's, then all 0's, repeating this three times. Then writing is done once by using value decimal 246. F-mode (/MF) uses the method of Secure File Systems to wipe a file. This mode attempt to erase the magnetic pattern on the disk as well as possible by doing so called "flux reversals". For further information see "Secure Deletion of Data from Magnetic and Solid- State Memory", Peter Gutmann 1996, http://www.cs.auckland.ac.nz/~pgut001/secure_del.html. Wiping is done by using the following sequence of 35 consecutive writes to erase data: (overwriting values are given in hexadesimals) 1. Random 2. Random 3. Random 4. Random 5. 0x55 6. 0xAA 7. 0x92 0x49 0x24 8. 0x49 0x24 0x92 9. 0x24 0x92 0x49 10. 0x00 11. 0x11 12. 0x22 13. 0x33 14. 0x44 15. 0x55 16. 0x66 17. 0x77 18. 0x88 19. 0x99 20. 0xAA 21. 0xBB 22. 0xCC 23. 0xDD 24. 0xEE 25. 0xFF 26. 0x92 0x49 0x24 27. 0x49 0x24 0x92 28. 0x24 0x92 0x49 29. 0x6D 0xB6 0xDB 30. 0xB6 0xDB 0x6D 31. 0xDB 0x6D 0xB6 32. Random 33. Random 34. Random 35. Random If several modes are given on the same command line, the one given last remains valid. Both G- and F-modes override /V-switch. They can also be reproduced by using /V-switch to specify the above overwriting sequences. It is possible to change these hardcoded wiping values, see "Modifying program" section below. /N Nothing: Does everything except actually deleting files. This can be used for testing purposes to see what WIPE's result would be. /P Prompt: Prompts for confirmation before deleting each file. If both /P and /Y are turned on, the one given last remains valid. /Q Quiet: Deletes files quietly; does not print the names of deleted files nor the number of deleted files. /Rn Repeat: Repeats all wiping sequences n times. Default is 1. /S Subdirectories: Deletes files in a chosen directory and all of its subdirectories. /T Total: Otherwise like /Q but prints the total number of deleted files at the end. /V Values: Defines the overwriting value strings. Each string can contain several characters and strings must be separated with commas. For example "/Vabc,defg" tells WIPE to overwrite file twice, first using string "abc" and then using "defg". /R (repeat) switch is not needed. "/Vabc,abc" does actually the same thing as "/Vabc /R2", though the latter should be theoretically faster: the overwriting buffer will be initialized only once. If several /V switches are given, strings they specify will be joined together. Thus, "/Vfoo /Vbar" is equivalent to "/Vfoobar" The maximum length of value string is 500 characters. Since the maximum length of the command line is much shorter and the maximum length of the line read from a file or from an environment variable is 250 characters, 500 character line must be given at least in two pieces. Some special characters can be given using escape character '\': \a - bell (ascii 07) \b - backspace (ascii 08) \e - escape (ascii 27) \f - formfeed (ascii 12) \n - newline (ascii 10) \r - return (ascii 13) \t - tab (ascii 09) \v - verticaltab (ascii 11) Characters can also be given in ascii-form. Escape character '\' followed by a number specifies the ascii code of a character. Numbers are considered desimal numbers unless they are preceded by "0x", in which case they are hexadecimals. For example comma ',' cannot be given directly since it's considered as a separator between strings. It must be given as \44 or \0x2c. (Several other programs, especially in Unix environment, use octal base system. However, people who have ten fingers usually find decimal system more convenient.) Desimal values greater than 255 and hexadesimal values greater that 0xff are random: WIPE replaces these characters by random ones. Default value is null (ascii code 0). /X Removes also empty subdirectories. /Y Yes: Answers "yes" to all prompts. Use with CAUTION. See /P. /Z Zap: Deletes also hidden and read-only files. See /A:. /_ Lowercase: Print file names using lower case letters. Actually this changes the case to the opposite: two /_ -switches will cancel each others. Program can be patched permanently to use lower case letters, see "Modifying program" section below. /D Delete: The following files will be deleted normally. Of course this is the default option. The purpose of this switch is to turn off the effect of /E and /I switches. (See /E and /I below.) /E Exclude: The following files will be excluded from deleting. For example, "wipe *.txt /e notes.txt coins.txt" deletes all the *.txt files in the current directory, except files "notes.txt" and "coins.txt". "wipe *.* /e *.exe" deletes all the files in current directory, except executables. If subdirectories are included (/S is given) and if a file name is given without a path, it will be excluded in every directory. If the file name contains drive and/or path it will be excluded only in the specified drive and/or directory. Exclusion is done by hiding files temporarily. Therefore this method doesn't work if also hidden files are deleted, that is, when /A:H and /Z switches are turned on. In this case also excluded files will be deleted. DON'T USE switches /A:H, /Z and /E simultaneously. /I Include: The following files will be included for deleting, that is, they are deleted anyway regardless of /E switch. Same rules about drive and path that apply for /E-switch apply also for /I. Examples: wipe *.txt /e d*.* /i dummy.* Deletes all *.txt files in current directory, except those which names begin with 'd'. File dummy.txt will be deleted anyway. wipe /s *.bak /e foo.bak .\bar.bak Deletes all *.bak files in current directory and in its sub- directories. File foo.bak will be excluded in every directory, file bar.bak will be excluded in current directory only. Alternative way to exclude and include files: Files can also be excluded by putting the file name in square brackets [ ]. There must be spaces on both sides of these brackets. Files can be included by putting the name in square brackets second time. Brackets and switches /E and /I are compatible. For example the following forms are equivalent: wipe *.* /E *.txt *.doc /I dummy.* wipe *.* [ *.txt *.doc [ dummy.* ] ] wipe *.* /E *.txt *.doc [ dummy.* wipe *.* [ *.txt *.doc /I dummy.* Closing brackets are not necessary if no other file names follow. /! Except: Deletes ALL FILES EXCEPT those mentioned in the command line. This is actually shortcut for "*.* /e": "wipe /! *.zip" is equivalent to "wipe *.* /e *.zip", except that the switch /! can be located anywhere in the command line: "wipe /! *.zip" does the same thing as "wipe *.zip /!". N O BE CAREFUL when using this switch: IT WILL CHANGE THE EFFECT OF T WIPE TO THE OPPOSITE. Make sure that you know what the results E will be before using this. If in doubt use "do nothing"-switch /N ! to find it out. Excluded files can be included again using /I -switch. For example wipe /! *.txt /i foo.txt will delete all files except *.txt -files. foo.txt will be deleted anyway. @infile or @@infile Reads parameters from a file "infile". If "infile" is omitted, standard input is used. If only one '@'-character is used, the file is sought in current working directory or relative to it, if the file has a relative path. If there are two '@'-characters, the file is sought in WIPE's directory or relative to it. The option "@@" can be used to preset several parameters and switches. For example if one wants to delete all *.bak files that are older that a week in a directory C:\WORK and in its subdirec- tories, one can write a file, say, "cleanup", which contains a line: "c:\work\*.bak /s /[d-7000,-7]". If the file "cleanup" is in WIPE's directory, one can now do the work by typing "wipe @@cleanup". The parameters that are read from the file will be placed in the place of "@infile" on the command line. The maximum lenght of lines in the file is 250 characters. Files can be nested and even looped: one can have a file "ONE", which contains a line "@two", a file "TWO", which has a line "@three", and so on. WIPE will subsequentially read files until it runs out of file handles. The maximum number of handles is defined on CONFIG.SYS's line FILES=nn. %variable Reads parameters from an environment variable "variable". If the variable name is omitted, the default variable "WIPE" is used. As well as "@@", this can be used to preset some frequently used parameter combinations. This option is irrelevant in 4DOS since the shell expands environ- ment variables automatically on the command line. Moreover, bare "%" option does not work in 4DOS. /4[:dfile] 4DOS: Removes also 4DOS file description from "dfile". [4DOS is a registrated trademark of JP Software Inc.] 4DOS command shell allows user to define file descriptions that appear for example in dir-lists. 4DOS stores these descriptions in (usually) hidden files which by default are named as "descript.ion". If /4 switch is turned on, these descriptions are also removed. Default description filename is "descript.ion". This will be used if no other name is given. If no name is given but the switch is followed by colon ':', file name is null. In this case descriptions are not removed. This option can be used to turn 4DOS mode tempora- rily off, for example in the case where /4 -switch is turned on in an alias. Description file is also wiped over. Techically, descriptions are read into memory and the obsolete descriptions are removed. Then the description file is overwritten using the same method as for any other files and finally the new buffer is written back onto the disk. /[dts-ranges] Specifies date, time or size range according to which directories are chosen. Format is: /[{type}{begin},{end}]. {type} specifies the type of the range. Possible types are: D = date, T = time, S = size. {begin} and {end} are the beginning and the end of the ranges. In some cases one of them can be left out. The order of the beginning and the end values is irrelevant: smaller is always the beginning and larger the end value. Only one range of each kind can be used at a time. If several different kind of ranges are given, a file must match all of them. Date: Date format is the normal country specific format. European format dd.mm.yyyy is used below for examples. By default the beginning of the range is 1.1.1980 and the end is current date. These values will be used correspondingly, if one of the limits is omitted. For example /[d12.2.1994,23.3.1996] matches to those files modified between dates 12 February 1994 and 23 March 1996 and /[d,27.04.1996] matches to files older that 27 April 1996. If only one date is given without a comma, it is assumed to be the beginning of the range: /[d27.04.1996] means /[d27.04.1996,]. If the year is neglegted, the current one will be used. It can also be given with two digits. Values 80-99 stand for 1980-1999 and 00-79 for 2000-2079. WARNING: Validity of dates is not checked very thoroughly. Day must be within range 1-31, month within range 1-12. It's possible to give dates such as 31.02.1996, and so on. Time: Time is given similarly to date: for example /[t10:15,18:50] by using 24-hour format or /[t10:15a,6:50p] using 12-hour format (actually 'a' in "am" can be omitted). Default range is 0:00-23:59. Seconds are not used. Time can also be added into date range-switch by using '@' sign: for example /[d12.2.1994@10:15,23.3.1996@18:50]. This is equivalent to /[d12.2.1994,23.3.1996] /[t10:15,18:50]. Chosen files must match to both of these ranges. Size: Sizes are given in bytes. Default values are 0 and 4 294 967 295 (maximum unsigned long integer of DOS). As it is unconvenient to write long numbers, units 'k', 'K', 'm' and 'M' can be used. Their values are: k = 10^3 = 1000 thousand bytes K = 2^10 = 1024 kilobytes m = 10^6 = 1000000 million bytes M = 2^20 = 1048576 megabytes Offsets: Ranges can also be given by using offsets. Offset is a number preceded by + or - sign. This number will be added to or substracted from the other, absolute, value. For example /[d10.4.96,+7] is equivalent to /[d10.4.96,17.4.96], /[t-60,] means last hour and /[d-7,] means last week. If the other limit is omitted and offset is used in date and time ranges, the current date and time will be used as the reference point. That is, /[d,-7] and /[d-7,] both mean last week. In date ranges offset values are days, in time ranges they are minutes and in size ranges, bytes. Naturally the units above can be used with size range offsets. Time offsets cannot be used if time range is given with date, i.e. in time which is given as /[d...@...]. Use /[t...] if you want to use an offset value. Time offset cannot be extented to another day: /[t23:50,+20] is equivalent to /[t23:50,23:59]. Date offsets can be extented to another month or year. Leap years are handled correctly. COMMENTS: Excluding files NOTE: Exclusion (/E) is done by hiding files temporarily. Therefore this method doesn't work if also hidden files are deleted, that is when /A:H and /Z switches are turned on. In this case also excluded files will be deleted. Don't use switches /A:H, /Z and /E simultaneously. (This is an important point and worth mentioning twice.) About /Y (yes) switch Yes-switch /Y can also be dangerous if used in a wrong place. For example "WIPE C:\*.* /S/X/Y" will remove all directories and files on your hard disk without even warning you. Spaces on the command line If you want to include spaces into the options from the command line (eg. want to give command "smartdrv c-" or use wiping string "a b c"), the whole parameter, including the switch character must be quoted. This is because of the way DOS handles the quoted strings: quotes are stripped and the spaces between them are not taken as word separators, but the quotes themself are. For example: /C"smartdrv c-" translates to two strings, "/C" and "smartdrv c-" The correct method is to give "/Csmartdrv c-" or "/Va b c" This applies only when the parameters are read from the command line. If they are read from a file or from an environment variable, the quotes are not taken as word separators. Thus they can be used quite freely: "/Va b c" is equivalent to /V"a b c" and to /Va" "b" "c. Disk compression programs This program will not work properly with disk compression programs. Those programs will compress all the files saved on a disk, including the overwriting file which WIPE creates. Because the overwriting file contains the same string repeated over and over, it will be compressed quite a lot. In fact it will usually be compressed more than any other file and therefore it will not completely overwrite the file which was intented. One method to try to circumvent this problem is to use random wiping pattern. Results are not guaranteed, however. Technical details WIPE is able to handle ca 1700 separate file name strings. Naturally these cannot be read from the command line since its length is very limited, but from a file with @-option. Separate file name string means the string which specifies file or files to be deleted: e.g. "*.*" is a single string. Thus you can have a file including about 1700 file names and wipe them all using command "wipe @file". 4DOS compatibility WIPE is almost completely 4DOS compatible with its extented wildcards, filename grouping, extented parent directory support and range options. "Almost", because short before this program was released, JP Software published a new version of 4DOS, v6.0. It's internal commands have some new properties, including a range option /[! file ] to exclude files from operations. This option cause some incompatibility with DELEN. It may be included in the future versions, depending on it's necessity and public request. EXAMPLES: wipe foo.txt bar.txt -- Wipes files foo.txt and bar.txt. wipe mydir /sx -- Wipes the directory "mydir" with all its subdirectories and files. wipe h* /[d-7,] -- Wipes all the files which name begin with 'H' and which are less than a week old. wipe h* /[d-7000,-30] -- Wipes all the files which name begin with 'H' and which are older than a month. -7000 is an overkill: there hasn't been 7000 days since the "zero day" of DOS, January 1st 1980. wipe *.txt /v\256,\0\1 -- Wipes all the text files twice, first using random overwriting values and then using ascii values 0 and 1 Assume that file "delthis.txt" contains the following lines: test1 test2 dummy /q wipe @delthis.txt /p -- Reads parameters from the file "delthis.txt". This is equivalent to: wipe test1 test2 dummy /q /p Assume that file "secure" contains the following lines: /V\1,\0,\1,\0,\1,\0,\100,\100 /P and that it's located in the same directory as WIPE itself. wipe @@secure *.txt -- Wipes all the text files in the current directory. Overwriting is done eight times, first by using values 1,0,1,0,1,0 and then twice by using random values. MODIFYING THE PROGRAM It's possible to change certain options of the program, to patch it. "Patching" means writing data directly over the program on the disk, thus changing it's action. This requires some kind of debugger or disk editor program and some knowledge about patching and/or programming. It's also very important you know what you're doing when modifying the program: mistakes can change the behaviour of the program in an unpredictable manner. File names in lower case letters: To use lower case letters, change the value of offset 3387h from 01 to 02. Any other value is indefinite. Changing hardcoded wiping values of /MG and /MF switches: These strings are stored in the same form as they would be inserted from the command line: government wipe -string is given in decimal form "\1,\0,\1,\0,\1,\0,\246" and flux reversal in hexadecimal form "\0x100,\0x100,\0x100,\0x100,\0x55,\0xAA,...,\0x100", exactly as they appear in this manual. (\0x100 is a random character) Lenghts and offsets of these strings are (including the terminating null): Government wipe: length 23 bytes, offset AAC5h - AADBh Flux reversal: lenght 307 bytes, offset A991h - AAC4h Strings must be null terminating. They can naturally be shorter than the original strings but not longer. ABOUT WARNING MESSAGES AND PROMPTS: Warning messages and prompts, and when they occur: D:\PATH\*.* : Are you sure (Y/N)? About to wipe all the files in directory. Possible answers are "yes" and "no". Delete D:\XXX (Y/N/R/Q)? -- Prompt with /P. Possible answers are "yes", "no", "quit" and "remainder". The meaning of "yes" and "no" should be obvious. "Quit" will quit the whole program and "remainder" will delete all the remaining files without prompting first. Invalid switch - /X -- Switch was invalid. Invalid range /[...] -- Range type was invalid. Invalid XXX range /[...] -- XXX range selection was invalid. Invalid drive specification: X: -- Invalid drive. File not found D:\XXX -- Cannot find file D:\XXX Access denied D:\XXX -- Trying to remove a directory whose read-only or system attribute is set on or which contains a file with such attributes. Cannot delete file D:\XXX -- For some reason file could not be deleted. Not enough memory to handle file descriptions. Please remove all memory resident programs and try again. -- Unable to allocate memory for file descriptions. Cannot open file "filename" -- Cannot open file for overwriting. Cannot open file "infile" -- Cannot open input file "infile" (with a parameter @infile). Invalid path "infile" -- The path of "infile" is invalid (with a parameter @infile). Cannot read environment variable "variable" -- Unknown environment variable (with a parameter %variable) Cannot execute command "command": Continue anyway (Y/N)? -- Command could not be executed. Appears with /C -switch, usually because command is not found or its path is invalid. Answering 'N' quits the program. 'Y' continues program without running the command first. WIPE: Memory allocation error. -- Unable to allocate memory for directory names. WIPE: Disk error -- Cannot read free disk space. Probably something fatal happened. WIPE: Cannot read country information. -- Cannot get country specific infomation for date ranges. Probably something fatal happened. EXIT-CODES: These exit-codes can be tested with DOS's errorlevel code. 0 = Directory was succesfully removed or help instructions were requested. 1 = Illegal switch or illegal date, time or size range. 2 = Cannot find file, invalid directory, directory is protected, etc. 3 = User break. User answered "no" to "Are you sure"-prompt. 4 = Memory allocation error. 5 = Fatal error. Cannot read free disk space or country specific information. Something strange happened, check your system. HISTORY: Revision history. 16.05.1993 v1.0 First version, not published. 26.11.1993 v1.1 Added 4DOS support. Date format changed to county specific one. Exit codes changed. Several bug fixes. 12.08.1997 v2.0 Program was completely rewritten. Directory handling has been improved. Added extented wildcard support, extented parent directory support and filename grouping. Added possibility to read parameters from files and from environment variables. Added possibility to exclude and then again include files, or to completely reverse the action: delete everything except files specified on the command line. Added range options. Program was made more verbose. Exit codes changed. This program was made along with a delete program "DELEN v1.02", which is enhanced version of a normal delete command. These programs are almost identical except the wiping options. DELEN v1.02 is found in the same ftp-sites as WIPE, file name is delen102.zip. COPYRIGHTS: 4DOS is a registrated trademark of JP Software Inc. Copyright 1988-1997 Rex Conn & JP Software Inc. Secure File System, Copyright Peter C.Gutmann 1993-1997 ACKNOWLEDGEMENTS: Thanks to all those users who have send comments and suggestions, especially to Jori Special thanks to Peter Gutmann for his improvement ideas and for flux reversal wiping method. ABOUT THE PROGRAM: This program may be freely copied and distributed as long as no profit is made. You are encouraged to send all comments, suggestions and bug reports to the author. Written by: Vesa Kolhinen 12 August 1997, Jyvaskyla, Finland