Что такое формат файла LNK?
Файлы .lnk - это файлы ярлыков, используемые в системе Windows. Они содержат информацию о типе и местоположении цели (идентифицируемой локальным путем, общим ресурсом UNC или списком Shell Item ID), а также о связанной программе.
Файлы .lnk могут содержать дополнительную пользовательскую информацию. Если они связаны с приложением .exe, они также могут указывать атрибуты начального запуска программы, такие как состояние окна, рабочая директория и аргументы командной строки. В Windows файлы .lnk отображают ту же иконку, что и их целевой файл. Расширение .lnk по умолчанию скрыто в имени файла и не отображается в Проводнике.
Бинарный формат документирован Microsoft как спецификация MS-SHLLINK (опубликована в 2010 году). Каждый файл .lnk начинается с фиксированного 76-байтового заголовка: магические байты 4C 00 00 00, за которыми следует фиксированный CLSID класса shell link. Связанные форматы ярлыков включают .url (интернет-ярлык) и .pif (ярлык для устаревших программ DOS).
Когда ярлык .lnk перестает работать
Изменение некоторых параметров целевого файла - например, его имени или местоположения - приводит к неработоспособности всех ссылающихся на него ярлыков. Изменение букв дисков или сопоставлений сетевых ресурсов также может привести к исчезновению ярлыков на рабочем столе. Windows включает службу отслеживания ссылок, которая пытается восстановить битые ярлыки автоматически; если это не удается, рекомендуется заново создать ярлык или обновить путь к цели через диалоговое окно «Свойства».
Безопасность и защита
РИСК: HIGHLNK - один из наиболее часто используемых форматов для первичного доступа злоумышленников в Windows. Ярлык может незаметно запускать cmd/PowerShell с аргументами под контролем атакующего и поддельной иконкой (PDF, папка); с тех пор как Microsoft заблокировала интернет-макросы Office в 2022 году, LNK внутри ZIP/ISO вложениях электронной почты стал основным вектором заражения. Исторические уязвимости LNK включают CVE-2010-2568 (Stuxnet, выполнение кода при парсинге иконок) и ZDI-CAN-25373 / CVE-2025-9491 - аргументы с отступами пробелами, скрывающие реальную команду в диалоге свойств, которые использовались более чем 11 государственными хакерскими группами с ~2017 года и были исправлены Microsoft только в обновлениях за ноябрь 2025 года. Правила для пользователей: никогда не открывайте .lnk, пришедшие по почте или на USB, проверяйте их с помощью LECmd/ExifTool и обновляйте Windows. «Вирус-ярлык» на USB-накопителях скрывает папки и заменяет их вредоносными ярлыками - лечите сканированием антивирусом и командой attrib, а не просто удаляйте ссылки.
Детали формата
в двух словахПрограммы, открывающие файлы LNK
HKCU\...\FileExts\.lnk\UserChoice и перезапустите Проводник. LECmd.exe -f file.lnk - выводит полные метаданные (цель, временные метки, ID машины) без выполнения чего-либо; стандарт криминалистики. exiftool file.lnk безопасно выводит путь к цели, аргументы и метаданные машины (без запуска); также работает на macOS/Linux. exiftool file.lnk безопасно выводит путь к цели, аргументы и метаданные машины (без запуска); также работает на macOS/Linux. liblnk-utils, затем выполните lnkinfo file.lnk, чтобы просмотреть цель и метаданные ярлыка. exiftool file.lnk безопасно выводит путь к цели, аргументы и метаданные машины (без запуска); также работает на macOS/Linux. Технические подробности
глубокая спецификация| Тип контейнера | Бинарный заголовок фиксированной длины (76 байт), за которым следуют блоки необязательных данных переменной длины |
| Магические байты | 4C 00 00 00 01 14 02 00 … C0 00 … 46 - первые 4 байта кодируют размер заголовка; байты 4-19 содержат фиксированный CLSID класса shell link, оба по смещению 0 |
| MIME-тип | application/x-ms-shortcut |
| Порядок байтов | Little-endian во всех числовых полях |
| Кодировка строк | Кодовая страница (ANSI) или Unicode (UTF-16 LE); флаг в ShellLinkHeader указывает, какая кодировка используется |
| Типы ссылок на цель | Локальный путь к файлу или папке, сетевой путь UNC, корень тома или путь с развернутыми переменными окружения через EnvironmentVariableDataBlock |
| Ключевые структуры данных | ShellLinkHeader, LinkTargetIDList (ITEMIDLIST), LinkInfo, блоки StringData, блоки ExtraData - все необязательны, кроме заголовка |
| Поле состояния окна | ShowCommand в заголовке: 1 = Обычное, 3 = Развернутое, 7 = Свернутое |
| Поле горячих клавиш | 16-битное значение в заголовке, объединяющее код VirtualKey с флагами модификаторов (Shift, Ctrl, Alt) |
| Поддержка относительных путей | Необязательная строка RelativePath позволяет оболочке Windows самостоятельно восстанавливать битый ярлык, если цель перемещена в пределах того же тома |
| Встроенные временные метки цели | Значения FileTime для создания, последней записи и последнего доступа к цели хранятся в LinkInfo, что делает файлы .lnk ценными артефактами в цифровой криминалистике |
| Хранение иконок | Отдельная строка пути IconLocation плюс целое число IconIndex, указывающее на ресурс иконки внутри этого файла |
| Видимость расширения | По умолчанию скрыто оболочкой Windows; управляется значением HideFileExt в разделе HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced |
| История безопасности | Использовался Stuxnet (CVE-2010-2568): вредоносные файлы .lnk вызывали выполнение кода во время отрисовки иконки; исправлено в MS10-046 (август 2010) |
| Поддержка платформ | Нативная поддержка в Windows 95 и всех последующих версиях Windows; возможность парсинга в Linux и macOS через liblnk (lnkinfo) и ExifTool |
| Выпущен | 1995 (Windows 95); binary format publicly documented since 2010 as MS-SHLLINK |
| Открыть стандартное | Да · без роялти |
| Спецификация | learn.microsoft.com |
Конвертации LNK
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах LNK.
Часто задаваемые вопросы
Все мои файлы превратились в ярлыки .lnk - как мне их вернуть?
attrib -h -r -s /s /d X:\*.* (замените X: на букву вашего диска). После этого удалите оставшиеся файлы .lnk.Каждый ярлык теперь открывается через Блокнот/Word - как исправить ассоциацию .lnk?
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice, затем перезапустите Проводник или перезагрузите компьютер.Опасен ли файл .lnk?
Как посмотреть, на что указывает ярлык?
Можно ли открыть файл .lnk от Windows на Mac или Linux?
Почему я не вижу расширение .lnk, даже если расширения включены?
NeverShowExt для типа lnkfile, поэтому ярлыки показывают только значок с изогнутой стрелкой. Вредоносное ПО злоупотребляет этим, чтобы маскировать «invoice.pdf.lnk» под «invoice.pdf».