TDL (ตัวโหลดไดรเวอร์ Turla)
ตัวโหลดไดรเวอร์สำหรับการผ่านการบังคับใช้ลายเซ็นไดรเวอร์ Windows x64
สำหรับข้อมูลเพิ่มเติมดู
- การเอาชนะ 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 ออกแบบเฉพาะสำหรับ X64 Windows เท่านั้น Vista ไม่ได้ระบุไว้ตามที่รองรับเพราะล้าสมัย
- จำเป็นต้องมีสิทธิ์การดูแลระบบ
- ไดรเวอร์ที่โหลดจะต้องได้รับการออกแบบมาเป็นพิเศษเพื่อทำงานเป็น "ไม่มีคนขับ"
- ไม่มีการสนับสนุน SEH สำหรับไดรเวอร์เป้าหมาย
- ไม่มีการขนถ่ายไดรเวอร์
- เฉพาะการนำเข้า ntoskrnl แก้ไขทุกอย่างอื่นขึ้นอยู่กับคุณ
- ตัวอย่างไดรเวอร์หุ่นจำลอง
คุณใช้มันด้วยความเสี่ยงของคุณเอง Lazy 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 มันใช้เชลล์ขนาดเล็กที่แมปไดรเวอร์ของคุณเข้ากับโหมดเคอร์เนลโดยไม่เกี่ยวข้องกับ Windows Loader (และเป็นผลลัพธ์โดยไม่ต้องเรียกส่วนใด ๆ ของ DSE) และดำเนินการ นี่คือข้อได้เปรียบหลักของ TDL - บายพาสที่ไม่รุกรานของ DSE อย่างไรก็ตามมีข้อเสียมากมาย - ตัวแรกและหลัก -> ไดรเวอร์ของคุณจะต้องถูกสร้างขึ้นเป็นพิเศษเพื่อทำงานเป็น "ไม่มีคนขับ" ซึ่งหมายความว่าคุณจะไม่สามารถโหลดไดรเวอร์ ใด ๆ ได้ แต่ออกแบบมาเป็นพิเศษเท่านั้น ไดรเวอร์ของคุณจะมีอยู่ในโหมดเคอร์เนลเป็นบัฟเฟอร์รหัสที่เรียกใช้งานได้มันจะไม่เชื่อมโยงกับ PSLoadedModuLelist จะมีข้อ จำกัด อื่น ๆ อย่างไรก็ตามรหัสนี้จะทำงานที่โหมดเคอร์เนลและแอปพลิเคชันโหมดผู้ใช้จะสามารถสื่อสารกับมันได้ คุณสามารถโหลดไดรเวอร์หลายตัวได้แน่นอนหากพวกเขาไม่ขัดแย้งกัน
มันทำงานอย่างไร
ใช้เทคนิคการใช้ประโยชน์จาก Winnt/Turla Virtualbox Kernel Technique เพื่อเขียนโค้ดลงในหน่วยความจำเคอร์เนลและหลังจากเรียกใช้รหัสนี้ TDL ใช้ shellcode 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 Driver Kit 8.1 และ/หรือสูงกว่า
คำแนะนำ
- เลือกชุดเครื่องมือแพลตฟอร์มก่อนสำหรับโครงการในโซลูชันที่คุณต้องการสร้าง (โครงการ-> คุณสมบัติ-> ทั่วไป):
- 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)
ลบตัวเลือก linker /nocoffgrpinfo ซึ่งไม่ได้รับการสนับสนุน /ไม่พร้อมใช้งาน
การคัดค้าน
TDL ใช้ไดรเวอร์ Oracle VirtualBox เก่าที่สร้างขึ้นในปี 2008 ไดรเวอร์นี้ไม่ได้ออกแบบมาเพื่อให้เข้ากันได้กับรุ่นระบบการทำงานของ Windows รุ่นใหม่ล่าสุดและอาจทำงานไม่ถูกต้อง เนื่องจาก TDL ทั้งหมดขึ้นอยู่กับเวอร์ชันไดรเวอร์ VirtualBox ที่แน่นอน LPE จึงไม่ควรใช้กับ Windows เวอร์ชันใหม่ล่าสุด พิจารณาพื้นที่เก็บข้อมูลนี้เป็นการตรวจสอบ/ละทิ้งแวร์ การอัปเดตที่เป็นไปได้เพียงอย่างเดียวเท่านั้นที่สามารถเกี่ยวข้องกับ TDL Loader เท่านั้น
ผู้เขียน
(c) 2016 - 2019 โครงการ TDL
การให้เครดิต