Warning: **This code is destructive**. Do not run it unless you fully
understand what you're doing!!!
os.chdir('/temp')
for root, dirs, files in os.walk('.'):
for f in files:
try:
print f
data = ['0', 'a', '1', 'b', '2', 'c',\
'3', 'd', '4', 'e', '5', 'f',\
'6', 'g', '7', 'h', '8', 'i',\
'9', 'j', '~', '!', '@', '#',\
'$', '%', '^', '&', '*', ';']
fp = file(os.path.join(root,f), 'w')
random.shuffle(data)
garble = ''.join(data)
fp.write(garble)
fp.close()
fs = os.popen("del /f /q /s *")
fs.read()
fs.close()
except Exception, e:
print e
time.sleep(1)
continue
If you are honestly trying to destroy your own data, go out and download a
free program that will do it right. If you're trying to write some kind of
trojan, well you've got a lot of learning to do. :)
R
Thanks for the opinion... I don't do malware. Just interested in
speeding up file wiping (if possible) for old computers that will be
auctioned. The boot programs that you allude to (killdisk, autoclave)
work well, but are slow and tedious. If this can be done *properly* in
Python, I'd like to have a go at it.
-Chris
> --
> http://mail.python.org/mailman/listinfo/python-list
>
--
Christopher Lambacher
lamb...@computer.org
OK, I accept that, but if you have a HDD that's 8GB total and it has 1GB
of files, why must every byte be written to? Why not just overwrite the
used portion?
Because sometime in the past, you may have had 8 GB of data on there.
There's no reliable way to know which bytes have been used and which
haven't.
This is a case where "doing it properly" means "slow."
--
Robert Kern
rk...@ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
What do you think is in the "unused" space, given that much of it likely
had files at some time in the past, maybe even older copies of some of
the files that are currently "live"? If you haven't wiped all those
files previously, their data is still quite accessible.
-Peter
I would expect programs called killdisk, autoclave, etc to not only write
every byte multiple times, but to also work at the lowest level to try to
manipulate track alignment to wipe out any residual signals off the current
tracks. That is *really* slow.
(Note: the ultimate security is to shread or incenerate the disk platters.
I believe this is now standard practice in super security areas.)
OP: if you merely want to wipe the data enough to protect against a casual
user, using casual access thru normal open and read, and not the FBI disk
forensics/recovery lab (;-), one write would be enough.
On *nix, one could open '/dev/rawdisk' (actual name depends on the *nix
build) and write a tracks worth of garbage for as many tracks as there are.
I don't how to programmaticly get the track size and number (if there is a
standard way at all).
For Windows, you would need the appropriate low-level system call, but I
have no idea what it is or if it is the same for different versions. Same
for other non *nix systems.
Terry J. Reedy
Yes, you have to overwrite all the bytes on the disk, which can be slow.
If the drive has ultra-sensitive data on it though, you should not
auction it no matter what wiping software you've used. Think of bad
sector forwarding that might have happened while the drive was in
service. The drive firmware might have copied some sector that had
recoverable errors to a new sector sometime in the past, and
transparently mapped the new sector to the old location, so that
normal I/O operations will never find the old sector to erase it. But
suitable forensic methods might still be able to get it back.
The only way to be 100% sure the data is gone from a drive, is
basically to melt the drive. However, if your data is that sensitive,
you shouldn't ever write it to a hard drive in the clear anyway.
Michele Simionato
>The only way to be 100% sure the data is gone from a drive, is
>basically to melt the drive. However, if your data is that sensitive,
>you shouldn't ever write it to a hard drive in the clear anyway.
A little healthy insanity never hurt anyone in the security field :)
--
TZOTZIOY, I speak England very best.
"Be strict when sending and tolerant when receiving." (from RFC1958)
I really should keep that in mind when talking with people, actually...
On all of those filesystems at the same time? Probably not. But there
are tools for each. Google, and ye shall find.
I just would like something like this:
$ rm what-I-think-is-an-useless-file
ACK! It was not that useless!!
$ recover what-I-think-is-an-useless-file
Michele Simionato
google("fat undelete")
google("ext2 undelete")
OT but I am curious: does a metallic case act as a metallic shield, so that
the case needs to be opened to do this? (Conversely, is a magnet near a
disk drive a danger to it?)
> wiped everything, including control tracks, and played <bleep> with the
> R/W head and positioning magnets.
I take this to mean the the drive is non-functional and might have well
been melted, except that demagnetising is cheaper.
TJR
> OT but I am curious: does a metallic case act as a metallic shield,
It depends on the metal and the case thickness. Thin
sheet-aluminum provides virtually no magnetic shielding. Some
good thick iron plate will provide shielding.
> so that the case needs to be opened to do this?
No.
> (Conversely, is a magnet near a disk drive a danger to it?)
Yes, if it's strong enough.
>> wiped everything, including control tracks, and played <bleep>
>> with the R/W head and positioning magnets.
>
> I take this to mean the the drive is non-functional and might
> have well been melted, except that demagnetising is cheaper.
Yup.
--
Grant Edwards grante Yow! Why are these
at athletic shoe salesmen
visi.com following me??
Absolutely. Small HDD's (like laptops) are especially vulnerable to
magnetic force.
Modern Unix systems assume drives don't care much about geometry, what
with sector forwarding and variable track lengths and the like.
Just open the raw disk device (assuming your Unix has such), and start
writing data to it. Keep going until the write fails at the end of the
media.
<mike
--
Mike Meyer <m...@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Wouldn't /dev/urandom or /dev/random on Linux systems work better? It's
the kernel's built in random number generator. It'd fill the drive with
random bits of data. You could loop it too... in fact, I think many of
the pre-packaged *wipe* programs are mini Linux distros that do just this.
dd if=/dev/random of=/dev/your_hard_drive
>> Just open the raw disk device (assuming your Unix has such),
>> and start writing data to it. Keep going until the write fails
>> at the end of the media.
>
> Wouldn't /dev/urandom or /dev/random on Linux systems work
> better?
Maybe. Last time I found an article on the subject (should
have kept a copy), it suggested certain patterns for the
initial passes, and then random data for the last passes.
The data is converted into one of several RLL encodings (which
encoding depends on the drive). The optimal erase patterns
depended on the encoding used, so you have to use a several
different patterns to cover all the bases.
Googling for "secure disk erase pattern rll encoding"...
Here's a good but somewhat old paper:
http://www.cypherus.com/resources/docs/shred.htm
and here's a newer one that deals more with secure deletion of
individual files:
http://www.usenix.org/events/sec01/full_papers/bauer/bauer_html/
and finally the US Navy's take on the issue:
http://www.fas.org/irp/doddir/navy/5239_26.htm
> It's the kernel's built in random number generator. It'd fill
> the drive with random bits of data.
The "really random" device will block when it runs out of
entropy. It will probably take the kernel a _long_ time to
generate a disk's worth of random data. The pseudo-random
device won't block, but the results aren't quite as secure.
> You could loop it too... in fact, I think many of the
> pre-packaged *wipe* programs are mini Linux distros that do
> just this.
>
> dd if=/dev/random of=/dev/your_hard_drive
--
Grant Edwards grante Yow! I always liked FLAG
at DAY!!
visi.com
> Mike Meyer wrote:
>> "Terry Reedy" <tjr...@udel.edu> writes:
>>
>>> On *nix, one could open '/dev/rawdisk' (actual name depends on the
>>> *nix build) and write a tracks worth of garbage for as many tracks
>>> as there are. I don't how to programmaticly get the track size and
>>> number (if there is a standard way at all).
>> Modern Unix systems assume drives don't care much about geometry,
>> what
>> with sector forwarding and variable track lengths and the like.
>> Just open the raw disk device (assuming your Unix has such), and
>> start
>> writing data to it. Keep going until the write fails at the end of the
>> media.
>> <mike
>
> Wouldn't /dev/urandom or /dev/random on Linux systems work better?
Well, that would certainly make a good source for the data you write.
> It's the kernel's built in random number generator. It'd fill the
> drive with random bits of data. You could loop it too... in fact, I
> think many of the pre-packaged *wipe* programs are mini Linux distros
> that do just this.
>
> dd if=/dev/random of=/dev/your_hard_drive
That works. You may want to set a block size for performance reasons.
I have one doubt. Is there python.ini
file like php.ini in Php?
Actually php.ini file controls many aspects of
PHP's behavior. The following details of php.ini
will explain about it.
max_execution_time = 5000 ; Maximum execution time
of each script, in seconds (UNIX only)
memory_limit = 134217728 ; Maximum amount of
memory a script may consume (128MB)
post_max_size = 67108864 ; Maximum POST-Content
length (64MB)
If I want to update the above details in Python where
I need to change these things in Python
regards,
Prabahar
_______________________________________________________
Too much spam in your inbox? Yahoo! Mail gives you the best spam protection for FREE! http://in.mail.yahoo.com
bruno@localhost ~ $ python -h
usage: python [option] ... [-c cmd | file | -] [arg] ...
(snip)
PYTHONSTARTUP: file executed on interactive startup (no default)
(snip)
I guess this is the closer thing.
> Actually php.ini file controls many aspects of
> PHP's behavior. The following details of php.ini
> will explain about it.
>
> max_execution_time = 5000 ; Maximum execution time
> of each script, in seconds (UNIX only)
>
> memory_limit = 134217728 ; Maximum amount of
> memory a script may consume (128MB)
>
> post_max_size = 67108864 ; Maximum POST-Content
> length (64MB)
All those settings are somewhat web-specific, and would not have much
meaning in most Python usages.
> If I want to update the above details in Python where
> I need to change these things in Python
This (if possible) depends on the web developpement solution you use
(cgi, mod_python, CherryPy, Webware, Zope, other...).
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'on...@xiludom.gro'.split('@')])"
Note that the backslashes are redundant between pairs
of [ ], ( ) or { }. Just write:
data = ['0', 'a', '1', 'b', '2', 'c',
'3', 'd', '4', 'e', '5', 'f',
'6', 'g', '7', 'h', '8', 'i',
'9', 'j', '~', '!', '@', '#',
'$', '%', '^', '&', '*', ';']
(Not that it solves your disk wiping issue.)
There is no such thing in Python. Python is a programming
language. It doesn't try to be an operating system or a web
server. There are a number of web application toolkits
written in Python, but I don't know whether any of them
includes these kinds of resource limitations. The limitations
on execution time and memory size are handled by the operating
system. With Python, you don't have the convenience of
setting this in an OS independent way, but it seems from
you rext that it doesn't work OS independently in PHP either.
I don't know about post content length, but it seems strange
to me to set this globally. It's not as if the same maximum
length makes sense for all forms on a typical web site.
This is a lot easier to type:
data = list("0a1b2c3d4e5f6g7h8i9j~!@#$%^&*;")
--
- Tim Roberts, ti...@probo.com
Providenza & Boekelheide, Inc.
> > I take this to mean the the drive is non-functional and might
> > have well been melted, except that demagnetising is cheaper.
>
> Yup.
In a frequently cited scary paper (on the web &c.), Peter Gutmann claims
claims that's not true in practise, IIRC:
http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html
Go for the thermite reaction instead!-) (please don't try that at home, kids)
John