Schrift
[thread]6624[/thread]

Gelöschte Platte überschrieben: per Perlskript



<< >> 9 Einträge, 1 Seite
Crian
 2005-01-12 17:42
#50718 #50718
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ich hab gerade ein kleines Skript geschrieben, was mir den freien Inhalt eines Laufwerks mit einer erzeugten Datei vollschreibt. Es ist bestimmt nicht das sicherste Verfahren, aber ganz lustig, denn das Programm bedient sich dazu seines eigenen Quellcodes und setzt dessen Elemente zufällig zusammen.

Hier ist das Skript:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl
use strict;
use warnings;


seek DATA, 0, 0;

chomp (my @array = <DATA>);
my @data = grep {length} map {s~;$~~;$_} map {split /\s+/} @array;

print "'$_'\n" for @data;

open O, '>g:/muell.pl' or die $!;
WHILE: while (1) {
   print O ' ' x (3 + 4 * int rand 3) or last WHILE;
   for (0 .. random()) {
       unless (print O ' ', $data[rand @data]) {
           last WHILE;
       }
   }
   print O ";\n" or last WHILE;
}
close O or warn $!;
       

sub random {
   return 3 + int rand 5;
}

_ _DATA_ _


(zwischen den Unterstrichen ist natürlich kein Leerraum)

und hier ein Auszug aus der erzeugten Datei:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
    rand seek open (1) warn  (1);
   O, int /\s+/} while } +;
   #!/usr/bin/perl = (my WHILE: } O sub rand;
       DATA, or DATA, ', sub "'$_'\n";
   rand warnings { my warn;
   (0 O ', 3;
           "'$_'\n" print print @data]) ' or;
           <DATA>) {split for @data]) ' my chomp;
           my seek int 0 WHILE 3 return;
           $! close last 0 (my ..;
       use or ' 3) last;
       O open DATA, $! grep } @data {s~;$~~;$_};
       O, {length} sub @array int 3);
   ' use ', last random;
       @data {split "'$_'\n" or;
           $! or <DATA>) WHILE seek <DATA>) = O;
       { chomp @array or WHILE 3 ";\n";
   DATA, @data grep for die ';
       (my while 3 {length} for @data;
   $! (3 strict (1) last '>g:/muell.pl' { $data[rand;
       { {length} 0, DATA, + O map @data;
   = ', @data]) my @data;
       warn #!/usr/bin/perl WHILE grep WHILE { strict warn;
       map = O (print warnings my while int;
   5 "'$_'\n" warn 0, } last (my {split;
       * use warnings ' 0 + };
       } return .. <DATA>) rand 4 {s~;$~~;$_};
           "'$_'\n" O, ' O { or;
   =  } ' 0, strict;
   or map (1) (1) = + ' };
   {s~;$~~;$_} { seek close;
       + for or {length};
   5 for 5 or print;
   WHILE .. ' for $! '>g:/muell.pl' (my;
       while  WHILE: rand ';
           warn { O O,;
   warnings WHILE: $! = close (0 *;
       warn DATA, = "'$_'\n" print =;
       rand WHILE: O ',;
   sub open ' x O;
       O * open strict *;
       = last print { @data 0 rand print;
       (my use 3 map 3 rand print "'$_'\n";
       grep 3) = last;
       O O WHILE O + my warn @data;
           last for random @array seek;
   } @data O or 0 @array ' 5;


:D
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Relais
 2005-01-12 17:53
#50719 #50719
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
lustig! die sub "random" würde ich allerdings in "almost_constant" umbenennen.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Rambo
 2005-01-12 18:02
#50720 #50720
User since
2003-08-14
803 Artikel
BenutzerIn

user image
warum möchte man die festplatte voll schreiben?
Crian
 2005-01-12 18:09
#50721 #50721
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
In meinem Fall war Platte = USB-Stick. Da ich meinen gebrauchten verschenken möchte wollte ich meine Daten gründlich löschen. Ich weiß, da gibts schon fertige Tools für, aber ich fand die Idee es mit diesem Programm zu machen ganz reizvoll. Es hilft jedenfalls gegen einfaches undelete.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Relais
 2005-01-12 18:17
#50722 #50722
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Rambo,12.01.2005, 17:02]warum möchte man die festplatte voll schreiben?[/quote]
#ob-bofh:

um damit schneller zu sein als die anderen User.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
esskar
 2005-01-12 18:19
#50723 #50723
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wie wäre es mit einem "format usbstick"?
Crian
 2005-01-12 18:22
#50724 #50724
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Dafür gibts unformat. Aber im Prinzip hast Du natürlich Recht. Ich fand es einfach reizvoll, das Skript zu schreiben für diesen Anlass. Es hat keinen Anspruch an "die beste Lösung".

=)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Rambo
 2005-01-12 18:28
#50725 #50725
User since
2003-08-14
803 Artikel
BenutzerIn

user image
ah ok, na das problem habe ich nicht mehr siehe
tread "einfach köstlich" 220 Volt haben alles gelöscht :-)
********gins*******
Crian
 2005-01-12 18:33
#50726 #50726
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
urgs? gleich mal suchen wo der is
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 9 Einträge, 1 Seite



View all threads created 2005-01-12 17:42.