 |
|
HỒ LÔ BIẾN |
|
Chống truy cập dữ
liệu trên đĩa mềm
VÕ MINH TÂN
(intelnew@fptnet.com.vn) |
|
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;
} |
|
Các bạn có thể liên lạc với tôi,
hoặc truy cập vào Website của e-CHÍP để lấy mã file
nguồn (*.cpp), file biên dịch (*.exe) của chương
trình này. |
|
|
|
 |
|
 |