Phương pháp kiểm tra
Panda dường như không tiết lộ cơ chế chính xác của "vắc-xin" của mình, điều này có thể hiểu được, vì về cơ bản, nó bảo mật thông qua che khuất . Nếu bạn biết nó hoạt động như thế nào, bạn có thể đảo ngược tác dụng và "vắc-xin" trở nên vô dụng.
Tôi đã tải xuống và cài đặt Vaccine USB Panda và "tiêm phòng" ổ đĩa flash của mình, đổ phân vùng ổ đĩa flash bằng dd cho các cửa sổ bằng cách sử dụng các lệnh
dd --list
dd if=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} of=C:\vaccinated.img
nơi xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
được GUID được cung cấp bởi lệnh đầu tiên, mở c:\vaccinated.img
trong một trình soạn thảo hex và tìm kiếm AUTORUN
.
Vắc-xin USB làm gì
Mục nhập để AUTORUN.INF
bắt đầu với mười hai byte sau:
41 55 54 4F 52 55 4E 20 49 4E 46 42
Mười một byte đầu tiên chỉ là tên tệp 8.3 được đệm không gian :AUTORUN INF
Byte cuối cùng chỉ định các thuộc tính của tệp và biểu diễn nhị phân của nó là:
01000010
Theo Đặc tả hệ thống tệp Microsoft EFI FAT32 , byte cuối cùng này là trường bit có dạng sau:
XYADVSHR
nơi các bit A
, D
, V
, S
, H
và R
là 1
khi và chỉ khi các tập tin được lưu trữ, thư mục, khối lượng ID 1 , một tập tin hệ thống, ẩn hoặc read-only. AUTORUN.INF
được ẩn, vì H
được đặt thành 1
.
Các bit X
và Y
được dành riêng và nên được cả hai 0
. Tuy nhiên, USB Vaccine đặt Y
thành 1
.
Thông số kỹ thuật nói gì
Hai bit trên của byte thuộc tính được dành riêng và phải luôn được đặt thành 0 khi một tệp được tạo và không bao giờ được sửa đổi hoặc xem xét sau đó.
Hơn nữa, nó khuyến nghị xác nhận nội dung thư mục:
Các hướng dẫn này được cung cấp để các tiện ích bảo trì đĩa có thể xác minh các mục nhập thư mục riêng lẻ về 'tính chính xác' trong khi vẫn duy trì khả năng tương thích với các cải tiến trong tương lai đối với cấu trúc thư mục.
KHÔNG nhìn vào nội dung của các trường nhập thư mục được đánh dấu dành riêng và cho rằng, nếu chúng là bất kỳ giá trị nào khác 0, thì chúng là "xấu".
KHÔNG đặt lại nội dung của các trường mục nhập thư mục được đánh dấu dành riêng cho 0 khi chúng chứa các giá trị khác không (theo giả định rằng chúng là "xấu"). Các trường mục nhập thư mục được chỉ định dành riêng , thay vì phải bằng không . Chúng nên được bỏ qua bởi ứng dụng của bạn. Các trường này được dành cho các phần mở rộng trong tương lai của hệ thống tệp. Bằng cách bỏ qua chúng, một tiện ích có thể tiếp tục chạy trên các phiên bản tương lai của hệ điều hành.
Điều gì thực sự xảy ra
CHKDSK chắc chắn tuân theo đặc tả và bỏ qua AUTORUN.INF
mục mà trình điều khiển FAT32 không hiểu, nhưng bản thân Windows dường như không tuân thủ yêu cầu của đặc tả để không bao giờ nhìn lại các bit dành riêng : Bất kỳ loại quyền truy cập nào (ngoài việc liệt kê tệp và các thuộc tính của nó) bị từ chối.
Ví dụ: lệnh
DIR /A /Q
nói rằng chủ sở hữu của AUTORUN.INF
là ...
. Vì FAT32 không hỗ trợ quyền sở hữu tập tin, nên nó nêu rõ \All
.
Lý do cho hành vi không mong muốn này là, theo mục FAT32 - Wikipedia # Directory , Windows sử dụng bit Y
bên trong để báo hiệu tên thiết bị ký tự (CON, PRN, AUX, CLOCK $, NUL, LPT1, COM1, v.v.) và nó không nên có mặt trên các thiết bị lưu trữ. 2
Nói một cách dễ hiểu, Vắc-xin USB lừa Windows giả định rằng đó AUTORUN.INF
không phải là một tập tin thực sự, mà là một thiết bị mà nó không thể đọc hoặc ghi vào.
Cách xóa tập tin
Nếu bạn có quyền truy cập trực tiếp vào hệ thống tệp, nó đủ để đặt Y
thành 0
(thay đổi byte 42
thành 02
) để làm cho tệp có thể xóa lại. Bạn cũng có thể đặt byte đầu tiên của mục nhập thư mục E5
, đánh dấu trực tiếp tệp là đã xóa. 3
Một lựa chọn khác là sử dụng một trình điều khiển khác. Ubuntu 12.04, ví dụ, có thể xóa tệp mà không gặp vấn đề gì. Trên thực tế, nó tự động "sửa" mục nhập thư mục khi đọc nó. 4
1 Thuộc tính này được sử dụng cho, ví dụ: nhãn âm lượng hoặc thư mục Thông tin âm lượng hệ thống .
2 Chắc chắn, cài đặt X
thành 1
dường như không có bất kỳ ảnh hưởng.
3 Tôi đã xác minh điều này bằng cách thay đổi các byte tương ứng C:\vaccinated.img
bằng trình soạn thảo hex và ghi hình ảnh đã sửa đổi vào ổ flash bằng lệnh sau:
dd if=C:\vaccinated.img of=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
4 Trong khi một sai lệch trắng trợn so với đặc điểm kỹ thuật, nó dường như được nghĩ ra. Ubuntu X
không còn nguyên vẹn nếu được đặt thành 1
vì nó không gây hại. Việc cài đặt Y
bit 1
có thể dễ dàng bị lạm dụng bởi một ứng dụng độc hại, ví dụ, bằng cách tạo một tệp không thể xóa được, chiếm toàn bộ dung lượng trống của ổ đĩa.