
這一課詳細來講一下幾個配置文件.
配制文件的擴展名一般為.ini,內容的一般格式如下:
復制內容到剪貼板
代碼:
[字段名]
關鍵字=值
在一個配制文件中,可以有多個字段,一個字段下也可以有多個關鍵字.字段名必須用中括號括起來.字段名,關鍵字,值等可以是中文,英文,各種符號等(一般英文居多).對于系統中的配制文件,字段名一定是固定的,關鍵字大都也是固定的,你不能隨意更改成其他名稱,只有后面的值才可以改,修改時也要符合一定的規則.
一.desktop.ini
這個文件在第5課中已經詳細地講過了,這里就不再講了.
二.autorun.inf
還是先貼一下上一課中的那個文件的內容,上一課中講得很簡單,這一課繼續講,不要求完全掌握,只要知道上一課中的內容就行:
復制內容到剪貼板
代碼:
[autorun]
open=progict1.exe
shell\open=打開(&O)
shell\open\Command=progict1.exe
shell\open\Default=1
shell\explore=資源管理器(&X)
shell\explore\Command=progict1.exe
第一行中的autorun是一個字段名,autorun.inf這個配制文件總共可以支持三個字段,另兩個是 AutoRun.Alpha和DeviceInstall.autorun字段是每個autorun.inf文件心須有的并且所有windows系統都支持該處的配制(除非禁用了自動播放等),其他兩個是可選的,AutoRun.Alpha適用于基于RISC的計算機光驅,而DeviceInstall則要求必須是XP及以上系統.下面一個個來具體說明:
[autorun]
1.Open
這個單詞的意思為打開,也就是說當你打開設備(如磁盤,光盤,U盤)時,等號后面的命令(可執行文件)也會跟著執行,命令可以帶參數,如ping 127.0.0.1,必須是.exe,.com,.bat等文件,其他文件需使用start.exe打開或使用ShellExecute命令,命令的起始目錄必須是設備根目錄或系統的Path環境變量中所指定的,否則將無法運行.
2.ShellExecute
功能與Open類似,但可以是任意格式的文件,系統會根據文件關聯選擇合適的程序打開它.比如你寫一行ShellExecute=ratebbs.doc,當你雙擊時,系統將自動調用word程序來打開這個名為ratebbs.doc的文檔(前提是這個文檔必須存在).
3.Icon
用于指定盤符的圖標,等號后為圖標的路徑,可以是.ico,.bmp,.exe,.dll.當文件格式為.exe和.dll時需要使用序號來指定圖標,若不指定,則默認為0,文件路徑與序號之間用半角逗號隔開,比如我可以這樣寫:Icon=E:\edu\antivirus\anti\anti.exe,0
4.DefaultIcon
這個是用于指定將被自動執行的程序的圖標的,如果指定了另外一個圖標,則原來程序的圖標將不會顯示,也就是說它的優先級高于程序本身顯示的圖標.設置方法和關鍵字Icon一樣.
5.Label
用于指定磁盤的默認描述\卷標,默認為本地磁盤,卷標命名規則好像和文件名一樣,不能包含一些特殊字符,可以有中文,空格等.
6.shell
這個說簡單也簡單,說復雜也復雜,因為自由度比較大,
復制內容到剪貼板
代碼:
shell\open=打開(&O)
shell\open\Command=progict1.exe
shell\open\Default=1
中間都有一個open(標識),其實也可以換成其他名字的,但三行中必須同時更改才有效,第一行的效果是右擊盤符時將出現一個名為打開的選項,后面的(&O)的效果是指定快捷鍵.第二行的效果是當你選擇打開時,運行指定的命令,第三行的效果為讓這個命令出現在右鍵快捷菜單的最上面.Command意為命令行,它后面的設置方法和關鍵字open是一樣的.
默認情況下,系統可以識別open,explore,find,ShellExecute等標識,也就是說當你使用這幾個標識時只要寫中間的那一行就可以了(第一行可以不寫),使用其他標識時前兩行必須有,且標識必須一致,舉例如下:
復制內容到剪貼板
代碼:
shell\ratebbs=反病毒(&A)
shell\ratebbs\Command=E:\edu\antivirus\anti\anti.exe
[AutoRun.alpha]
所有關鍵字的用法和[AutoRun]字段完全相同區別在于在基于RISC的光驅中,[AutoRun.alpha]優先級高于[AutoRun],也就是說如果同時設置了這兩個字段,在基于RISC的光驅中,系統只識別[AutoRun.alpha]字段中的,[AutoRun]字段將被忽略.這個字段并不常用.
[DeviceInstall]
只有一個關建字DriverPath,用于指定驅動程序的搜索路徑.Windows XP以上支持,一般用于驅動程序的自動安裝,當你打開設備管理器,點更新驅動時,系統將自動搜索光盤以查找合適的驅動.如果沒有這一字段,系統將全盤搜索.若有這一字段,但沒有DriverPath關鍵字,則系統將不在此光盤中搜索驅動程序.
三.boot.ini
這是系統盤根目錄下的一個文件,具有只讀屬性,修改前需先更改它的屬性.該文件與開機時顯示操作系統選擇菜單有關,如果該文件丟失或配制錯誤將導致windows系統無法正常引導,所以修改前請一定要備份,以下為我裝完XP系統后備份的boot.ini文件的內容.
復制內容到剪貼板
代碼:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
[boot loader]
1,timeout
這個關鍵字指定開機時操作系統選擇菜單的停留時間,單位為秒,當只有一個操作系統時,它的值將被忽略.
2,default
當超過timeout所指定的時間且你沒有選擇要進入的操作系統,將自動進入該值所指定的操作系統.該值必須是operating systems字段中已存在的關鍵字,否則將出錯.
[operating systems]
這個字段下是所有操作系統的列表.上面的例子只有一個XP系統.所有只有一行.
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
說一下這個關鍵字的意思:
multi(0)說明系統使用的是IDE,增強的IDE(EIDE)或增強的小型設備接口(ESDI)驅動器,或者沒有內置BIOS的SCSI適配器.有的系統此處可能為scsi(0)說明使用的是除上述以外的控制器.后面括號中的0表示第一個控制器(主控制器),如果有第二個,后面數字加1,即multi(1).
disk(0)表示使用的SCSI邏輯單元(LUN).它可以是獨立的磁盤,但是大多數SCSI設置對每個SCSI ID只有一個 LUN,所以通常都是這個值.
rdisk(0)表示該操作系統位于第一個物理磁盤上.
partition(1)表該操作系統所有的磁盤分區,系統安裝在C盤則為partition(1),若在D盤則為partition(2),后面的以此類推.
"Microsoft Windows XP Professional" /noexecute=optin /fastdetect
此處分兩部分講,關面雙引號中的可以任意更改,它就是操作系統選擇菜單所出現的名字.后面的是參數,參數一般不區分大小寫.
/noexecute
該參數與數據執行保護(DEP)有關,其值為optin時表示開啟,值為Optout時表示關閉.開啟該項可以阻止某些惡意程序的執行,使惡意程序運行出錯而退出.具體也可以到我的電腦,屬性,高級,設置,數據執行保護處設置,如果你不知道DEP是什么,請單擊DEP是如何工作的.
/fastdetect
系統啟動時不檢查串行口和并行口,可以加快系統的啟動速度.
除上面兩個參數之外,系統還支持很多其他參數.不要求掌握,大致了解就行.以下參數說明來自微軟知識庫文章(http://support.microsoft.com/kb/170756/en-us/)及本人的理解.
/3GB
使得用戶模式程序能夠訪問3GB的內存,正常情況下通常為2GB,只適用于各NT系統非家庭版的SP3版.
/basevideo
強制用標準640x480 16色VGA模式啟動系統.當視頻分辨率,刷新速率出錯或相關驅動出錯時可使用此選項.
/BAUDRATE=nnnn
設置波特率的調試端口.如果沒有設置波特率,默認波特率是19200.若通過調制解調器遠程調試正常速率,此值為9600.例如/BAUDRATE=9600.
/BOOTLOG
將系統日志寫入%SystemRoot%\NTBTLOG.TXT,并非所有系統都支持.
/BURNMEMORY=nnnn
使系統在已知的內存上少使用指定的兆數,如果/burnmemory=128,則系統可使用的內存數將在原有基礎上減少128M
/CRASHDEBUG
系統啟動時,如果經常無故出錯(一般是內核錯誤),這個參數就非常有用.
/DEBUG
在啟動系統時調入調度器,它可以在任何時間激活,在錯誤可以再次出現時使用它比較合適
/DEBUGPORT=comx
指定用于調度的端口,其中的x就指端口號.
/HAL=<hal>
允許用戶不使用默認的HAL.等號后的是一文件名,用于加載指定的內核.
/INTAFFINITY
設置多處理器HAL(HALMPS.DLL),使編號最大的處理器接收中斷請求.如果不設置此選項,系統會使所有處理器接收中斷請求.
/KERNEL=<kernel>
與上面的/HAL功能類似,但它是針對SMP中的內核而言的.例/KERNEL=ntkrnlmp.exe,指定的文件必須位于%systemroot%/system32目錄中
/MAXMEM:n
指定系統可以使用的最大內存數.
/NODEBUG
禁用內核調試器,藍屏時不顯示相應信息.
/NOGUIBOOT
不加載VGA驅動程序,不顯示啟動過程和失敗時的藍屏信息.
/NOSERIALMICE=[COMx|COMx,y,z...]
在特定的COM中上禁止對串行鼠標的檢測.
/NUMPROC=n
只允許前n個處理器工作
/ONECPU
在多處理器中只使用一個處理器
/PCILOCK
不讓系統為PCI設置分配IO/IRQ資源,從而無法在windows中更改BIOS設置.
/SAFEBOOT
以安全模式啟動
/SOS
在調入驅動程序名時顯示它的名字,在因驅動問題而無法啟動時使用,從而知道是哪個驅動導致的問題.
/WIN95
在裝有三個系統DOS,Win9x和Windows NT的系統上,讓NTLDR直接調用Win9x啟動文件BOOTSECT.W40
/WIN95DOS
在裝有三個系統DOS,Win9x和Windows NT的系統上,讓NTLDR直接調用DOS啟動文件BOOTSECT.DOS
/YEAR=
使用指定的年份,如果設置為/YEAR=2005,那現在的時間就是2005年,此參數只對NT4+SP4和W2K生效.
一般情況下不建議直接編輯boot.ini文件,除非你有足夠的把握不出錯,修改前請備份.一般使用如下兩種方式修改其部分設置.
1.我的電腦,屬性,高級,設置(第三個).在這里可以進行不少的設置了,或者點擊編輯進行自定義設置.
2.開始,運行,輸入msconfig,boot.ini,要使用哪些參數直接在下面,或高級中相應選項前打勾就行了,以防止出錯.
以下是我目前的boot.ini文件的內容:
復制內容到剪貼板
代碼:
[boot loader]
timeout=30
default=C:\PSALDR
[operating systems]
C:\PSALDR="microsoft windows xp professional"
C:\PSBLDR="microsoft windows xp professional 單一影子模式"
multi(0)disk(0)rdisk(0)partition(1)\windows="microsoft windows xp professional 完全影子模式" /fastdetect
c:\grldr=maxdos_5.0e 工具箱
c:\arldr=microsoft dos 7.1
不知大家裝過影子系統2008沒,裝完后關鍵字default的值被改成了C:\PSBLDR,也就是說超時未選擇操作系統的話,默認會進入單一影子模式,把它改成C:\PSALDR默認就會進入正常模式.
c:\grldr,c:\arldr,C:\PSBLDR等都是用于啟動相應系統的文件,等號后面的可任意修改.
四.system.ini
曾經是一個非常重要的系統配制文件,早期的病毒或木馬常修改這個文件達到開機就啟動的目的,現在已經不多見了,但仍然有.NT系統中,幾乎所有配制已集成到注冊表中,因此現在這個文件的內容比較少了,但仍很有用,系統每次啟動都會修改這個文件的內容,不信你可以查看其屬性,修改時間.該文件位于%systemroot%/system.ini.也可以通過msconfig來修改..
該文件的配制是相關復雜的,這里只講和病毒有關的字段及關鍵字.
[boot]字段的shell=Explorer.exe
注冊表位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,鍵名shell,正常值為Explorer.exe,不正常時可能為Explorer.exe,anti.exe
[386Enh],[mic],[drivers],[drivers32]等字段的driver=驅動程序文件路徑.
與驅動有關的注冊表路徑如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfiles
五.Win.ini
和system.ini一樣,是一個非常重要且相當復雜的配制文件,幸好,大多數配制已集成到注冊表.這里也只講與病毒加載有關的字段和關鍵字.
[windows]字段的load和run.
關鍵字load的注冊表路徑HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows,鍵名load.
關鍵字run的注冊表路徑同上,鍵名為run,正常情況這兩個鍵并不存在或其值為空.
六.Wininit.ini
這個文件用于重啟時修改或刪除文件用的.有些正在運行中的文件是無法被修改或刪除的,于是可以用這個文件的配制在下次開機時修改或刪除(在這些文件沒被加載前),修改或刪除成功后,該文件消失,所以一般情況下是看不到這個文件的. 該文件的功能亦被集成到注冊表中,注冊表路徑HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\FileRenameOperations
類型為REG_MULTI_SZ
不能直接編輯該處的鍵及值,通常是通過API函數MoveFileEx來實現的.
wininit.ini的[rename]字段
關鍵字是一個文件名,值也是一個文件名,重啟時,系統將用值的文件替換關鍵字的文件,并把值的文件刪除.
如果關鍵字所指定的文件不存為,則實際上是將值所指定的文件重命名為關鍵字所指定的文件.
如果關鍵字為nul,則實際上是將值所指定的文件刪除.
如:C:\WINDOWS\explorer.exe=C:\WINDOWS\TASKMAN.EXE
文件名必須是完整路徑.
七.AUTOEXEC.BAT
不屬于配制文件,而是一上批處理文件,但也常被病毒利用,正常情況下該文件沒有任何內容,大小為0字節.
這個文件用于存放系統啟動時自動執行的命令(一個特殊的批處理文件).如果發現該文件的內容為一可執行文件名,請一定要注意了.
八.CONFIG.SYS
雖然擴展名為sys,但他實際上是一個文本文件(可以用記事本來打開),正常情況下也是空的.如果該文件被改動,應引起注意,特別是device=文件名等這樣的配制,系統啟動時將加載指定的驅動文件.這個文件就相當可疑.
以上是能和病毒扯上一些關系的配制文件.在NT內核系統中,大多數配制已集成進注冊表,但配制文件仍然有效.