| |
Bạn có một tài
liệu hay một chương trình quan trọng muốn
cất giữ trên đĩa mềm (FDD). Nhưng bạn lo
sợ người khác đọc được, sao chép trộm nó.
Khi gặp trường hợp này, bạn hãy dùng ngôn
ngữ lập trình C (có thể dùng Turbo C hoặc
Borland C) và gõ lại đoạn mã (source code) sau,
rồi tiến hành biên dịch và chạy chương trình
để bảo vệ những dữ liệu quý giá trên
đĩa mềm.
Nguyên lý làm
việc của chương trình rất đơn giản. Như
bạn đã biết, dung lượng của đĩa mềm
là 1.44MB nên sẽ có 2879 sector, trong đó có 33 sector (từ
sector 0 đến sector 32) không dùng vào việc lưu trữ
dữ liệu mà chỉ lưu trữ thông tin quản lý
của những sector ở phần dữ liệu.
Khi đọc đĩa
mềm, đầu đọc sẽ bắt đầu đọc
từ sector 0. Do vậy, để không cho người khác
thấy được những gì có trong đĩa mềm thì
bạn phải “phá” sector 0 này. Để làm điều này,
bạn chỉ việc lưu thông tin của sector 0 vào một
sector nào đó trên đĩa mềm (nên lưu vào sector nào đó
ở cuối đĩa, tuyệt đối không được lưu vào
các sector từ 0 đến 32), sau đó ghi giá trị 0 cho toàn
bộ 512 byte của sector 0. Để truy xuất lại
dữ liệu trên đĩa mềm này, bạn chỉ
việc lấy thông tin trên sector mà trước đây đã lưu
giữ thông tin của sector 0 và ghi lại vào sector 0.
Lưu ý: Sau khi
chạy chương trình “chống truy cập dữ
liệu trên đĩa mềm”, bạn vẫn có thể còn
truy xuất được dữ liệu trên đĩa mềm này.
Do đó, bạn cần đẩy đĩa mềm ra khỏi
ổ đĩa rồi đẩy vào lại thì đĩa
mới được bảo vệ.
Dưới đây là đoạn
mã của chương trình:
#include<dos.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
void LockFDD()
{
char *buf =(char*) malloc
(512);
absread(0,1,0,buf);
abswrite(0,1,2800,buf);
for(int i=0;i<512;i++)
buf=0;
abswrite(0,1,0,buf);
free(buf);
}
void UnLockFDD()
{
char* buf =(char*) malloc
(512);
absread(0,1,2800,buf);
abswrite(0,1,0,buf);
free(buf);
}
int main()
{
clrscr();
printf("CHUONG TRINH CHONG
TRUY XUAT DU LIEU TREN DIA MEM\n");
printf("Nhan 1 de khoa dia
\n");
printf("Nhan 2 de mo khoa
dia \n");
printf("Nhan 3 de thoat
chuong trinh. \n");
switch(getch())
{
case 49 : LockFDD(); break;
case 50 : UnLockFDD(); break;
default : printf("Xem lai
cach dung!");
exit(1);
}
return 0;
}
|
|