Формат файлу модуля

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Файл модуля PEBuilder

Основним .inf файлом PE Builder являеться файл pebuilder.inf.Даний файл не рекомендується змінювати!
При необхідності внести зміни можливо використовуючи файл модуля.Всі модулі знаходяться каталозі plugin. Кожний .inf файл в каталозі plugin, що містить розділ "PEBuilder" вважається модулем PE Builder. Використовуйте кнопку Подключить/Откл...
у вікні Модулів для підклучення чи відключення модулів.



Створення модуля

Кодування .inf файлу модуля повинно бути ASCII, а не Unicode. Рядки, що розпочинаються з ";" ігноруються (використовоються для коментарів). Кожний файл модуля повинен розпочинатися із наступних рядків:

; PE Builder v3 plug-in INF file
; Created by Bart Lagerweij
; http://www.nu2.nu/pebuilder/
;
; Short description of what the plugin does...

[Version]
Signature= "$Windows NT$"

[PEBuilder]
Name="NiceNameOfPlugin"
Enable=0
Help="pluginhelp.htm"

Зверніть увагу, що необхідно вімкнути в файл розділ [Version] із рядком Signature= "$Windows NT$". В іншому випадку .inf файл не буде розпізнаний функцією установки.

Для створення модулів необхідно використовувати наступні команди:

Розділ PEBuilder

При створені .inf файл повинен містити розділ [PEBuilder]!

Name Назва модуля
Enable статус модуля

0 - Відключений

1 - Підключений
Help імя файлу допомоги для модуля. Це може бути текстовий, html, doc, pdf або будь-який інший тип файлу. PE Builder використовує функцію ShellExecute() для відкриття документу згідно асоціації файлу по замовченню.
Config імя файлу конфігурації



Розділ WinntDirectories

Розділ WinntDirectories має наступний формат:
directoryID=dirname[, attribute]
де...

directoryID ідентифікатор (номер) каталогу
В .inf файлі модуля можливо використовувати символи 'a'-'z' для динамічного привласнення номеру...
dirname імя каталогу. Якщо в імені каталогу міститься пробіли, їх необхідно заключити його в "подвійні кавички".
attribute числове значення для вмикання/вимикання деяких опцій

Значення:
1 - Завжди створювати дану теку (навіть якщо вона порожня)
2 - Створювати теку в кореневому калалозі (в \ а не в \i386).
Для комбінації опцій, необхідно просто додати їх значення...

Значення по замовченню - 0.


Приклад: [WinntDirectories]

Завжди створювати теку в кореневому каталозі з іменем "BartPE"

a="BartPE",3

Створювати теки в кореневому каталозі "Project\BartPE\Source"

b="Project\BartPE\Source",3

Створювати теки в каталозі i386 з назвою "extra\files"

c="extra\files",1


Список деяких (найбільш використовуваних) ідентифікаторів каталогів:

ID Каталог Примітка
30000 [кореневий] Кореневий каталог призначення PE Builder
1\ Кореневий каталог системи (на CD це каталог \i386, на жорстком диску це каталог \minint)
2system32
3system32\config
4system32\drivers
5system
17system32\drivers\etc
20inf
21Help
22Fonts
24msagent\intl
52msagent
124WinSxS
125WinSxS\Manifests
252WinSxS\Policies


PE Builder використовує ідентифікатори каталогів, що розпочинаються з 30000. Ідентифікатор 30000 використовується для позначення каталогу призначення, 30001 та вище динамічно використовуються РE Builder.

Розділ SourceDisksFiles


Цей розділ використовується для копіювання файлів.Під час добавлення номеру збірки операційної системи після назви розділу,цей розділ буде використовуватись тільки в тому випадку, якщо джерело відповідає вказаній збірці.

Збірка Версія
2600Windows XP
3790Server 2003


Розділ SourceDisksFiles має наступний формат:
filename=directoryID[, filenameRenamed][, attribute]

де...

filename імя файлу для копіювання
directoryID номер (ідентифікатор) цільового каталогу.
filenameRenamed цільове імя файлу, якщо потрібго перейменування.
attributeчислове значення для вмикання/вимикання деяких опцій

