วิธีทำให้ไฟล์ไม่สามารถลบได้ในไดรฟ์ USB


15

มีคนใช้ไดรฟ์ USB ของฉันและเมื่อส่งคืนมาให้ฉันฉันพบautorun.infว่าไม่สามารถลบได้ ฉันลองเปลี่ยนเป็นไฟล์แอททริบิวซึ่งเป็น H เท่านั้น (ไม่ได้ตั้งเป็นไฟล์ระบบ) แต่มันบอกว่า Access Access ถูกปฏิเสธ

USB ตั้งอยู่ที่ FAT32 เมื่อถามเพื่อนของฉันเขาบอกฉันว่าเขาใช้Panda USB Vaccine

พวกเขาทำเช่นนี้ได้อย่างไร ฉันกำลังพยายามใช้ตัวแก้ไขดิสก์เซกเตอร์ แต่ไม่รู้ว่าไฟล์ hex ใดที่พวกเขาเปลี่ยนเพื่อสร้างไฟล์ประเภทนี้และทำให้สามารถลบได้อีกครั้ง การฟอร์แมตไดรฟ์จะลบออก แต่ฉันอยากรู้ว่าจะสามารถตั้งค่าแอตทริบิวต์ไฟล์เหล่านั้นได้อย่างไร


ฉันพบเครื่องมืออื่นที่ใช้ลิงค์เดียวกัน BitDefender USB Immunizer
MegaNairda

คุณตรวจสอบการอนุญาตในไฟล์หรือไม่
Moab

@Moab ระบบไฟล์ของ USB คือ FAT32
MegaNairda

ใน Windows 7 หรือใหม่กว่า autorun.inf ที่สร้างขึ้นโดย Panda USB Vaccine จะแสดงพร้อมกับแอตทริบิวต์ของไฟล์ "HX" ในขณะที่ "H" หมายถึงซ่อนและ "X" หมายถึง FILE_ATTRIBUTE_DEVICE ที่สงวนไว้
Explorer09

คำตอบ:


16

วิธีทดสอบ

แพนด้าดูเหมือนจะไม่เปิดเผยกลไกที่แน่นอนของ "วัคซีน" ซึ่งเป็นที่เข้าใจเพราะมันเป็นพื้นการรักษาความปลอดภัยผ่านความสับสน หากคุณรู้ว่ามันทำงานอย่างไรคุณสามารถย้อนกลับเอฟเฟกต์และ "วัคซีน" จะไร้ประโยชน์

ฉันดาวน์โหลดและติดตั้งPanda USB Vaccineและ "ฉีดวัคซีน" แฟลชไดรฟ์ของฉันแล้วทิ้งพาร์ติชันแฟลชไดรฟ์ด้วยdd สำหรับ windowsโดยใช้คำสั่ง

dd --list

dd if=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} of=C:\vaccinated.img

ที่xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxเป็น GUID ที่มีให้โดยคำสั่งแรกเปิดในตัวแก้ไขฐานสิบหกและค้นหาc:\vaccinated.imgAUTORUN

วัคซีน USB ทำอะไรได้บ้าง

รายการสำหรับAUTORUN.INFเริ่มต้นด้วยสิบสองไบต์ต่อไปนี้:

41 55 54 4F 52 55 4E 20 49 4E 46 42

ไบต์ที่สิบเอ็ดแรกเป็นเพียงชื่อไฟล์ที่มีพื้นที่เพียง8.3 :AUTORUN INF

ไบต์สุดท้ายระบุคุณลักษณะของไฟล์และการแทนค่าไบนารี่คือ:

01000010

ตามข้อกำหนดระบบไฟล์ Microsoft EFI FAT32ไบต์สุดท้ายนี้เป็นฟิลด์บิตที่ใช้แบบฟอร์มต่อไปนี้:

XYADVSHR

ที่บิตA, D, V, S, HและRจะได้1ถ้าหากไฟล์จะถูกเก็บไว้ไดเรกทอรีปริมาณ ID 1ไฟล์ระบบที่ซ่อนอยู่หรืออ่านอย่างเดียว AUTORUN.INFถูกซ่อนไว้เนื่องจากมีการตั้งค่าH1

