四、對某個邏輯盤實現寫保護
我們知道,軟盤上有寫保護缺口,在對軟盤進行寫操作前,BIOS要檢查軟盤狀態,如果寫保護缺口被封住,則不能進行寫操作。而寫保護功能對硬盤而言,在硬件上無法進行,但可通過軟件來實現。 在DOS系統下,磁盤的寫操作包括幾種情況:①在COMMAND.COM支持下的寫操作,如MD、RD、COPY等;②在DOS功能調用中的一些子功能如功能號為10H、13H、3EH、5BH等可以對硬盤進行寫操作;③通過INT 26H將邏輯扇區轉換為絕對扇區進行寫;④通過INT 13H的子功能號03H、05H等對磁盤進行寫操作。 但每一種寫操作最后都要調用INT 13H的子功能去實現。
因此,如果對INT 13H進行攔截,可以實現禁止對硬盤特定邏輯盤的寫操作。由于磁盤上文件的寫操作是通過INT 13H的03H子功能進行寫,調用此子功能時,寄存器CL表示起始扇區號(實際上只用到低6位);CH表示磁道號,在硬盤即為柱面號,該柱面號用10位表示,其最高兩位放在CL的最高兩位。對硬盤進行分區時可以將硬盤分為多個邏輯驅動器,而每個邏輯驅動器都是從某一個完整的柱面開始。如筆者的硬盤為2.5GB,分為C、D、E、F、G五個盤。其中C盤起始柱面號為00H,D盤起始柱面號為66H,E盤起始柱面號為E5H,F盤起始柱面號為164H,G盤起始柱面號為26BH。如果對INT 13H進行攔截,當AH=03H,并且由CL高兩位和CH共同表示的柱面號大于E4H并小于164H,就什么也不做就返回,這樣就可以實現對E盤禁止寫。
文章來源于領測軟件測試網 http://www.kjueaiud.com/