Όπως όλοι γνωρίζουμε (κι όσοι δεν γνωρίζουν είναι ευκαιρία να το μάθουν) οτι στο λειτουργικό σύστημα Windows (γενικώς) δεν υπάρχει πραγματική διαγραφή αρχείων. Θα μου πείτε τώρα "
Μα φυσικά! Αφού τα αρχεία πηγαίνουν στον κάδο ανακύκλωσης και μπορείς να τα επαναφέρεις ανά πάσα στιγμή..."
Χμ... σωστά, αλλά δεν μιλώ όμως για αυτήν την διαγραφή. Αυτό που λεω είναι οτι, ακόμα κι αν τα διαγράψεις από τον κάδο ανακύκλωσης, αυτά παραμένουν στον δίσκο μέχρι να ξαναγραφτούν (από πάνω) από κάποιο άλλο αρχείο. Αλλά ακόμα κι αν ξαναγραφτούν από πάνω.... πάλι!! μπορείς να τα επαναφέρεις κάνοντας χρήση ειδικών προγραμμάτων ανάκτησης δεδομένων. Κατά την διαγραφή, αυτό που στην πραγματικότητα διαγράφεται είναι η καταχώρηση (είτε στο
FAT ή είτε στο
NTFS) από τον πίνακα περιεχομένων (να το πω χοντρικά) που έχει κάθε δίσκος για να ξέρει τι αρχεία είναι καταχωρημένα σε αυτόν.
Αυτά καθαυτά τα δεδομένα του διαγραμένου αρχείου παραμένουν αναλοίωτα, αλλά δεν "προστατεύονται" πια από το λειτουργικό σύστημα και μπορεί ανά πάσα στιγμή ο χώρος που καταλαμβάνουν, να δωθεί σε κάποιο άλλο αρχείο.
Εδώ όμως κάπου έρχεται να μας ενοχλήσει (άλλους λίγο, άλλους πολύ) ένα πρόβλημα εμπιστευτικότητας...
Όπως όλοι γνωρίζουμε (κι όσοι δεν γνωρίζουν είναι ευκαιρία να το μάθουν -
το είπαμε αυτό, έλεος!!) η εμπιστευτικότητα (ή κατά το ελληνικότερον
Confidentiality) είναι ένας από τους βασικούς συντελεστές της ασφάλειας. Σημαίνει με λίγα λόγια οτι κάτι το οποίο αφορά εμένα και δεν θέλω να το δει κάποιος άλλος, τότε
δεν θα μπορεί το δει!
Δηστυχώς όμως, τα θέμα με τα διεγραμμένα αρχεία είναι οτι μπορεί να παραβιαστεί η εμπιστευτικότητα τους αν και μόνο αν σβήσω ένα αρχείο το οποίο δεν θα ήθελα να δει κανένας και μετά κάποιος πονηρός αποκτήσει πρόσβαση στο δίσκο μου (με το ζόρι ή... χωρίς) και αρχίσει την... ψαχούλα! Με ειδικά εργαλεία μπορεί να επαναφέρει αρχεία (ακόμα κι αν έχουν ξαναγραφτεί από πάνω ή ακόμα και από προηγούμενα formats!!) τα οποία εγώ τα θεωρώ ιδιωτικά, τα έχω διαγράψει και δεν θέλω να τα δει ούτε να τα επαναφέρει κανείς.
Λύση έχω...?
Ναι έχω!
Υπάρχουν αρκετά προγράμματα που κυκλοφορούν και κάνουν πραγματική διαγραφή των αρχείων, γράφοντας απ΄πάνω δεκάδες φορές άσχετους χαρακτήρες είτε blanks ώστε να μην είναι δυνατή η επαναφορά τους από κάποιο ειδικό εργαλείο. Έχει οριστεί οτι ο μέγιστος αριθμός ξαναγραψίματος που μπορείς να θεωρείσαι ασφαλής, οτι δηλαδή δεν θα μπορέσει κανένα tool να επανακτήσει το αρχείο σου, είναι 35. Δηστυχώς όμως τα περισσότερα προγράμματα που κάνουν πραγματικό deletion έχουν αρκετά μειονεκτήματα:
- Μερικά είναι πολύ αργά.
- Άλλα δεν διαγράφουν ούτε αλλάζουν το όνομα του αρχείου από το FAT/NTFS.
- Άλλα επαναγράφουν το αρχείο μία ή δύο μόνο φορές.
- Άλλα επαναγράφουν το αρχείο μόνο με blanks και δεν σου δίνουν την δυνατότητα να ορίσεις εσύ τον χαρακτήρα που θα χρησιμοποιηθεί στην διαδικασία re-write.
Παίρνοντας την αφορμή αυτό το
post, είπα να μοιραστώ μαζί σας ένα πρόγραμμα που έχω γράψει για πραγματική διαγραφή αρχείων, στο οποίο προσπάθησα να ξεπεράσω τους παραπάνω περιορισμούς. Το πρόγραμμα το έγραψα σε C# σε .net 3.5 κάνοντας χρήση του δωρεάν πακέτου Express της microsoft.
Το βαπτισα
FileKiller. Είναι πλέον σε
GNU general public license, ανοιχτό κώδικα (φυσικά) και κάλιστα μπορείτε να το πάρετε και το χρησιμοποιήσετε ή να το ενισχύσετε με δικά σας χαρακτηριστικά.
Βρίσκεται εδω:
http://sourceforge.net/projects/filekiller/Είχε μάλιστα την τιμή να ελεχθεί, να βραβευτεί και να οριστεί σαν γνήσιο Windows Tool με το
Softpedia 100% Free Award.
Θεωρώ οτι το πρόγραμμα έχει τα εξής χαρακτηριστικά που δεν τα βρίσκεις
συχνά σε αντίστοιχα προγράμματα:
1. Είναι πάρα πολύ γρήγορο.
2. Μπορείς να καθορίσεις πόσα iteration (1 έως 100) θα κάνει το πρόγραμμα
κατά την διαγραφή του αρχείου.
3. Μπορείς να καθορίσεις αν κατά την διαγραφή το αρχείο θα γραφτεί με
κενά ή με τυχαίους χαρακτήρες ή με κάποιον χαρακτήρα επιλεγμένο από τον χρήστη.
4. Μπορείς να επιλέξεις ταυτόχρονα πολλά αρχεία για διαγραφή από διαφορετικά
directories ή δίσκους.
5. Αν κατά την διαγραφή βρεθούν κάποια αρχεία κλειδωμένα ή αρχεία
συστήματος που δεν επιτρέπεται να διαγραφούν, τότε το
πρόγραμμα διαγράφει μόνο αυτά που μπορεί, αφήνοντας τα άλλα στη θέση
τους.
6. Διαγράφει όχι μόνο τα περιεχόμενα ενός αρχείου αλλά αλλοιώνει και το
πραγματικό του όνομα στο FAT/NTFS, κάνοντας την ανάκτηση του (ακόμα και με
ειδικά εργαλεία) θεωρητικά αδύνατη. Εγώ, τουλάχιστον, όσα γνωστά εργαλεία ανάκτησης δοκίμασα, απέτυχαν όλα.
7. Δεν χρειάζεται setup, κατεβάστε απλά το executable και τρέξτε το
(αρκεί να έχετε .net 3.5).
Θα ήταν χαρά μου και τιμή μαζί, να συμμετέχουν κι άλλοι programmers στο μικρό αυτό project-άκι και να διορθώσουν κάποια bugs (αν έχει... που θα έχει δλδ) ή να του προσδώσουν κι άλλα χαρακτηριστικά σεβόμενοι πάντα την
GNU License.
Σας ευχαριστώ
Nothing to declare...