• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大龍的博客

            常用鏈接

            統(tǒng)計(jì)

            最新評(píng)論

            如何編寫 INF 文件

            INF文件全稱Information File文件,是Winodws操作系統(tǒng)下用來(lái)描述設(shè)備或文件等數(shù)據(jù)信息的文件。INF文件是由標(biāo)準(zhǔn)的ASCII碼組成,您可以用任何一款文字編輯器查看修改其中的內(nèi)容。一般我們總是認(rèn)為INF文件是系統(tǒng)設(shè)備的驅(qū)動(dòng)程序,其實(shí)這是錯(cuò)誤的認(rèn)識(shí),Windows之所以在安裝某些硬件的驅(qū)動(dòng)時(shí)提示需要INF文件是因?yàn)镮NF文件為該設(shè)備提供了一個(gè)全面描述硬件參數(shù)和相應(yīng)驅(qū)動(dòng)文件(DLL文件)的信息。就好比我們看著說(shuō)明書安裝電腦硬件一樣,我們就是Windows系統(tǒng),說(shuō)明書就是INF文件。INF文件功能非常強(qiáng)大,幾乎能完成日常操作的所有功能。您可以把它看成是Windows系統(tǒng)底下的超強(qiáng)批初理。要熟練掌握和理解甚至是編寫INF文件需要對(duì)其內(nèi)部結(jié)構(gòu)有相當(dāng)?shù)恼J(rèn)識(shí)。下面就讓我們來(lái)深入到INF文件中的內(nèi)部一窺其真面貌吧! 
             

            INF文件的組成有節(jié)(Sections),鍵(Key)和值(value)三部分。 
            關(guān)鍵節(jié)有 
            [Version]版本描述信息,主要用于版本控制。 
            [Strings]字符串信息,用于常量定義。 
            [DestinationDirs]定義系統(tǒng)路徑信息。 
            [SourceDisksNames]指明源盤信息。 
            [SourceDisksNames]指明源盤文件名。 
            [DefaultInstall]開(kāi)始執(zhí)行安裝。 
            其它的節(jié)可以自定義,下面用一實(shí)例來(lái)具體講解。 


            程序代碼 
            [Version] 
            Signature
            =$Chicago$ 
            Provider
            =%Author% 

            [Strings] 
            Product
            ="添加文件關(guān)聯(lián)演示" 
            Version
            ="1.0" 
            Author
            ="Xunchi" 
            Copyright
            ="Copyright 2005" 
            CustomFile
            ="inf" ;修改您需要的文件名后綴 
            Program="NOTEPAD.EXE" ;修改您需要關(guān)聯(lián)的應(yīng)用程序名 

            [Add.Reg] 
            HKCR
            ,"."%CustomFile%,"",FLG_ADDREG_TYPE_SZ ,%CustomFile%File 
            HKCR
            ,%CustomFile%File,"",FLG_ADDREG_TYPE_SZ,安裝信息 
            HKCR
            ,%CustomFile%"File\shell","",FLG_ADDREG_TYPE_SZ,open 
            HKCR
            ,%CustomFile%"File\shell\open\command","",FLG_ADDREG_TYPE_SZ,%program% %1 

            [DefaultInstall] 
            AddReg
            =Add.Reg 

              在
            [Version]節(jié)中"Signature"項(xiàng)定義了該INF文件需要運(yùn)行在何種操作系統(tǒng)版本中。有$Windows NT$, $Chicago$, or $Windows 95$三個(gè)值供選擇,一般選擇$Chicago$即可。項(xiàng)Provider中定義了該文件的創(chuàng)作來(lái)源,%Author%指引用Author項(xiàng)的值。您也可自定其它項(xiàng)來(lái)描述該INF文件的版本信息。該INF文件的作用是關(guān)聯(lián)文件,所以主要是對(duì)注冊(cè)表的操作,我們來(lái)看[Add.Reg]節(jié),共四條語(yǔ)句,格式都是一樣。HKCR表示根HKEY_CLASSES_ROOT,第二個(gè)參數(shù)是子鍵的路徑名,第三個(gè)參數(shù)是表明值的類型,最后是值(具體見(jiàn)附表)。以上都是對(duì)操作的定義與過(guò)程,在節(jié)[DefaultInstall]中是開(kāi)始執(zhí)行要安裝的流程,AddReg表明是對(duì)注冊(cè)表進(jìn)行操作,操作對(duì)象是Add.Reg節(jié)中的定義。如果您把AddReg換成DelReg則是刪除注冊(cè)表中的鍵值。當(dāng)鼠標(biāo)單擊該INF文件在彈出的菜單中選擇“安裝”就開(kāi)始執(zhí)行您所定義的操作。該示例在系統(tǒng)的INF文件右鍵菜單中增加了查看編輯功能并設(shè)置了默認(rèn)動(dòng)作,因?yàn)樵诎惭b了不了解的INF文件有可能對(duì)系統(tǒng)產(chǎn)生不良的影響,這樣雙擊文件就可打開(kāi)編輯該文件了。 


              再看看INF文件在文件操作方面的能力吧。請(qǐng)看下面的一個(gè)例子。 

            程序代碼 
            [Version] 
            Signature
            =$Chicago$ 
            Provider
            =%Author% 
            [Strings] 
            Product
            ="文件復(fù)制和安裝演示" 
            Version
            ="1.0" 
            Author
            ="Xunchi" 
            Copyright
            ="Copyright 2005" 

            [FileList] 
            ProcessList.exe 
            ;此文件已在當(dāng)前目錄下,下同。 

            [FileList1] 
            Wordpad.exe 
            [DestinationDirs] 
            FileList
            =11 ;安裝到Windows的系統(tǒng)目錄 
            FileList1=10 ;安裝到Windows目錄 
            [DefaultInstall] 
            Copyfiles
            =FileList,FileList1 

              相同的節(jié)的作用與上一例類似,請(qǐng)注意新出現(xiàn)的節(jié)
            [FileList],這是我自定義的節(jié)名,它表示了一個(gè)文件組,[FileList1]也類似。在節(jié)[DestinationDirs]中需定義每個(gè)文件組復(fù)制到的目錄(各個(gè)常量的意義見(jiàn)附表)。Copyfiles指明了需要進(jìn)行復(fù)制的文件組。 
              INF文件的操作還包括服務(wù)(NT系統(tǒng))程序的安裝和卸載,INI文件的轉(zhuǎn)換等。由于這些操作都比較的復(fù)雜和繁瑣,且有一定的危險(xiǎn)性故下次有機(jī)會(huì)再向大家進(jìn)行深入探討。 
              最后我們來(lái)看一下INF文件的執(zhí)行機(jī)制,這時(shí)你也許要問(wèn)不就是簡(jiǎn)單的執(zhí)行一下“安裝”嗎?知其然不知其所以然知識(shí)水平是不會(huì)提高的。在“文件夾選項(xiàng)”中的“文件類型”找到INF文件的“安裝”命令看到一串命令。“rundll32.exe setupapi
            ,InstallHinfSection DefaultInst_all 132 %1”它表示了運(yùn)行Dll文件setupapi.dll中的命令I(lǐng)nstallHinfSection并傳遞給它起始節(jié)的名字 DefaultInstall。可見(jiàn)起始節(jié)是可以自定義的。INF文件的執(zhí)行也可用在各種支持API調(diào)用的編程工具中。至此INF文件的結(jié)構(gòu)和運(yùn)行機(jī)制我們已基本了解,現(xiàn)在就讓你的思維開(kāi)動(dòng)起來(lái),讓它更好的為我們工作吧。 


            注冊(cè)表操作的常量定義: 
            ---------------------------------------------------------- 
            常量 根值 
            HKCR HKEY_CLASSES_ROOT. 
            HKCU HKEY_CURRENT_USER. 
            HKLM HKEY_LOCAL_MACHINE. 
            HKU HKEY_USERS. 
            ----------------------------------------------------------- 
            FLG_ADDREG_APPEND 在多字符串后添加字符 
            FLG_ADDREG_TYPE_SZ 字符類型 
            FLG_ADDREG_TYPE_MULTI_SZ 字符串類型 
            FLG_ADDREG_TYPE_EXPAND_SZ 擴(kuò)展字符串類型 
            FLG_ADDREG_TYPE_BINARY 二進(jìn)制值 
            FLG_ADDREG_TYPE_DWORD DWord值 
            FLG_ADDREG_TYPE_NONE NULL值 
            ---------------------------------------------------------- 


            [DestinationDirs]節(jié)中所定義的常量路徑 
            ---------------------------------------------------------- 
            01 源目錄(后跟路徑) 
            10 Windows目錄 
            11 Windows系統(tǒng)目錄 
            12 驅(qū)動(dòng)目錄 
            17 INF文件目錄 
            18 幫助文件目錄 
            20 字體目錄 
            21 根目錄 
            24 應(yīng)用程序目錄 
            25 共享目錄 
            30 當(dāng)前根目錄 
            50 System目錄 
            51 Spool 目錄 
            52 Spool 驅(qū)動(dòng)目錄 
            53 用戶配置目錄 
            ---------------------------------------------------------- 

            [DefaultInstall]節(jié)中定義的操作 
            ---------------------------------------------------------- 
            LogConfig Log日志文件配置 
            Copyfiles 復(fù)制文件 
            Renfiles 文件改名 
            Delfiles 刪除文件 
            UpdateInis 更新Inis 
            UpdateIniFields 更新Ini字段 
            AddReg 添加注冊(cè)項(xiàng) 
            DelReg 刪除注冊(cè)項(xiàng) 
            Ini2Reg Ini文件轉(zhuǎn)換為Reg文件 
            ----------------------------------------------------------- 


            INF文件應(yīng)用示例
            一、修改telnet服務(wù),端口改為99,NTLM認(rèn)證方式為1。 
            =============================== 
             

            C:\myinf\Telnet.inf 

            [Version] 
            Signature
            ="$WINDOWS NT$" 
            [DefaultInstall] 
            AddReg
            =AddRegName 
            [My_AddReg_Name] 
            HKLM
            ,SOFTWARE\Microsoft\TelnetServer\1.0,TelnetPort,0x00010001,99 
            HKLM
            ,SOFTWARE\Microsoft\TelnetServer\1.0,NTLM,0x00010001,1 

            安裝:rundll32.exe setupapi
            ,InstallHinfSection DefaultInstall 128 c:\myinf\telnet.inf 

            說(shuō)明:
            [Version][DefaultInstall]是必須的,0x00010001表示REG_DWORD數(shù)據(jù)類型,0x00000000或省略該項(xiàng)(保留逗號(hào))表示REG_SZ(字符串)。0x00020000表示REG_EXPAND_SZ。 
            InstallHinfSection是大小寫敏感的。它和setupapi之間只有一個(gè)逗號(hào),沒(méi)有空格。128表示給定路徑,該參數(shù)其他取值及含義參見(jiàn)MSDN。 
            特別注意,最后一個(gè)參數(shù),必須是inf文件的全路徑,不要用相對(duì)路徑。 
            inf文件中的項(xiàng)目都是大小寫不敏感的。 

            二、服務(wù) 
            =============== 

            增加一個(gè)服務(wù): 

            [Version] 
            Signature
            ="$WINDOWS NT$" 
            [DefaultInstall.Services] 
            AddService
            =inetsvr,,My_AddService_Name 
            [My_AddService_Name] 
            DisplayName
            =Windows Internet Service 
            Description
            =提供對(duì) Internet 信息服務(wù)管理的支持。 
            ServiceType
            =0x10 
            StartType
            =2 
            ErrorControl
            =0 
            ServiceBinary
            =%11%\inetsvr.exe 

            保存為inetsvr.inf,然后: 

            rundll32.exe setupapi
            ,InstallHinfSection DefaultInstall 128 c:\path\inetsvr.inf 

            這個(gè)例子增加一個(gè)名為inetsvr的服務(wù)(是不是很像系統(tǒng)自帶的服務(wù),呵呵)。 

            幾點(diǎn)說(shuō)明: 
            1,最后四項(xiàng)分別是 
            服務(wù)類型:0x10為獨(dú)立進(jìn)程服務(wù),0x20為共享進(jìn)程服務(wù)(比如svchost); 
            啟動(dòng)類型:
            0 系統(tǒng)引導(dǎo)時(shí)加載,1 OS初始化時(shí)加載,2 由SCM(服務(wù)控制管理器)自動(dòng)啟動(dòng),3 手動(dòng)啟動(dòng),4 禁用。 
            (注意,0和1只能用于驅(qū)動(dòng)程序) 
            錯(cuò)誤控制:
            0 忽略,1 繼續(xù)并警告,2 切換到LastKnownGood的設(shè)置,3 藍(lán)屏。 
            服務(wù)程序位置:%
            11%表示system32目錄,%10%表示系統(tǒng)目錄(WINNT或Windows),%12%為驅(qū)動(dòng)目錄system32\drivers。其他取值參見(jiàn)DDK。你也可以不用變量,直接使用全路徑。 
            這四項(xiàng)是必須要有的。 
            2,除例子中的六個(gè)項(xiàng)目,還有LoadOrderGroup、Dependencies等。不常用所以不介紹了。 
            3,inetsvr后面有兩個(gè)逗號(hào),因?yàn)橹虚g省略了一個(gè)不常用的參數(shù)flags。 

            刪除一個(gè)服務(wù): 

            [Version] 
            Signature
            ="$WINDOWS NT$" 
            [DefaultInstall.Services] 
            DelService
            =inetsvr 

            很簡(jiǎn)單,不是嗎? 

            當(dāng)然,你也可以通過(guò)導(dǎo)入注冊(cè)表達(dá)到目的。但inf自有其優(yōu)勢(shì)。 
            1,導(dǎo)出一個(gè)系統(tǒng)自帶服務(wù)的注冊(cè)表項(xiàng),你會(huì)發(fā)現(xiàn)其執(zhí)行路徑是這樣的: 
            "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,
            74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,74,
            00,6c,00,6e,00,74,00,73,00,76,00,72,00,2e,00,65,00,78,00,65,00,00,00 
            可讀性太差。其實(shí)它就是%SystemRoot%\system32\tlntsvr.exe,但數(shù)據(jù)類型是REG_EXPAND_SZ。當(dāng)手動(dòng)導(dǎo)入注冊(cè)表以增加服務(wù)時(shí),這樣定義ImagePath顯然很不方便。如果用REG_SZ代替會(huì)有些問(wèn)題——不能用環(huán)境變量了。即只能使用完整路徑。用inf文件完全沒(méi)有這個(gè)問(wèn)題,ServiceBinary(即ImagePath)自動(dòng)成為REG_EXPAND_SZ。 
            2,最關(guān)鍵的是,和用SC等工具一樣,inf文件的效果是即時(shí)起效的,而導(dǎo)入reg后必須重啟才有效。 
            3,inf文件會(huì)自動(dòng)為服務(wù)的注冊(cè)表項(xiàng)添加一個(gè)Security子鍵,使它看起來(lái)更像系統(tǒng)自帶的服務(wù)。 

            另外,AddService和DelService以及AddReg、DelReg可以同時(shí)且重復(fù)使用。即可以同時(shí)增加和刪除多個(gè)服務(wù)和注冊(cè)表項(xiàng)。 

            三、組策略 
            ========== 

            1、密碼最小6位 
            [version] 
            signature
            ="$CHICAGO$" 
            [System Access] 
            MinimumPasswordLength 
            = 6 
            PasswordComplexity 
            = 1 

            保存為gp.inf,然后導(dǎo)入: 
            secedit /configure /db gp.sdb /cfg gp.inf /quiet 


            2、關(guān)閉所有的“審核策略 

            echo 
            [version] >1.inf 
            echo signature
            ="$CHICAGO$" >>1.inf 
            echo 
            [Event Audit] >>1.inf 
            echo AuditSystemEvents
            =0 >>1.inf 
            echo AuditObjectAccess
            =0 >>1.inf 
            echo AuditPrivilegeUse
            =0 >>1.inf 
            echo AuditPolicyChange
            =0 >>1.inf 
            echo AuditAccountManage
            =0 >>1.inf 
            echo AuditProcessTracking
            =0 >>1.inf 
            echo AuditDSAccess
            =0 >>1.inf 
            echo AuditAccountLogon
            =0 >>1.inf 
            echo AuditLogonEvents
            =0 >>1.inf 
            secedit /configure /db 
            1.sdb /cfg 1.inf /log 1.log /quiet 
            del 
            1.* 


            四、解決XP ipc$連接只有Guest權(quán)限 
            ==================== 

            echo 
            [version] >1.inf 
            echo signature
            ="$CHICAGO$" >>1.inf 
            echo 
            [Registry Values] >>1.inf 
            echo MACHINE\System\CurrentControlSet\Control\Lsa\ForceGuest
            =4,0 >>1.inf 
            secedit /configure /db 
            1.sdb /cfg 1.inf /log 1.log 
            del 
            1.*



            注:   

            00 Null LDID - 可用于創(chuàng)建新的 LDID
            01 Source Drive:\pathname
            10 Windows 文件夾(等價(jià)于%windir%目錄 )
            11 System32 文件夾
            12 IOSubsys 文件夾
            13 Command 文件夾
            17 Inf 文件夾
            18 Help 文件夾
            20 Fonts
            21 Viewers
            22 VMM32
            23 Color 文件夾
            24 包含 Windows 文件夾的驅(qū)動(dòng)器根目錄
            28 Host Winboot
            30 啟動(dòng)盤的根文件夾
            31 虛擬啟動(dòng)盤的主驅(qū)動(dòng)器根文件夾
            ......
            16422 Programs Files文件夾

            posted on 2008-06-18 14:33 大龍 閱讀(469) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            AV色综合久久天堂AV色综合在| 久久五月精品中文字幕| 国产福利电影一区二区三区,免费久久久久久久精 | 97精品国产91久久久久久| 久久精品中文字幕大胸| 久久久久久A亚洲欧洲AV冫| 91精品国产色综久久| 国产精品久久久久aaaa| 亚洲精品高清国产一线久久| 久久精品一本到99热免费| 亚洲人成电影网站久久| 久久无码AV中文出轨人妻| 精品国产乱码久久久久软件| 亚洲欧洲精品成人久久奇米网| 伊人久久大香线蕉综合5g| 国产午夜精品久久久久九九电影| 人妻少妇精品久久| 久久婷婷五月综合色99啪ak| 日韩一区二区三区视频久久| 亚洲欧美日韩久久精品| 久久人人爽人人爽人人片av麻烦| 伊人久久综合精品无码AV专区| 久久久久人妻精品一区| 精品永久久福利一区二区| 狠色狠色狠狠色综合久久| 99久久婷婷国产一区二区| 久久精品国产福利国产秒| 精品久久综合1区2区3区激情| 亚洲欧美日韩久久精品第一区| 久久91精品国产91久久小草| 91久久国产视频| 很黄很污的网站久久mimi色| 欧洲国产伦久久久久久久| 香蕉久久夜色精品升级完成| 青青热久久综合网伊人| 久久国产综合精品五月天| 午夜精品久久久久久影视777| 久久综合九色综合精品| 久久亚洲国产成人影院| 国产精品99久久免费观看| 88久久精品无码一区二区毛片|