Số 37
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.

[Đầu trang]
Trang chủ
Thư ngỏ
Nội lực "Peter Pan"
Cầu nối Intel Việt Nam
Chuyện trong tuần
Nhóm Frontpage
Cõi người ta
Kim cương doanh nghiệp
Bình luận thị trường
Cõi Mô-bai
Chuyên đề
Bổ ngửa
Nuôi hồn Robot
Túi càn khôn IT
Hồ lô biến
Cảm về Game
Nhật ký e-CHÍP
Bản quyền VASC Orient, Công ty phát triển phần mềm VASC
99 Triệu Việt Vương HN; Tel: (04) 9782235 • email: echip@vasc.com.vn