บิตXและYสงวนไว้และควรเป็นทั้งสอง0อย่าง อย่างไรก็ตาม USB วัคซีนชุดไปY1

ข้อมูลจำเพาะพูดว่าอะไร

สองไบต์บนของแอตทริบิวต์ไบต์ถูกสงวนไว้และควรถูกตั้งค่าเป็น 0 เสมอเมื่อมีการสร้างไฟล์และไม่เคยแก้ไขหรือดูหลังจากนั้น

นอกจากนี้ยังแนะนำให้ตรวจสอบความถูกต้องของเนื้อหาไดเรกทอรี:

แนวทางเหล่านี้จัดทำขึ้นเพื่อให้ยูทิลิตี้การบำรุงรักษาดิสก์สามารถตรวจสอบแต่ละรายการไดเรกทอรีสำหรับ 'ความถูกต้อง' ในขณะที่รักษาความเข้ากันได้กับการปรับปรุงโครงสร้างไดเรกทอรีในอนาคต

  1. อย่าดูเนื้อหาของฟิลด์รายการไดเรกทอรีที่ทำเครื่องหมายว่าสงวนไว้และถือว่าถ้าเป็นค่าอื่นใดนอกเหนือจากศูนย์ว่าพวกเขาเป็น "ไม่ดี"

  2. อย่ารีเซ็ตเนื้อหาของฟิลด์รายการไดเรกทอรีที่ทำเครื่องหมายสงวนไว้เป็นศูนย์เมื่อมีค่าที่ไม่เป็นศูนย์ (ภายใต้สมมติฐานว่าพวกเขาเป็น "ไม่ดี") เขตข้อมูลรายการไดเรกทอรีที่จะได้รับมอบหมายลิขสิทธิ์แทนที่จะต้องเป็นศูนย์ ใบสมัครของคุณควรถูกเพิกเฉย ฟิลด์เหล่านี้มีไว้สำหรับส่วนขยายในอนาคตของระบบไฟล์ การเพิกเฉยต่อสิ่งเหล่านี้ทำให้ยูทิลิตี้สามารถทำงานต่อไปในระบบปฏิบัติการเวอร์ชันต่อไป

เกิดอะไรขึ้นจริง

CHKDSK ปฏิบัติตามข้อกำหนดและละเว้นAUTORUN.INFรายการที่ไดรเวอร์ FAT32 ไม่เข้าใจ แต่ Windows เองดูเหมือนจะไม่ปฏิบัติตามข้อกำหนดของข้อกำหนดที่จะไม่ดูบิตที่สงวนไว้อีกครั้ง : การเข้าถึงชนิดใด ๆ (นอกเหนือจากการแสดงรายการไฟล์ และคุณสมบัติของมัน) ถูกปฏิเสธ

ตัวอย่างเช่นคำสั่ง

DIR /A /Q

ระบุว่าเจ้าของคือAUTORUN.INF ...ตั้งแต่ FAT32 \Allไม่สนับสนุนการเป็นเจ้าของไฟล์ก็ควรระบุ

สาเหตุของพฤติกรรมที่ไม่คาดคิดนี้คือตามFAT32 - รายการ Wikipedia # Directory Windows ใช้บิตYภายในเพื่อส่งสัญญาณชื่ออุปกรณ์อักขระ (CON, PRN, AUX, AUX, CLOCK $, NUL, LPT1, COM1 ฯลฯ ) และ ไม่ควรปรากฏบนอุปกรณ์เก็บข้อมูล 2

ในแง่ของการพูดUSB Vaccine จะหลอกให้ Windows คิดว่าAUTORUN.INFไม่ใช่ไฟล์จริง แต่เป็นอุปกรณ์ที่ไม่สามารถอ่านหรือเขียนได้

วิธีการลบไฟล์

หากคุณมีการเข้าถึงระบบไฟล์โดยตรงก็พอเพียงที่จะตั้งค่าYเป็น0(เปลี่ยนไบต์42เป็น02) เพื่อให้ลบไฟล์ได้อีกครั้ง คุณยังสามารถตั้งค่าไบต์แรกของรายการไดเรกทอรีเป็นE5ทำเครื่องหมายไฟล์เป็นลบโดยตรง 3

