日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]如何编写 INF 文件

發布時間:2025/4/16 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]如何编写 INF 文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

INF文件全稱Information?File文件,是Winodws操作系統下用來描述設備或文件等數據信息的文件。INF文件是由標準的ASCII碼組成,您可以用任何一款文字編輯器查看修改其中的內容。一般我們總是認為INF文件是系統設備的驅動程序,其實這是錯誤的認識,Windows之所以在安裝某些硬件的驅動時提示需要INF文件是因為INF文件為該設備提供了一個全面描述硬件參數和相應驅動文件(DLL文件)的信息。就好比我們看著說明書安裝電腦硬件一樣,我們就是Windows系統,說明書就是INF文件。INF文件功能非常強大,幾乎能完成日常操作的所有功能。您可以把它看成是Windows系統底下的超強批初理。要熟練掌握和理解甚至是編寫INF文件需要對其內部結構有相當的認識。下面就讓我們來深入到INF文件中的內部一窺其真面貌吧!?
?

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


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

[Strings]
?
Product
="添加文件關聯演示"
?
Version
="1.0"
?
Author
="Xunchi"
?
Copyright
="Copyright?2005"
?
CustomFile
="inf"?;修改您需要的文件名后綴?

Program="NOTEPAD.EXE"?;修改您需要關聯的應用程序名?

[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]節中"Signature"項定義了該INF文件需要運行在何種操作系統版本中。有$Windows?NT$,?$Chicago$,?or?$Windows?95$三個值供選擇,一般選擇$Chicago$即可。項Provider中定義了該文件的創作來源,%Author%指引用Author項的值。您也可自定其它項來描述該INF文件的版本信息。該INF文件的作用是關聯文件,所以主要是對注冊表的操作,我們來看[Add.Reg]節,共四條語句,格式都是一樣。HKCR表示根HKEY_CLASSES_ROOT,第二個參數是子鍵的路徑名,第三個參數是表明值的類型,最后是值(具體見附表)。以上都是對操作的定義與過程,在節[DefaultInstall]
中是開始執行要安裝的流程,AddReg表明是對注冊表進行操作,操作對象是Add.Reg節中的定義。如果您把AddReg換成DelReg則是刪除注冊表中的鍵值。當鼠標單擊該INF文件在彈出的菜單中選擇“安裝”就開始執行您所定義的操作。該示例在系統的INF文件右鍵菜單中增加了查看編輯功能并設置了默認動作,因為在安裝了不了解的INF文件有可能對系統產生不良的影響,這樣雙擊文件就可打開編輯該文件了。?


  再看看INF文件在文件操作方面的能力吧。請看下面的一個例子。?

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

[FileList]
?
ProcessList.exe?
;此文件已在當前目錄下,下同。?


[FileList1]?
Wordpad.exe?
[DestinationDirs]
?
FileList
=11?;安裝到Windows的系統目錄?

FileList1=10?;安裝到Windows目錄?
[DefaultInstall]?
Copyfiles
=FileList,
FileList1?

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


注冊表操作的常量定義:?
----------------------------------------------------------?
常量?根值?
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?擴展字符串類型?
FLG_ADDREG_TYPE_BINARY?二進制值?
FLG_ADDREG_TYPE_DWORD?DWord值?
FLG_ADDREG_TYPE_NONE?NULL值?
----------------------------------------------------------?


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

[DefaultInstall]
節中定義的操作?
----------------------------------------------------------?
LogConfig?Log日志文件配置?
Copyfiles?復制文件?
Renfiles?文件改名?
Delfiles?刪除文件?
UpdateInis?更新Inis?
UpdateIniFields?更新Ini字段?
AddReg?添加注冊項?
DelReg?刪除注冊項?
Ini2Reg?Ini文件轉換為Reg文件?
-----------------------------------------------------------?


INF文件應用示例
一、修改telnet服務,端口改為99,NTLM認證方式為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?

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

二、服務?
===============
?

增加一個服務:?

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

保存為inetsvr.inf,然后:?

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

這個例子增加一個名為inetsvr的服務(是不是很像系統自帶的服務,呵呵)。?

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

刪除一個服務:?

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

很簡單,不是嗎??

