หมายเลข“ คาถา” ของระบบไฟล์ในซูเปอร์บล็อคคืออะไร?


9

ฉันกำลังทำงานบนระบบ NAS ระดับกลางโดยพื้นฐานแล้วทำงานบน Linux และฉันต้องทำการทดสอบที่ดีในวันนี้ ทีละขั้นตอนนำฉันไปใช้ fsdb เพื่อทำลายหมายเลขเวทย์มนตร์ในระบบไฟล์เพื่อให้เสียหาย / ทดสอบสคริปต์ที่ควรแก้ไข

ฉันไปรอบ ๆ และไม่พบคำอธิบายที่ชัดเจน ผู้ใดเล่าจะให้ความกระจ่างในเรื่องแฟชั่นระดับกลางได้บ้าง?

คำตอบ:


15

จำนวนมายากลเป็นลำดับของไบต์ที่ถูกนำมาใช้ในไฟล์ทั้งหมดของรูปแบบหนึ่งมักจะอยู่ในตำแหน่งที่กำหนด (มักที่จุดเริ่มต้น) เนื่องจากไฟล์ทั้งหมดในรูปแบบเฉพาะนั้นมีลำดับไบต์นั้นโดยเฉพาะในตำแหน่งนั้นและไฟล์ส่วนใหญ่ในรูปแบบอื่น ๆ ไม่มีหมายเลขมายากลจึงเป็นวิธีการรับรู้รูปแบบไฟล์ที่อยู่

ที่นี่แนวคิดนี้ถูกนำไปใช้กับรูปแบบระบบแฟ้ม ตัวอย่างเช่นระบบไฟล์ ext2 / ext3 / ext4 มีไบต์0x53 0xEFที่ตำแหน่ง 1080–1081 เสมอ ระบบไฟล์ reiserfs มักจะReIsErFsเริ่มต้นที่ตำแหน่ง 65588 (หรือReIsEr2Fsอื่น ๆ ในรุ่นที่ใหม่กว่า) ระบบไฟล์อื่น ๆ มีหมายเลขเวทย์มนตร์ที่คล้ายกัน เครื่องมือระบบไฟล์จะตรวจสอบว่ามีหมายเลขเวทมนต์ (และอาจเป็นเบาะแสอื่น ๆ ) เพื่อให้แน่ใจว่าคุณไม่ได้เปิดตัวโดยไม่ได้ตั้งใจกับข้อมูลที่จัดระเบียบในรูปแบบที่พวกเขาไม่สามารถจัดการได้และอาจสร้างความเสียหายได้ หากคุณเปลี่ยนหมายเลขเวทย์มนตร์บนระบบไฟล์เครื่องมือธรรมดามักจะปฏิเสธที่จะสัมผัส เครื่องมือซ่อมแซมอาจจะฉลาดกว่าและรักษาหมายเลขเวทย์มนตร์ที่ไม่ดีเป็นหนึ่งในสิ่งที่อาจทำให้เสียได้

fileคำสั่งตระหนักถึงไฟล์ขึ้นอยู่กับตัวเลขของพวกเขาวิเศษ คุณสามารถเรียกใช้เพื่อดูสิ่งที่มันคิดว่าเป็นบนพาร์ติชันfile -s /dev/sda1 /dev/sda1การตัดสินใจจะขึ้นอยู่กับฐานข้อมูลมักจะพบในหรือ/etc/magic /usr/share/misc/magicคำสั่งเฉพาะอาจใช้หมายเลขเวทย์มนตร์ที่แตกต่างกันเพื่อจดจำรูปแบบไฟล์ที่สามารถรับมือได้


ใน Ubuntu apt-get install source fileจะดึงfile-x.yy/magic/Magdir/filesystemsข้อมูลที่มีคำถาม (และฉัน) ที่ต้องการ
Nick Garvey

ไม่ควรจะเป็นอย่างนั้นfile /dev/sda1?
Bobby

@ บ๊อบบี้ไม่file /dev/sda1จะบอกคุณเท่านั้นว่านี่เป็นโหนดอุปกรณ์ แต่จะไม่พูดอะไรเกี่ยวกับเนื้อหา คุณจำเป็นต้องใช้อย่างใดอย่างหนึ่งหรือfile </dev/sda1 file -s /dev/sda1
Gilles 'หยุดชั่วร้าย'

โอเคสำหรับฉันfile < /dev/sda1ล้มเหลวด้วยข้อความช่วยเหลือจากไฟล์ (พารามิเตอร์หายไป?) แต่ใช้-sงานได้ดี ขอบคุณ
Bobby

1
@ บ๊อบอาฉันเข้าใจแล้วฉันลืมตัวละครตัวหนึ่ง เป็นfile - </dev/sda1เพราะคุณต้องบอกfileให้อ่านจาก stdin อย่างชัดเจน ขอบคุณฉันจะแก้ไข
Gilles 'หยุดความชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.