TDL (Turla Driver Loader)
Погрузчик драйвера для обхода Windows x64 Driver Signature Signature
Для получения дополнительной информации см.
- Победы X64 обеспечения подписи драйвера http://www.kernelmode.info/forum/viewtopic.php?f=11&t=3322
- Winnt/turla http://www.kernelmode.info/forum/viewtopic.php?f=16&t=3193
Системные требования и ограничения
- x64 Windows 7/8/8.1/10.
- TDL, разработанный только для Windows x64, Vista не указан в качестве поддерживаемой, потому что она устарела.
- Требуется административная привилегия.
- Загруженные драйверы должны быть специально разработаны, чтобы работать как «без водителя».
- Нет поддержки SEH для целевых драйверов.
- Нет драйвера.
- Только импортный импорт, все остальное зависит от вас.
- Приведенные примеры драйвера.
Вы используете его на свой страх и риск. Некоторый ленивый AV может пометить этот погрузчик как вредоносное ПО.
Различия между DSEFIX и TDL
В то время как DSEFIX и TDL используют преимущество эксплойта драйверов, они совершенно разные в пути его использования.
- DSEFIX Манипулируйте переменной ядра с именем g_cienabled (vista/7, ntoskrnl.exe) и/или g_cioptions (8+. Ci.dll). Основное преимущество DSEFIX - это простота - вы выключаете DSE - загружаете свой драйвер (или исправленный) и ничего не требуется. Основным недостатком DSEFIX является то, что в современной версии переменной G_CIOPTIONS G_CIOPTIONS является субъектом защиты PatchGuard (KPP), которая средняя DSEFIX является потенциальным генератором BSOD.
- TDL не исправляет какие -либо переменные ядра, что делает его дружелюбным для PatchGuard. Он использует небольшой штуковой код, который отображает ваш драйвер в режим ядра, не включающий погрузчик Windows (и, как и результат, без запуска каких -либо частей DSE) и выполняет его. Это основное преимущество TDL - не инвазивного обхода DSE. Однако существует много недостатков - первый и основной -> ваш драйвер должен быть специально создан, чтобы работать как «без водителя», что означает, что вы не сможете загрузить ни одного драйвера, но только специально разработано. Ваш драйвер будет существовать в режиме ядра в качестве исполняемого кодового буфера, он не будет связан с psloadedmodulelist, будут и другие ограничения. Однако этот код будет работать в режиме ядра, и приложение пользовательского режима сможет общаться с ним. Конечно, вы можете загрузить несколько драйверов, если они не конфликтуют друг с другом.
Как это работает
Он использует метод эксплойта Winnt/Turla VirtualBox Exploit для записи кода в память ядра и после выполнения этого кода. TDL использует пользовательский SheltCode Bootstrap для сопоставления вашего специально разработанного драйвера и вызовать его точку входа (DriverEntry), обратите внимание, что параметры DriverEntry будут недействительными и не должны использоваться. Примеры специально разработанных драйверов, доступных в виде DummyDRV и DummyDRV2. Ваш драйвер наверняка будет работать по адресу irql passive_level до Windows 10 RS1. Начиная с Windows 10 RS2, ваш код водителя запускается на IRQL Dispatch_level.
Строить
TDL поставляется с полным исходным кодом. Чтобы построить из источника, вам нужна Microsoft Visual Studio 2015 U1 и более поздние версии. Для сборки драйвера вам нужен набор драйверов Microsoft Windows 8.1 и/или выше.
Инструкции
- Выберите Platform Toolset First для проекта в решении, которое вы хотите создать (Project-> Properties-> General):
- V120 для Visual Studio 2013;
- V140 для Visual Studio 2015;
- V141 для Visual Studio 2017.
- Для версии V140 и выше установки целевой платформы (Project-> Properties-> General):
- Если v140, то выберите 8.1 (обратите внимание, что Windows 8.1 SDK должен быть установлен);
- Если v141, то выберите 10.0.17763.0 (обратите внимание, что Windows 10.0.17763 SDK должен быть установлен).
Удалить опцию линкера /nocoffgrpinfo, где он не поддерживается /недоступен.
Детектирование
TDL, основанный на старом драйвере Oracle VirtualBox, который был создан в 2008 году. Этот драйвер не был разработан для совместимости с новейшими версиями системы операции Windows и может работать неправильно. Поскольку TDL полностью основан на этой точной версии драйвера VirtualBox LPE, не целесообразно использовать его в новой версии Windows. Считайте этот репозиторий как депрессированный/заброшенный посуды. Единственные возможные обновления могут быть связаны только с самим погрузчиком TDL.
Авторы
(C) 2016 - 2019 г. Проект TDL
Кредиты