значення:
1 - використовується для функції pluginCheck(). Перевіряє, чи існує вказаний файл в тій же текі, де знаходиться .inf файл перед підключенням або продовженням роботи.
2 - не виконує розпакування файлу.
4 - копіювати файл тільки в тому випадку, якщо він існує. Ігнорувати якщо файл відсутній.
8 - змінити імя файлу в верхній регістр. При створені ISO-образу PE Builder змінює регістр імен файлів у верхній, що необхідно для завантаження з CD.

Значення за замовченням - 0.




Приклад: [WinntDirectories]

Завжди створювати теку в кореневому каталозі з іменем "BartPE"

a="BartPE",3

Створювати теки в кореневому каталозі "Project\BartPE\Source"

b="Project\BartPE\Source",3

Створювати теки в каталозі i386 з назвою "extra\files"

c="extra\files",1


Список деяких (найбільш використовуваних) ідентифікаторів каталогів:

ID Каталог Примітка
30000 [кореневий] Кореневий каталог призначення PE Builder
1\ Кореневий каталог системи (на CD це каталог \i386, на жорстком диску це каталог \minint)
2system32
3system32\config
4system32\drivers
5system
17system32\drivers\etc
20inf
21Help
22Fonts
24msagent\intl
52msagent
124WinSxS
125WinSxS\Manifests
252WinSxS\Policies


PE Builder використовує ідентифікатори каталогів, що розпочинаються з 30000. Ідентифікатор 30000 використовується для позначення каталогу призначення, 30001 та вище динамічно використовуються РE Builder.
Розділ SourceDisksFiles


Цей розділ використовується для копіювання файлів.Під час добавлення номеру збірки операційної системи після назви розділу,цей розділ буде використовуватись тільки в тому випадку, якщо джерело відповідає вказаній збірці.

Збірка Версія
2600Windows XP
3790Server 2003


Розділ SourceDisksFiles має наступний формат:
filename=directoryID[, filenameRenamed][, attribute]

де...

filename імя файлу для копіювання
directoryID номер (ідентифікатор) цільового каталогу.
filenameRenamed цільове імя файлу, якщо потрібго перейменування.
attributeчислове значення для вмикання/вимикання деяких опцій

значення:
1 - використовується для функції pluginCheck(). Перевіряє, чи існує вказаний файл в тій же текі, де знаходиться .inf файл перед підключенням або продовженням роботи.
2 - не виконує розпакування файлу.
4 - копіювати файл тільки в тому випадку, якщо він існує. Ігнорувати якщо файл відсутній.
8 - змінити імя файлу в верхній регістр. При створені ISO-образу PE Builder змінює регістр імен файлів у верхній, що необхідно для завантаження з CD.

Значення за замовченням - 0.


Розділ SourceDisksFolders


Цей розділ використовується для копіювання тек з файлами. При додаванні номеру збірки операційної системи

після назви розділу, цей розділ буде використовуватись тільки в тому випадку, якщо джерело відповідає вказаній збірці.</p>

Розділ SourceDisksFolders має наступний формат:
sourcepath=directoryID

де...

sourcepath шлях/тека в джерелі для копіювання. Це точна копія, не виконується декомпресій або видобування файлів!
directoryID номер (ідентифікато) цільвого каталогу.


Приклад: [WinntDirectories] a="Programs\openoffice",2 [SourceDisksFolders]

Коли тека openoffice являється каталогом модуля

openoffice=a [SourceDisksFolders]

Коли тека openoffice знаходиться в c

c:\openoffice=a

Розділ Software.AddReg

Додавання ключів реєстру в HKEY_LOCAL_MACHINE\SOFTWARE.

Розділ має наступний формат:
regType, regKey, regValue, regData

де...

regType визначає тип інформації, що буде зберігатись як значення даних.