當然,你也可以通過導入注冊表達到目的。但inf自有其優勢。?
1
,導出一個系統自帶服務的注冊表項,你會發現其執行路徑是這樣的:?
"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
?
可讀性太差。其實它就是%SystemRoot%/system32/tlntsvr.exe,但數據類型是REG_EXPAND_SZ。當手動導入注冊表以增加服務時,這樣定義ImagePath顯然很不方便。如果用REG_SZ代替會有些問題——不能用環境變量了。即只能使用完整路徑。用inf文件完全沒有這個問題,ServiceBinary(即ImagePath)自動成為REG_EXPAND_SZ。?
2
,最關鍵的是,和用SC等工具一樣,inf文件的效果是即時起效的,而導入reg后必須重啟才有效。?
3
,inf文件會自動為服務的注冊表項添加一個Security子鍵,使它看起來更像系統自帶的服務。?

另外,AddService和DelService以及AddReg、DelReg可以同時且重復使用。即可以同時增加和刪除多個服務和注冊表項。?

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

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

保存為gp.inf,然后導入:?
secedit?/configure?/db?gp.sdb?/cfg?gp.inf?/quiet?


2
、關閉所有的“審核策略?

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權限?
====================
?

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.*

總結

以上是生活随笔為你收集整理的[转]如何编写 INF 文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品一区二区三区不卡 | 波多野结衣毛片 | 97se在线视频 | 少妇被又大又粗又爽毛片久久黑人 | 动漫美女被吸奶 | 中文字幕第6页 | 欧美又粗又大aaa片 老熟妇仑乱视频一区二区 亚洲妇女体内精汇编 | 日本熟妇色xxxxx日本免费看 | 国产又粗又猛视频免费 | 99久久精品国产成人一区二区 | 亚洲欧美日韩高清 | 日韩三级国产精品 | 亚洲精品中文字幕在线播放 | 国产一区二区视频在线观看免费 | 国内外免费激情视频 | va免费视频 | 小珊的性放荡羞辱日记 | 91成人综合| 亚洲天堂2024 | 亚洲一区二区高清 | 蜜桃视频网站 | 成年人网站在线免费观看 | 亚洲乱妇 | 中文字幕亚洲欧美 | 91.xxx.高清在线 | 天堂av日韩 | 日韩美女激情视频 | www.四虎.com| 精品国产精品网麻豆系列 | 成年人黄色免费视频 | 欧美三级 欧美一级 | 天天干天天做天天操 | 男生草女生视频 | 黄色短视频在线观看 | 在线观看的黄网 | 北京少妇xxxx做受 | 中国女人性猛交 | 国产白浆在线观看 | 色综合一区二区 | 两个人看的www视频免费完整版 | 亚洲精品www| 国产在线中文 | 日本一区二区三区精品 | xxxx久久 | 美女视频黄色在线观看 | 亚洲欧洲综合网 | 91黄色免费版 | 91视频看| 俺去俺来也在线www色官网 | 国产午夜福利一区 | 伊人影院综合在线 | 97小视频 | 国产精品h | 亚洲国产精品一区 | 成在人线av| 午夜av电影在线观看 | 男人和女人做爽爽视频 | 国产精品视频在线观看 | 在线播放你懂得 | 伊人黄| 日韩精品免费一区二区三区竹菊 | 精品国产乱码久久久久久图片 | jizz性欧美15 | 99热精品在线观看 | 国产又粗又猛又爽又黄的视频小说 | 中文字幕av一区二区三区 | 色婷av | 性xxxx搡xxxxx搡欧美 | 亚洲a√| 一本大道久久精品 | 91成人免费在线观看视频 | 麻豆一区在线 | 97超碰碰碰 | 国产超碰在线 | 天天干天天天天 | 精品在线播放视频 | 欧美97 | 黑鬼巨鞭白妞冒白浆 | 国产精品人人妻人人爽人人牛 | 色狠狠久久av大岛优香 | 国产一区资源 | 亚洲123区| 中国男女全黄大片 | 国产农村妇女毛片精品久久 | 亚洲天堂视频网站 | 青青操操| 精品少妇人妻av免费久久洗澡 | 国产女人高潮毛片 | 天天摸天天做天天爽 | 日韩精品视频免费 | 国产又粗又长又硬免费视频 | 性欧美jzjz2 九草影院 | 日韩人妻精品一区二区 | 成人综合区一区 | 欧美资源 | 91啪国产 | 一区二区免费av | 亚洲精品高清在线 | 日韩av在线一区二区三区 |