Làm cách nào để tạo một tệp không thể xóa trên ổ USB?


15

Ai đó đã sử dụng ổ USB của tôi và khi trả lại cho tôi, tôi thấy một thứ autorun.infkhông thể xóa được. Tôi đã thử thay đổi thuộc tính tệp chỉ là H (thậm chí không được đặt là tệp hệ thống) nhưng nó vẫn tiếp tục nói Access Denied.

USB được đặt trên FAT32, khi hỏi bạn tôi, anh ta nói với tôi rằng anh ta sử dụng Vaccine USB Panda

Làm thế nào để họ làm điều này? Tôi đang cố gắng sử dụng một số trình soạn thảo Disk sector nhưng không biết họ sẽ thay đổi tập tin hex nào để tạo loại tập tin này và làm cho nó có thể xóa lại được. Định dạng ổ đĩa sẽ loại bỏ nó, nhưng tôi tò mò về cách có thể đặt loại thuộc tính tệp đó.


Tôi đã tìm thấy một công cụ khác có cùng liên kết Bộ giải mã USB BitDefender
MegaNairda

Bạn đã kiểm tra các quyền trên tập tin?
Moab

@Moab Hệ thống tập tin trên USB là FAT32.
MegaNairda

Trong Windows 7 trở lên, autorun.inf được tạo bởi Panda USB Vaccine sẽ được hiển thị với các thuộc tính tệp "HX", trong khi "H" có nghĩa là ẩn và "X" có nghĩa là FILE_ATTRIBUTE_DEVICE dành riêng.
Explorer09

Câu trả lời:


16

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.imgtrong 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.INFbắ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, HR1khi 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 XYđược dành riêng và nên được cả hai 0. Tuy nhiên, USB Vaccine đặt Ythà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.

  1. 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".

  2. 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.INFmụ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.... 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 Ybê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.INFkhô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 Ythành 0(thay đổi byte 42thà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 Xthành 1dườ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.imgbằ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 Xkhông còn nguyên vẹn nếu được đặt thành 1vì nó không gây hại. Việc cài đặt Ybit 1có 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.


6

Đây là một chút thông minh của thủ thuật hệ thống tập tin khai thác một tên dành riêng trong không gian tên Win32. Chi tiết về cách Panda USB Vaccine thực hiện điều này được nêu ở đây .

Về cơ bản phần mềm tạo một thư mục có tên autorun.inf (ngăn chặn một tệp có cùng tên được tạo ở đó), và sau đó trong thư mục đó, một tệp được gọi LTP1là được tạo. Trong DOS, LPT1đề cập đến cổng máy in và Windows hỗ trợ điều này để tương thích ngược. Vì vậy, khi bạn yêu cầu một tệp có tên LPT1, Windows sẽ cố gắng mở cổng máy in và bằng cách nào đó, điều này ngăn thư mục bị xóa bình thường.

Về cách loại bỏ thư mục / tệp mà không cần định dạng ổ đĩa, bài viết về Kiến thức Microsoft này cung cấp một số mẹo:

Nguyên nhân 5: Tên tệp bao gồm tên dành riêng trong không gian tên Win32

Nếu tên tệp bao gồm tên dành riêng (ví dụ: "lpt1") trong không gian tên Win32, bạn có thể không xóa được tệp. Để giải quyết vấn đề này, sử dụng chương trình không phải Win32 để đổi tên tệp. Bạn có thể sử dụng công cụ POSIX hoặc bất kỳ công cụ nào khác sử dụng cú pháp nội bộ phù hợp để sử dụng tệp.

Ngoài ra, bạn có thể sử dụng một số lệnh dựng sẵn để bỏ qua kiểm tra tên dành riêng Win32 điển hình nếu bạn sử dụng một cú pháp cụ thể để chỉ định đường dẫn của tệp. Ví dụ: nếu bạn sử dụng Del lệnh trong Windows XP, bạn có thể xóa một tệp có tên "lpt1" nếu bạn chỉ định đường dẫn đầy đủ của tệp bằng cách sử dụng cú pháp đặc biệt sau:

del \\?\c:\path_to_file\lpt1

Để biết thêm thông tin về việc xóa các tệp có tên dành riêng trong Windows NT và Windows 2000, bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

120716 Cách xóa tệp có tên dành riêng trong Windows

Để biết thêm thông tin về việc xóa các tệp có tên dành riêng trong Windows XP, bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

315226 Cách xóa tệp có tên dành riêng trong Windows XP

Nếu bạn mở một tay cầm cho một tệp bằng cách sử dụng CreateFile cơ chế Win32 điển hình , một số tên tệp nhất định được dành riêng cho các thiết bị DOS kiểu cũ. Để tương thích ngược, các tên tệp này không được phép và chúng không thể được tạo bằng cách sử dụng các lệnh gọi tệp Win32 điển hình. Tuy nhiên, vấn đề này không phải là giới hạn của NTFS.

Bạn có thể sử dụng chương trình Win32 để bỏ qua các kiểm tra tên thông thường được thực hiện khi tệp được tạo (hoặc xóa) bằng cách sử dụng cùng một kỹ thuật mà bạn sử dụng để duyệt qua các thư mục sâu hơn MAX_PATH. Ngoài ra, một số công cụ POSIX không phải chịu các kiểm tra tên này.


2
Đó là cách cũ của vắc-xin Panda USB để bảo vệ ổ USB khỏi autorun.inf độc hại. Hãy thử tải xuống và sử dụng liên kết tôi cung cấp và bạn sẽ thấy rằng nó không tạo ra bất kỳ thư mục nào. Chỉ cần một tệp có tên autorun.inf
MegaNairda

@MegaNairda: Thật kỳ lạ ... Tôi đã cài đặt Vắc-xin USB, nhưng bất cứ khi nào tôi cố gắng tiêm vắc-xin FAT32, chương trình sẽ tạo ra một chuỗi AUTORUN.INF(với cùng một "caacaa ..." được đề cập trong bài viết) đóng băng Tôi không có vấn đề gì khi xóa tập tin autorun cả ...
Lèse majesté

Hãy dùng thử Liên kết miễn dịch USB của BitDefender, đôi khi Vaccine USB cũng đóng băng trên hệ thống của tôi khi tôi cắm ổ USB.
MegaNairda

@MegaNairda: Dường như có vấn đề với ngón tay cái đó. Không chương trình nào có thể tiêm phòng. Tuy nhiên, sự trùng hợp này rất hữu ích trong đó cho thấy rằng công cụ miễn dịch của BitDefender ít nhất sử dụng một kỹ thuật tương tự. Nhật ký lỗi cho thấy nó đã cố gắng tạo một loạt các thư mục / tệp được lồng trong I:\autorun.inf\bdsanitize#\bdsanitize#...đó #là "1" hoặc "2". Tệp nhật ký cũng nối thêm tệp / dirname của mỗi cấp với .dirhoặc .filenhưng có thể chỉ được hiển thị cho mục đích ghi nhật ký / gỡ lỗi.
Lèse majesté

1
Có vẻ như thực sự có vấn đề với USB của bạn. Công cụ miễn dịch của BitDefender tạo một thư mục autorun.infnhưng sau đó, nó sẽ được thay thế bằng một autorun.inf tệp . Sự khác biệt với autorun.infVaccine USB Panda là tệp trống và không chứa tệp cacacagiống như được tạo bởi Panda.
MegaNairda
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.