ตัวเลือกอื่นจะใช้ไดรเวอร์อื่น Ubuntu 12.04 เช่นสามารถลบไฟล์ได้โดยไม่มีปัญหา ที่จริงแล้วมันจะ "แก้ไข" รายการไดเรกทอรีโดยอัตโนมัติเมื่ออ่าน 4


1คุณลักษณะนี้จะใช้สำหรับการเช่นป้ายปริมาณหรือโฟลเดอร์ข้อมูล System Volume

2แน่นอนว่าการตั้งค่าXเป็น1ไม่มีผลใด ๆ

3ฉันตรวจสอบสิ่งนี้โดยการเปลี่ยนไบต์ที่สอดคล้องกันC:\vaccinated.imgด้วย hex editor และเขียนอิมเมจที่แก้ไขไปยังแฟลชไดรฟ์โดยใช้คำสั่งต่อไปนี้:

dd if=C:\vaccinated.img of=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

4ในขณะที่การเบี่ยงเบนที่เห็นได้ชัดจากสเปคดูเหมือนว่าจะคิดออก อูบุนตูใบXเหมือนเดิมถ้ามันถูกตั้งค่าเป็น1เพราะมันจะไม่มีอันตรายใด ๆ การตั้งค่าYบิตให้1สามารถถูกทำร้ายได้ง่ายโดยแอปพลิเคชั่นที่เป็นอันตรายเช่นสร้างไฟล์ที่ไม่สามารถลบได้ซึ่งใช้พื้นที่ว่างทั้งหมดของไดรฟ์


6

นี่เป็นเล่ห์เหลี่ยมของระบบไฟล์ที่ใช้ประโยชน์จากชื่อลิขสิทธิ์ใน Win32 namespace รายละเอียดของวิธี Panda USB Vaccine ไม่นี้จะถูกแสดงไว้ที่นี่

โดยพื้นฐานแล้วซอฟต์แวร์จะสร้างโฟลเดอร์ชื่อautorun.inf(ซึ่งป้องกันไฟล์ที่มีชื่อเดียวกันกับที่สร้างไว้) จากนั้นในโฟลเดอร์นั้นไฟล์ที่LTP1สร้างจะถูกเรียก ใน DOS LPT1หมายถึงพอร์ตเครื่องพิมพ์และ Windows รองรับสิ่งนี้เพื่อความเข้ากันได้ย้อนหลัง ดังนั้นเมื่อคุณขอไฟล์ที่มีชื่อLPT1Windows จะพยายามเปิดพอร์ตเครื่องพิมพ์และวิธีนี้จะช่วยป้องกันไม่ให้โฟลเดอร์ถูกลบตามปกติ

สำหรับวิธีลบโฟลเดอร์ / ไฟล์โดยไม่ทำการฟอร์แมตไดรฟ์บทความ Microsoft Knowledgebase นี้จะให้คำแนะนำ:

สาเหตุที่ 5: ชื่อไฟล์ประกอบด้วยชื่อที่สงวนไว้ในพื้นที่ชื่อ Win32

หากชื่อไฟล์มีชื่อที่สงวนไว้ (ตัวอย่างเช่น "lpt1") ในพื้นที่ชื่อ Win32 คุณอาจไม่สามารถลบไฟล์ได้ เมื่อต้องการแก้ไขปัญหานี้ใช้โปรแกรมที่ไม่ใช่ Win32 เพื่อเปลี่ยนชื่อไฟล์ คุณสามารถใช้เครื่องมือ POSIX หรือเครื่องมืออื่น ๆ ที่ใช้ไวยากรณ์ภายในที่เหมาะสมเพื่อใช้ไฟล์

นอกจากนี้คุณอาจสามารถใช้คำสั่งในตัวเพื่อเลี่ยงการตรวจสอบชื่อที่สงวนไว้โดยทั่วไปของ Win32 หากคุณใช้ไวยากรณ์เฉพาะเพื่อระบุพา ธ ของไฟล์ ตัวอย่างเช่นหากคุณใช้Del คำสั่งใน Windows XP คุณสามารถลบไฟล์ชื่อ "lpt1" หากคุณระบุเส้นทางแบบเต็มของไฟล์โดยใช้ไวยากรณ์พิเศษต่อไปนี้:

del \\?\c:\path_to_file\lpt1

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการลบไฟล์ที่มีชื่อสงวนภายใต้ Windows NT และ Windows 2000 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

