.PIF вариант №
Файл PIF состоит из информации, используемой для определения того, как должна работать программа на основе MS-DOS. Его также можно использовать как ярлык исполняемого файла, и обычно он создается, когда пользователь создает ярлык для программы DOS или обновляет свойства программы. Microsoft Windows распознает файлы PIF как исполняемые программы, и их можно запускать как другие программы для DOS. Файлы PIF сегодня обычно не используются в программном обеспечении из-за отсутствия приложений DOS.
Формат PIF-файла
Файл PIF в основном состоит только из одного блока данных, в котором хранятся параметры, необходимые для выполнения в TopView. Для переключателей, например, следует ли выключать окно при завершении программы, поля для заголовка окна включают максимальный и минимальный объем ОЗУ и растровых изображений. Разработчики столкнулись с проблемой, что появились дополнительные переключатели, которые не касались TopView, когда система была адаптирована для использования под Windows. Вместо включения новых переключателей в конец файла они создают файл как файл базы данных, содержащий любое количество записей. Таким образом, файл состоял из нескольких областей заголовков, описывающих, какая операционная система должна читать раздел, и смещения к следующему разделу. Системы будут читать список, пока не найдут наиболее подходящий. Поэтому эта теория оставила проблему обратной совместимости. Наконец, файл был переупорядочен, и первый заголовок появился после начальных данных, в результате чего первые 253 байта файла остались в том же формате, что и раньше.
Пример PIF
Вот шестнадцатеричное представление файла PIF:
0000000: 0078 494e 5354 414c 4c20 2020 2020 2020 .xINSTALL 0000010: 2020 2020 2020 2020 2020 2020 2020 2020 0000020: 8002 0000 433a 5c74 656d 705c 7465 6d70 ....C:\temp\temp 0000030: 335c 494e 5354 414c 4c2e 4558 4500 0000 3\INSTALL.EXE... 0000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000e0: 0000 0000 0000 0100 ff19 5000 0007 0000 ..........P..... 00000f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000170: 004d 4943 524f 534f 4654 2050 4946 4558 .MICROSOFT PIFEX 0000180: 0087 0100 0071 0157 494e 444f 5753 2033 .....q.WINDOWS 3 0000190: 3836 2033 2e30 0005 029d 0168 0080 0200 86 3.0.....h.... 00001a0: 0064 0032 00ff ff00 00ff ff00 0002 1002 .d.2............ 00001b0: 001f 0000 0000 0000 0000 0000 0000 0000 ................ 00001c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00001f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000200: 0000 0000 0057 494e 444f 5753 2056 4d4d .....WINDOWS VMM 0000210: 2034 2e30 00ff ff1b 02ac 0100 0000 0000 4.0............ 0000220: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000230: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000240: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000250: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000260: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000270: 0000 0050 4946 4d47 522e 444c 4c00 0000 ...PIFMGR.DLL... 0000280: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000290: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00002a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00002b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00002c0: 0000 0000 0002 0000 0000 0000 0000 0000 ................ 00002d0: 0032 0001 0000 0000 0000 0000 0000 0001 .2.............. 00002e0: 0000 0005 0019 0003 00c8 00e8 0302 000a ................ 00002f0: 0001 0000 0000 0000 001c 0000 0000 0000 ................ 0000300: 0008 000c 0054 6572 6d69 6e61 6c00 0000 .....Terminal... 0000310: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000320: 0000 0000 004c 7563 6964 6120 436f 6e73 .....Lucida Cons 0000330: 6f6c 6500 0000 0000 0000 0000 0000 0000 ole............. 0000340: 0000 0000 0000 0003 0000 0050 0019 0080 ...........P.... 0000350: 022c 018c 0267 0116 0000 0001 00ff ffff .,...g.......... 0000360: ffff ffff ffae 0626 013a 098d 0200 0000 .......&.:...... 0000370: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000380: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000390: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00003a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00003b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00003c0: 0000 0000 0001 00 .......