В UDS-диагностике неизбежен вопрос безопасного доступа — Seed&Key. Диагностический модуль TSMaster загружает алгоритм Seed&Key из DLL-файла для разблокировки защищённого доступа. Начиная с версии TSMaster 2024.03 поддерживаются не только DLL на C/C++ и Delphi, но и DLL на платформе .NET — C#, VB.Net и других языках. Разбираем упаковку алгоритма на C++ и C#.
Ключевые слова: UDS, Seed&Key, DLL, шаблонный проект, C++, C#, .NET.
В установочном каталоге TSMaster есть шаблонные проекты Visual Studio для упаковки алгоритма Seed&Key на двух языках — C++ и C#. Разработав алгоритм на основе шаблона, вы получите DLL, которую TSMaster загружает напрямую.
1. Упаковка алгоритма Seed&Key на C++
- Шаг 1. Откройте папку интерфейсного проекта Seed&Key в установочном каталоге TSMaster (рис. 1-1). Скопируйте проект и добавьте в него свой алгоритм Seed&Key.
- Шаг 2. Для упаковки алгоритма на C++ в DLL выберите и откройте проект по пути Win32DLL → GenerateKeyEx (рис. 1-2).
- Шаг 3. Чтобы диагностический модуль TSMaster мог загрузить DLL напрямую, она должна реализовывать один из четырёх интерфейсов функций из файла
seedNKeyDiag.cppвнутри проекта (рис. 1-3, 1-4). - Шаг 4. Напишите тестовый код по интерфейсу 1 (рис. 1-5, 1-6), выберите конфигурацию Release и платформу x86, затем правой кнопкой по проекту — «Собрать решение» (рис. 1-7).
- Шаг 5. После сборки готовый DLL-файл появится в папке проекта в каталоге
x86 → Release(рис. 1-8). - Шаг 6. Загрузите готовую DLL и воспользуйтесь проверщиком DLL, чтобы убедиться, что интерфейс загруженной библиотеки корректен (рис. 1-9).









2. Упаковка алгоритма Seed&Key на C#
- Шаг 1. Шаги аналогичны упаковке на C++: выберите и откройте проект по пути DotNet → GenerateKeyEx (рис. 2-1).
- Шаг 2. В исходном файле
uGenerateKeyExNet.csпредставлены три поддерживаемых типа C#-интерфейсов — реализуйте один из них (рис. 2-2, 2-3). - Шаг 3. Напишите тестовый код по интерфейсу 1 (рис. 2-4), выберите Release и пересоберите решение (рис. 2-5).
- Шаг 4. После сборки готовая DLL появится в папке проекта в каталоге
bin → Release(рис. 2-6). - Шаг 5. Загрузите готовую DLL, отметьте опцию DoNET и проверьте интерфейс проверщиком DLL (рис. 2-7).







Подробный разбор сигнатур интерфейсов Seed&Key и примеры — в первой части руководства по UDS.