120716 วิธีลบไฟล์ที่มีชื่อลิขสิทธิ์ใน Windows

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการลบไฟล์ด้วยชื่อที่สงวนไว้ภายใต้ Windows XP คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

315226 วิธีลบไฟล์ที่มีชื่อสงวนไว้ใน Windows XP

หากคุณเปิดตัวจัดการไปยังไฟล์โดยใช้CreateFile กลไกWin32 ทั่วไปชื่อไฟล์บางอย่างจะถูกสงวนไว้สำหรับอุปกรณ์ DOS แบบเก่า สำหรับความเข้ากันได้แบบย้อนหลังชื่อไฟล์เหล่านี้ไม่ได้รับอนุญาตและไม่สามารถสร้างได้โดยใช้การเรียกไฟล์ Win32 ทั่วไป อย่างไรก็ตามปัญหานี้ไม่ใช่ข้อ จำกัด ของ NTFS

คุณอาจจะสามารถใช้โปรแกรม Win32 ที่จะหลีกเลี่ยงการตรวจสอบชื่อทั่วไปที่จะมีขึ้นเมื่อไฟล์ถูกสร้างขึ้น (หรือลบ) MAX_PATHโดยใช้เทคนิคเดียวกับที่คุณใช้ในการสำรวจโฟลเดอร์ที่ลึกกว่า นอกจากนี้เครื่องมือ POSIX บางตัวไม่อยู่ภายใต้การตรวจสอบชื่อเหล่านี้


2
นี่เป็นวิธีเก่าแก่ของ Panda USB วัคซีนในการปกป้องไดรฟ์ USB จาก autorun.inf ที่เป็นอันตราย ลองดาวน์โหลดและใช้ลิงก์ที่ฉันให้ไว้และคุณจะเห็นว่ามันไม่ได้สร้างโฟลเดอร์ใด ๆ เพียงไฟล์เดียวชื่อ autorun.inf
MegaNairda

@ MegaNairda: แปลก ... ฉันติดตั้ง USB Vaccine แต่เมื่อใดก็ตามที่ฉันพยายามฉีดวัคซีน FAT32 thumbdrive ของฉันโปรแกรมจะสร้างAUTORUN.INFสตริง (caacaa ... ที่เหมือนกันในบทความ) บนไดรฟ์และจากนั้นทันที ค้าง ฉันไม่มีปัญหาในการลบไฟล์การทำงานอัตโนมัติเลย ...
ดูหมิ่น

ลองลิงค์ BitDefender USB Immunizer แพนด้า USB วัคซีนบางครั้งก็ค้างในระบบของฉันเมื่อฉันใส่ไดรฟ์ USB
MegaNairda

@ MegaNairda: ดูเหมือนว่าจะมีปัญหากับ thumbdrive นั้น โปรแกรมไม่สามารถฉีดวัคซีนได้ อย่างไรก็ตามเรื่องบังเอิญนี้มีประโยชน์ในการแสดงให้เห็นว่าอย่างน้อยภูมิคุ้มกันของ BitDefender ใช้เทคนิคที่คล้ายกัน บันทึกข้อผิดพลาดแสดงว่าพยายามสร้างชุดของโฟลเดอร์ / ไฟล์ที่ซ้อนอยู่ภายใต้I:\autorun.inf\bdsanitize#\bdsanitize#...โดยที่#"1" หรือ "2" ล็อกไฟล์ยังต่อท้ายไฟล์ / dirname ของแต่ละระดับด้วย.dirหรือ.fileอาจจะปรากฏขึ้นเพื่อวัตถุประสงค์ในการบันทึก / ตรวจแก้จุดบกพร่อง
Lèsemajesté

1
ดูเหมือนว่ามีปัญหากับ USB ของคุณ BitDefender ของ Immunizer ทำสร้างโฟลเดอร์autorun.infแต่หลังจากนั้นก็จะถูกแทนที่ด้วยไฟล์autorun.inf ความแตกต่างกับautorun.infPanda USB Vaccine ก็คือไฟล์นั้นว่างเปล่าและไม่มีสิ่งที่cacacaเหมือนกับ Panda สร้างขึ้น
MegaNairda
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.