PHỤ LỤC - GIẢI THÍCH
Lưu ý là việc chuyển đổi các giá trị hex, dec và bin nên dùng Calculator cho tiện, trừ bạn hex pairs thì rắc rối hơn (xem ở dưới)
NoDriveTypeAutorun (REG_DWORD)
Giá trị điền vào là hex, có dạng 0x00000000 (0x và 8 kí tự)
Giá trị điền vào xác định loại ổ nào sẽ đc disable chức năng autorun. Giá trị này phụ thuộc vào tổng các giá trị tương ứng của các ổ đĩa đc chọn disable cộng với 128. Ta có các số liệu như sau (decimal):
Mã:
[INDENT]DRIVE_UNKNOWN 1
DRIVE_NO_ROOT_DIR 2
DRIVE_REMOVABLE 4 (đĩa vuông, USB)
DRIVE_FIXED 8 (đĩa cứng)
DRIVE_REMOTE 16 (các ổ đĩa trong network)
DRIVE_CDROM 32 (ổ CD)
DRIVE_RAMDISK 64 [/INDENT]
Nếu disable ổ USB thì ta chọn UNKNOWN (1), REMOVABLE (4) và REMOTE (16):
Mã:
16 + 4 + 1 + 128 = 149 (hex 95)
Nếu disable cả ổ USB và ổ CD thì thêm CDROM (32) vào phép tính trên ta có:
Mã:
32 + 16 + 4 + 1 + 128 = 181 (hex B5)
Nếu disable tất cả cá ổ, cộng cả đám lại có:
Mã:
64 + 32 + 16 + 8 + 4 + 1 + 128 = 255 (hex FF)
NoDriveAutorun (REG_BINARY)
Giá trị điền vào là hex pairs (binary data với hex format), có dạng 00 00 00 00 (4 cặp kí tự)
Giờ máy bạn có ổ C, ổ D, ổ E. Bạn gắn ổ CD vào -> ổ F. Gắn USB vào -> ổ G. Cứ thế cho đến khi có ổ Z.
Ta có 26 chữ số đại diện cho 26 ổ, chữ số cùng bên phải là ổ A:
Mã:
00000000000000000000000000
ZXYWVUTSRQPONMLKJIHGFEDCBA
Nếu giá trị là "1" thì disable, "0" thì enable.
Ví dụ bạn muốn disable autorun ở các ổ A, B, F, G, H, I, J, K thì dãy đó sẽ thành:
Mã:
00000000000000011111100011
ZXYWVUTSRQPONMLKJIHGFEDCBA
Bây giờ bỏ hết mấy số 0 trước đó đi:
Chuyển nó về hex là 7E3 (REG_DWORD là 0x000007E3), để điền vào REG_BINARY thì đảo ngược thứ tự các cặp kí tự lại:
(Lưu ý nếu số các chữ số của hex bị lẻ (XXX) thì thêm số 0 đằng trước (0XXX) rồi mới chuyển thành hex pairs (XX 0X))
Cứ như thế, ví dụ giá trị DWORD là 0x80071a96 thì BINARY là 96 1a 07 80.
Batch file
Sau delete có thêm các giá trị /f /s /q, trong đó:
Mã:
[INDENT]/F: xóa tuốt dù có là read-only (Force)
/S: delete cả trong Subfolders
/Q: delete mà ko hiện bảng prompt (Quiet mode)[/INDENT]
Miễn nhiễm
Bạn không thể copy 1 file autorun.inf vào cùng thư mục chứa folder AUTORUN.INF được, và do đó là folder chứ không phải file nên overwrite cũng không được nốt. Đây là nguyên tắc "miễn nhiễm".
Nếu bạn muốn xóa...
... hay chỉ chép đè ::(
Đề phòng folder AUTORUN.INF bị xóa ta set 1 số attributes cho nó (hidden, read-only....).
Ngoài ra, có 1 số tên trùng với thiết bị mà tên folder không được phép đặt theo, và do đó nếu tồn tại folder với tên đó thì không được phép xóa. Lợi dụng điều này ta bảo vệ folder AUTORUN.INF bằng cách tạo 1 số folder con dạng như vậy, nhưng phải thêm vào "\\.\" ở trước đường dẫn mới tạo được
Đây là bảng tra cứu (nguồn: Microsoft)
Mã:
[INDENT]CON (Keyboard and display)
PRN (System list device, usually a parallel port)
AUX (Auxiliary device, usually a serial port)
CLOCK$ (System real-time clock)
NUL (Bit-bucket device)
A:-Z: (Drive letters)
COM1 (First serial communications port)
LPT1 (First parallel printer port)
LPT2 (Second parallel printer port)
LPT3 (Third parallel printer port)
COM2 (Second serial communications port)
COM3 (Third serial communications port)
COM4 (Fourth serial communications port)[/INDENT]
Với cách bảo vệ như trên thì folder AUTORUN.INF khá là an toàn :cool:
END
EDIT: Tí thì quên, có 1 cách để ngăn Windows khỏi thực thi mọi thông tin từ mọi tập tin autorun.inf là:
Mã:
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@=”@SYS:DoesNotExist”
Nodepad -> Copy -> Paste -> Save as... -> ["tên ngầu"].reg
Công năng của nó bằng tất cả bài post trên cộng lại
Muốn disable nó thì vào HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\ và xóa key Autorun.inf đi I-|