无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2621|回复: 2
打印 上一主题 下一主题

BartPE中的inf文件制作说明

[复制链接]
跳转到指定楼层
1#
发表于 2005-9-5 17:21:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我在别处摘抄的,文章下面有著者,我希望大家多交流。

下面我們來看一下外掛程式中.inf文檔的構造。
這是一個WinRAR.inf的例子:
=======================================================================
; WinRAR.inf
; PE Builder v3 plug-in INF file for WinRAR v3.30
; Created by Cybervyk
; http://www.nu2.nu/pebuilder/
[Version]
Signature= "$Windows NT$"
[PEBuilder]
Name="WinRAR"
Enable=1
Help="WinRAR.htm"
[WinntDirectories]
a=Programs\WinRAR,2------------------------------------------------------設定目錄ID
b=Programs\WinRAR\formats,2----------------------------------------------設定目錄ID
[SourceDisksFiles]―――――――――――――――――――――――――――複製檔案
RarExt.dll=a,,1
rarnew.dat=a,,1
rarreg.key=a,,1
WinRAR.cnt=a,,1
WinRAR.exe=a,,1
zipnew.dat=a,,1
Default.SFX=a,,1
Dos.SFX=a,,1
WinCon.SFX=a,,1
Zip.SFX=a,,1
RarFiles.lst=a,,1
formats\ace.fmt=b,,1
formats\arj.fmt=b,,1
formats\bz2.fmt=b,,1
formats\cab.fmt=b,,1
formats\gz.fmt=b,,1
formats\iso.fmt=b,,1
formats\lzh.fmt=b,,1
formats\tar.fmt=b,,1
formats\UNACEV2.DLL=b,,1
formats\uue.fmt=b,,1
[Software.AddReg]
0x1, "Classes\.ace",,"WinRAR"
0x1, "Classes\.arj",,"WinRAR"
0x1, "Classes\.bz",,"WinRAR"
0x1, "Classes\.bz2",,"WinRAR"
0x1, "Classes\.cab",,"WinRAR"
0x1, "Classes\.gz",,"WinRAR"
0x1, "Classes\.iso",,"WinRAR"
0x1, "Classes\.jar",,"WinRAR"
0x1, "Classes\.lha",,"WinRAR"
0x1, "Classes\.lzh",,"WinRAR"
0x1, "Classes\.rar",,"WinRAR"
0x1, "Classes\.rar\ShellNew","FileName","%SYSTEMDRIVE%\Programs\WinRAR\rarnew.dat"
0x1, "Classes\.rev",,"WinRAR.REV"
0x1, "Classes\.tar",,"WinRAR"
0x1, "Classes\.tbz",,"WinRAR"
0x1, "Classes\.tbz2",,"WinRAR"
0x1, "Classes\.tgz",,"WinRAR"
0x1, "Classes\.uu",,"WinRAR"
0x1, "Classes\.uue",,"WinRAR"
0x1, "Classes\.xxe",,"WinRAR"
0x1, "Classes\.zip",,"WinRAR"
0x1, "Classes\.zip\ShellNew","FileName","%SYSTEMDRIVE%\Programs\WinRAR\zipnew.dat"
0x1, "Classes\WinRAR",,"WinRAR archive"
0x1, "Classes\WinRAR\DefaultIcon",,"%SYSTEMDRIVE%\Programs\WinRAR\WinRAR.exe,0"
0x1, "Classes\WinRAR\shell\open\command",,"%SYSTEMDRIVE%\Programs\WinRAR\WinRAR.exe %1"
0x1, "Classes\WinRAR.REV",,"RAR recovery volume"
0x1, "Classes\WinRAR.REV\DefaultIcon",,"%SYSTEMDRIVE%\Programs\WinRAR\WinRAR.exe,1"
0x1, "Classes\WinRAR.REV\shell\open\command",,"%SYSTEMDRIVE%\Programs\WinRAR\WinRAR.exe %1"
0x1, "Classes\WinRAR.ZIP\DefaultIcon",,"%SYSTEMDRIVE%\Programs\WinRAR\WinRAR.exe,0"
0x1, "Classes\WinRAR.ZIP\shell\open\command",,"%SYSTEMDRIVE%\Programs\WinRAR\WinRAR.exe" "%1
[Default.AddReg]
0x0, "Software\WinRAR\General\Toolbar\Layout"
0x1, "Software\WinRAR\Paths","TempFolder","%temp%"
========================================================================
以下為inf的敘述:
[Version] Signature= "$Windows NT$" 這兩行訊息必須加入到開新文件檔案中,否則inf檔案就無法使用,[Version]之上可按照自己的需要加入註釋(行前加分號),加入內容完畢後將其存為.inf檔案,這個外掛程式顯然還不能做任何事情,下面我們還要加入其它部分。 [PEBuilder] 每個外掛程式的inf檔案都必須包含這一部分,此部分有3個引數。 “Name”是外掛程式標簽,即在PE Builder中顯示的標簽。 “Enable”是外掛程式的內定初始狀態,0表示外掛程式在PE Builder中非活化,1則表示外掛程式在PE Builder中內定活化。”Help”是這個外掛程式的說明檔案,這個可以省略。
以分號“;”開始的每行是作為註釋或是說是可以被忽略,不會被執行的內容。
[WinntDirectories]此部分使用固定述句格式:directoryID=dirname[,attribute]
directoryID是要建立的目錄ID,可以用字母a到z表示。

