TDL(Turla驱动器加载器)
用于绕过Windows X64驱动程序签名执行的驱动程序加载程序
有关更多信息,请参阅
- 击败X64驾驶员签名执法http://www.kernelmode.info/forum/viewtopic.php?f=11&t=33222
- winnt/turla http://www.kernelmode.info/forum/viewtopic.php?f=16&t=3193
系统要求和局限性
- X64 Windows 7/8/8.1/10。
- TDL仅针对X64 Windows设计,因为它已过时,因此未列出为vista。
- 需要管理特权。
- 装载的驱动程序必须专门设计为“无人驾驶”。
- 没有SEH对目标驱动器的支持。
- 没有驱动程序卸载。
- 只有NTOSKRNL进口解决,其他一切都取决于您。
- 提供了虚拟驾驶员示例。
您会自行使用它。一些懒惰的AV可能将此加载程序标记为恶意软件。
DSEFIX和TDL之间的差异
虽然DSEFIX和TDL都使用驱动程序利用的优势,但它们的使用方式完全不同。
- DSEFIX操纵内核变量称为g_cienabled(Vista/7,ntoskrnl.exe)和/或g_cioptions(8+ ci.dll)。 DSEFIX的主要优点是简单 - 您关闭DSE-加载驱动程序(或修补了一个),而无需其他。 DSEFIX的主要缺点是,在现代版本的Windows(8+)G_Cioptions变量上是PatchGuard(KPP)保护的主题,这意味着DSEFIX是潜在的Bsod-generator。
- TDL没有修补任何内核变量,这使其对PatchGuard友好。它使用小的shellCode将驱动程序映射到内核模式而不涉及Windows加载器(结果,而无需触发DSE的任何部分)并执行它。这是DSE的非侵入性旁路的主要优点。但是,有很多缺点 - 第一个和主 - >您的驾驶员必须专门为“无人驾驶”运行,这意味着您将无法加载任何驱动程序,但只专门设计。您的驱动程序将以可执行的代码缓冲区为内核模式存在,它不会链接到PSLOADEDMODULELIST,还有其他限制。但是,此代码将在内核模式下使用,用户模式应用程序将能够与之通信。您可以加载多个驱动程序,如果它们不是彼此冲突的话。
它如何工作
它使用Winnt/Turla VirtualBox内核模式利用技术将代码写入内核内存,并在执行此代码之后。 TDL使用自定义的bootstrap shellCode来映射您的特殊设计的驱动程序,并将其称为入口点(驱动程序),请注意,driverentry参数将无效,不得使用。特殊设计的驱动程序的示例可作为Dummydrv和Dummydrv2。您的DriverEntry将在irql passive_level上运行到Windows 10 RS1。从Windows 10 RS2开始,您的驱动程序代码在IRQL dispatch_level上运行。
建造
TDL带有完整的源代码。为了从源构建,您需要Microsoft Visual Studio 2015 U1和更高版本。对于驱动程序构建,您需要Microsoft Windows驱动程序套件8.1和/或更高版本。
指示
- 选择要构建的解决方案中的Platform toolset(project-> properties->一般):
- Visual Studio 2013的V120;
- Visual Studio 2015的V140;
- Visual Studio 2017的V141。
- 对于V140及以上设置的目标平台版本(project-> properties->一般):
- 如果V140,则选择8.1(请注意必须安装Windows 8.1 SDK);
- 如果V141,则选择10.0.17763.0(请注意,必须安装Windows 10.0.17763 SDK)。
删除链接器选项 /nocoffgrpinfo,在不支持 /不可用的地方。
贬值
基于2008年创建的旧Oracle VirtualBox驱动程序的TDL。该驱动程序并非与最新的Windows操作系统版本兼容,并且可能工作不正确。由于TDL完全基于此确切的VirtualBox驱动程序版本LPE,因此在Windows的最新版本上使用它是不明智的。将此存储库视为编号/放弃软件。唯一可能的更新只能与TDL加载器本身有关。
作者
(c)2016-2019 TDL项目
学分