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項目
學分