dirname是要建立的目錄標簽,如果目錄標簽中含有空格,需要在前後使用雙引號。
attribute一般可以用這麼幾個值 (1,2,3),
1 - 表示在i386\下建立目錄,而無論該目錄是否為空;
2 - 表示在光碟基本目錄下建立目錄,但如果該目錄是空的話,則不會建立;
3 - 表示在光碟基本目錄下建立目錄,而無論目錄是否為空;
如果沒有使用上面這3個值的話,內定的值是0,表示在i386\下建立目錄,但如果該目錄是空的話,則不會建立。
例如:
[WinntDirectories]
a=repair
表示在i386\下建立一個非空的目錄repair;
b=com,1
表示總是在i386\下建立一個目錄com;
c=" programs\my documents ",2
表示在光碟基本目錄下建立一個非空的目錄programs\my documents;
d=programs\winrar,3
表示總是在光碟基本目錄下建立一個目錄programs\winrar。
[SourceDisksFiles]的作用是複製檔案,
格式為:filename=directoryID[,filenameRenamed][,attribute]
filename表示要複製的檔標簽;
directoryID表示目的目錄ID;
filenameRenamed表示目的檔案標簽,如果和來源檔案相同的話可以省略;
attribute可以用這麼幾個值 (1,2,4),預設值是0。(這幾個值有什麼區別還不太清楚。)一般情況下使用2就可以了。
[SourceDisksFolders]的作用是複製整個資料夾,格式是sourcepath=directoryID
sourcepath表示來源檔案夾的路徑;
directoryID表示目的目錄ID。



例如:
[WinntDirectories]
a=programs\winrar,2
[SourceDisksFiles]
rar.exe=2------------------------(此檔案已經在pebulider裡面pulgin資料夾下的Winrar目錄裡面)
表示把rar.exe複製到i386\system32目錄下;
unrar.exe=a
表示把unrar.exe複製到programs\winrar目錄下;
c:\winrar\winrar.exe=a――――――――――――(這是從任意目錄複製所有文檔的指令)
表示把c:\winrar\winrar.exe複製到programs\winrar目錄下;
[SourceDisksFolders]
c:\winrar=a
表示把c:\winrar下的所有檔案和資料夾複製到programs\winrar目錄下。
在這裡列出常用的幾個系統目錄ID,更詳細的可以參考XP裝設光碟上的txtsetup.sif檔案。
1 = i386
2 = i386\system32
4 = i386\system32\drivers
20 = i386\system32\inf
22 = i386\fonts
[Default.AddReg] -對應HKCR\.DEFAULT
[Software.AddReg] -對應HKLM\SYSTEM
[Setup.AddReg] -對應HKLM\SOFTWARE
這3項的作用是加入相應的註冊表內容,格式都是:regType, regKey, regvalue, regData
regType的值及其含義如下:
0x0 --- REG_NONE
0x1 --- REG_SZ
0x2 --- REG_EXPAND_SZ
0x3 --- REG_BINARY
0x4 --- REG_DWORD
0x7 --- REG_MULTI_SZ
例如:
[Software.AddReg]
0x1, "Microsoft\Windows NT\CurrentVersion\Fonts", "Tahoma (TrueType)","TAHOMA.TTF"
0x2, "Control Panel\desktop", "WallPaper", "%systemroot%\system32\nu2.bmp"
0x3, "ControlSet001\Control\TimeZoneInformation", "DaylightStart",\
00,00,04,00,00,01,00,02,00,00,00,00,00,00,00,00
0x4, "ControlSet001\Control\GraphicsDrivers\DCI", "Timeout", 0x7
0x7, "ControlSet001\Services\VgaSave\Device0", "InstalledDisplayDrivers","vga", "framebuf", "vga256", "vga64k"
[Software.DelReg]和[Default.DelReg] 這裡是加入相關的註冊表的鍵值,這是最複雜的步驟,如果是綠色軟體我們就可以簡化這個程序了。我們要在軟體裝設的程序中監視註冊表,裝設完畢後在提取相應註冊表中的相關鍵值。這個程序我們可以使用Install Watch Pro和ConvReg To Inf這兩個軟體來輔助說明我們完成這項工作,Install Watch Pro可以在裝設程序中監視註冊表,然後將註冊表提取出來,同時用ConvReg To Inf將Reg文檔轉換PE辨識的Inf檔案,這樣可以大大減少我們的工作量。

這兩項是移除相關的註冊表鍵值。格式是regKey[.regvalue]
[AddLine][.build]
這一項的作用是在指定的windows系統的inf檔案中加入內容。格式是Filename,Section,StringToAdd
例如:
[AddLine.2600]
"netmscli.inf", "MSClient.DelReg", "HKLM, Software\Microsoft\Rpc\SecurityService, 9"
[DelLine][.build]
這一項的作用是在指定的windows系統的inf檔案中移除內容。格式是Filename,Section,StringToDel
例如:
[DelLine.3790]
"netmscli.inf", "MSClient.Browser.AddReg", "HKR, Parameters, MaintainServerList,"
[Setvalue][.build]
這一項的作用是改變指定的windows系統中的inf文檔的某一項內容。
格式是:Filename,Section,Key,value
例如:
[Setvalue.2600]
"netmscli.inf", "Alerter_Service_Inst", "StartType", "3"
如果使用Filename,Section,Key這樣的格式,則是移除相應的Key;
如果使用Filename,Section這樣的格式,則是移除相應的整個Section

[ 此貼被冷月之輪在2005-03-26 12:14重新編輯 ]
2#
发表于 2014-1-17 14:13:14 | 只看该作者
学习了,谢谢!
回复

使用道具 举报

3#
发表于 2015-9-5 23:37:11 | 只看该作者
顶起
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-21 21:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表