Suggestions for updates


New Member
PostPosted: Fri Jul 18, 2003 9:54 am Post subject: New Eraser Upgrade - to be scheduled
Hi all,

We are hoping to enhance Eraser and commence work on this approx. 2 months from now.
..... you can use this time to email or post up any other suggestions you might have and we will add them to the list.

Remember: We will not be able to implement all suggestions - but we will do out best to implement as many as we can.


Pleeeeeze put in an strong password feature to limit use of the Eraser.

Great program for secure deletion of data but of course the downside risk is accidental or deliberate erasure of data remotely or hands-on by OTHERS. AAAAGH!
Also how about some sort of indication of progress for operations run in eraser - it would be handy. Maybe even a test option for larger operations like overwriting blank areas of drives to give an esitmate of the amount of time to be taken. I just set a Gutman level erasure/ overwrite of 25gb of free space- and have no idea how long - minutes days :shock:
The following features should be added to eraser and eraserd if they are not already implemented:

When wiping "Unused Disk Space", eraser and eraserd should

wipe the free space of the FAT and the directory structure after it has finished with everything else

wipe the cluster tips of clusters occupied by directories

overwrite names of previously deleted directories (not only of previously deleted files)

overwrite names of subdirectories and files which were contained in a previously deleted directory

overwrite sectors marked as bad

Before wiping "Unused Disk Space", eraser and eraserd should free the space occupied by lost clusters.

All theese features should at least be selectable for usual floppy disks (1.44MB diskettes with FAT12 file system, sector size of 512 bytes and cluster size of 512 bytes).

If any feature of eraser or eraserd is not supported in a certain situation, the user should be warned by an appropriate message or by making this feature unselectable.

See also my posting with the subject "Avoid unwished data transfer via removable disks".

Background Execution?

First off, I want to say what a great piece of code Eraser is. You've done an outstanding job and I want to say thanks!

As for a suggestion, I'd like the ability to send the currently running on-demand Eraser task to the background so the Eraser window isn't locked as modal for the entire operation.
Great app. I have a few suggestions.
* Make the Eraser user interface look less like Win 95 and a more like Win XP. Msstyle theme support please.
* Some new icons whouldn't hurt (toolbar and exe). I'm a designer and could create them for you if you want. Send me an email if you're interessted.
* Minor bug: Removing the toolbar (View > Toolbar) doesn't work. Toolbar reappears after application restart.
Thanks for the great utility!

I'd like to see an installation switch to not start the scheduler by default (for silent installs)

The one feature I really wish Eraser had was the ability to make use of path variables. Hardcoding an erase job of C:\Documents and Settings\My User\Local Settings\Temp\ is all well and good for my home machine, but if I need to do the same while away (I carry Eraser on my flash drive) it breaks. The ability to have it erase %USERPROFILE%\Local Settings\Temp instead would just rock :)

Add Standy Function to Program

I like the new shutdown feature in version 5.8 beta but would like to see the ability to go to standby as well. I never shutdown my computer due to the amount of time it requires to boot; I only go to standby. If Eraser could put my system in standby at the completion of the task I feel this would be a good feature
I don't know if it's possible, but could Eraser have a feature to "wipe" system RAM? Simply fill the whole unused with the multiple random patterns? I think it would be a useful and unique feature, "cleaning" system memory of some leftovers already while the computer is running... and I think it would be very easy to implement (Okay, I know next to nothing about coding, but I'd think that if you already have the source with code to do this to magnetic media, then implementing the same techniques to "overwrite" RAM should be quick...?)
An option to protect existing "Restore Points" in XP: this could be useful, as MS is stupid and if the HDD space is low, all restore points are removed, and of course during erasing the disk "runs out" of free space. Some erasers protect the points before wiping free space.
I would like to see a yes to all and a no to all button for files that are locked. That way I could walk away and come back to see that it has been setting there waiting on me to click yes or no.
Major speed improvement for Eraser.


I will offer a rather simple idea to improve eraser that could be added
in a minor upgrade but would greatly enhance its use.

Currently eraser is slow when erasing unused space with the 'cluster tips' option checked. From the messages displayed while erasing the tips and
from a simple source code examination, one can see that eraser is traversing the directory structure depth-first in alphabetic order and then erases the tip of the last cluster of each file. However this process results in a very random pattern of small block disc accesses which besides wasting time is wearing the disc.

I suggest that eraser will not erase the tips immediately but instead gather their addresses (and all info needed for an erasure) in runs of 100 or 1000 clusters where once each run is full it will be sorted by disk address and then erasure will proceed in this sorted order. The actual buffer space for runs could be fixed or even settable by the user.

This upgrade is not that trivial but certainly needs less work than any other proposed upgrade and offers the greatest benefit relative to the work and I guess that there are other places in code (ex. erasing directories) that this speedup procedure could be used.

Looks like a good idea. Do you have the programming skill to implement this in eraser?


I am not knowledgable in C++ (and eraser is written in true C++), I do not have a C++ compiler and I do not have the time now to study the entire program to have at least a good mental view of its working and be sure that all changes are localized and so I cannot undertake this work.

I will expose my idea here and hope that someone else who is versed with C++ and C++ libraries undertakes to do it.

In the EraserDll\FreeSpace.cpp there is a method

static bool wipeClusterTipsRecursive()

which in some place contains the following

bSuccess = context->m_lpmMethod->m_pwfFunction(context);

and later this

if (!bSuccess) {
bCompleted = false;

and I suggest to replace all the above with a new


where in EraseQueued the context object (which I understand contains relevant information for a SINGLE file to be erased) is appended in a queue best implemented using an Array. When the queue fills up we sort the Array using the cluster disk address as key (there must be C++ libraries for this as there are Arrays.sort() and Collections.sort() in Java) and then scan the Array and for each context do the original code

Success = context->m_lpmMethod->m_pwfFunction(context);

if (!bSuccess) {
bCompleted = false;

finally the queue is reset and we return back from EraseQueued().

There is an issue with leftover queue entries when the depth-first search ends and so after the first call to wipeClusterTipsRecursive() there must be a call to a new EraseQueuedAll() which just sorts the queue and erases the context entries (and which could also be the called from EraseQueued() when the queue is full).

How about a DBAN style wipe capability: make it so you can completely wipe an attached USB/FIREWIRE drive. Yes there is the freespace wipe, but I'm talking a wipe that accesses the HD physically not logically from sector 0 to the very last. This suggestion was given by another user in another forum.