Цей параметр може мати одне із наступних значень:
0x0, (REG_NONE) створити тільки ключ, значення ні
0x1, (REG_SZ) рядок
0x2, (REG_EXPAND_SZ) рядок (з переліком змінних середовища)
0x3, (REG_BINARY) двійкові дані
0x4, (REG_DWORD) 32-бітний номер
0x7, (REG_MULTI_SZ) декілька рядків

  • Примітка: <regType> повинно розпочинатись з "0x" (в нижньому регістрі)!
regKey визначає назву ключа як рядок
regValue визначає назву значення як рядка
regData значення


Приклад:
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"

Розділ SetupReg.AddReg
SetupReg.AddReg[.build]

Додавання ключів реєстру в вітку реєстру "SetupReg.hiv" .
Синтаксис відповідає розділу Software.AddReg


Розділ Default.AddReg

Default.AddReg[.build]

Додавання ключів реєстру в HKEY_CURRENT_USER.
Синтаксис відповідає розділу Software.AddReg

Розділ Software.DelReg
Software.DelReg[.build]

Видалення ключів реєстру із вітки реєстру "Software".
Розділ має наступні формат:
regKey[, regValue]


де...

regKey визначає назву ключа для видалення (включаючи всі значення) як рядок.
regValue визначає назву значення для видалення як рядок.


Розділ Default.DelReg
Default.DelReg[.build]

Видалення ключів реєстру із вітки реєстру "Default".
Синтаксис відповідає розділу Software.DelReg



Розділ AddLine
AddLine[.build]

Додавання рядків в розділ.
Рядки в розділі AddLine мають наступний формат:
Filename,Section,StringToAdd

де...

Filename імя файлу, в який необхідно додати рядки.
Section назва розділу.
LineToAdd рядок для додавання розділу.


Приклад:
"netmscli.inf", "MSClient.DelReg", "HKLM, Software\Microsoft\Rpc\SecurityService, 9"

Розділ DelLine
DelLine[.build]

Видалення рядків із файлу.
Рядки в розділі DelLine мають наступний формат:
Filename,Section,StringToDel

де...

Filename імя файлу, із якого необхідно видалити рядки.
Sectionназва розділу.
StringToDel рядок для видалення. Не вимагається точного співпадання, будь-які рядки, що розпочинаються з "StringToDel" ,будуть видалені.


Приклад:
"netmscli.inf", "MSClient.Browser.AddReg", "HKR, Parameters, MaintainServerList,"

Розділ SetValue
SetValue[.build]

Записує значення в файл.
Рядки в розділі SetValue мають наступний формат:
Filename,Section,Key,Value

де...

Filename імя файлу, в який буде виконуватись запис значення.
Sectionназва розділу.
Key Ключ,в який буде записуватись значення.
Value дані.


Приклад:
"netmscli.inf", "Alerter_Service_Inst", "StartType", "3"

Використовуйте Filename,Section,Key для видалення ключа
Використовуйте Filename,Section для видалення всього розділу

Розділ Append
Append[.build]

Додає файл до іншого файлу.
Рядки в розділі Append мають наступний формат:
Filename,FilenameToAppend

де...

Filename імя файлу, в який здійсниться додбавлення даних.
FilenameToAppend імя файлу, що містить дані для добавлення.


Приклад:
nu2menu.xml, penero_nu2menu.xml

Змінні
В більшості рядків файлу модуля можуть використовуватись спеціальні змінні PE-Builder:
Синтаксис: @variable@
де...

змінна являїться...
Program Містить програми-складальника (за замовченням PE-Builder)
Version Версія програми-складальщика
IsoFile Повний шлях та імя файлу ISO-образу
OutDir Повний шлях до коталогу призначення
SourcePath Повний шлях до коталогу джерела
PluginDir Повний шлях до коталогу даного модуля
PluginFile Повний шлях та імя файлу даного файлу модуля
Language Мова, вибрана в даний час
Verbose Інформаційний режим (0 - ввімкнений, 1 - вимкнений)
Build Номер збірки Windows (2600 відповідає XP,
3790 відповідає Server 2003)


Приклад:
[SourceDisksFiles]
program.exe=2,,3
lang\@[email protected]=2,,3

Де lang\@[email protected] буде lang\ukrainian.lng (якщо вибрано українську мову).