ไปผู้พิทักษ์
https://discord.gg/qeYaYK4JKq
โกดีเฟนเดอร์
แพ็คเกจ Go นี้มีฟังก์ชันในการตรวจจับและป้องกันเครื่องมือแก้ไขจุดบกพร่องและสภาพแวดล้อมการจำลองเสมือนในรูปแบบต่างๆ อย่างไรก็ตาม สำหรับการตั้งค่าอย่างรวดเร็ว ให้รัน install.bat
การต่อต้านการจำลองเสมือน
- Triage Detection : ตรวจจับว่าระบบกำลังทำงานอยู่ในสภาพแวดล้อม Triage หรือการวิเคราะห์
- ตรวจสอบตัวชี้วัด : ตรวจสอบตัวชี้วัดของระบบเพื่อระบุพฤติกรรมที่ผิดปกติซึ่งบ่งบอกถึงการจำลองเสมือน
- การตรวจจับ VirtualBox : ตรวจจับการมีอยู่ของ Oracle VirtualBox
- การตรวจจับ VMware : ตรวจจับการมีอยู่ของซอฟต์แวร์การจำลองเสมือน VMware
- การตรวจสอบ KVM : ตรวจสอบไฮเปอร์ไวเซอร์ Virtual Machine (KVM) ที่ใช้เคอร์เนล
- การตรวจสอบชื่อผู้ใช้ : ตรวจสอบว่าผู้ใช้ปัจจุบันเป็นผู้ใช้การจำลองเสมือนเริ่มต้นหรือไม่
- กิจกรรมผู้ใช้ล่าสุด : ตรวจสอบกิจกรรมของผู้ใช้ หากมีน้อยกว่า 20 ไฟล์ ไฟล์ก็จะออก
- USB Mount : ตรวจสอบว่าเคยเสียบ USB เข้ากับคอมพิวเตอร์มาก่อนหรือไม่
- สิ่งประดิษฐ์ VM : ระบุสิ่งประดิษฐ์ที่เครื่องเสมือน (VM) ทิ้งไว้ ซึ่งสามารถระบุถึงการมีอยู่ของสภาพแวดล้อม VM
- การตรวจสอบ Parallels : ตรวจจับ Parallels Desktop ซึ่งเป็นซอฟต์แวร์การจำลองเสมือนยอดนิยมสำหรับ macOS ที่ใช้ในการรัน Windows และระบบปฏิบัติการอื่น ๆ ของแขก
- การตรวจจับ QEMU : ระบุการมีอยู่ของ QEMU ซึ่งเป็นโปรแกรมจำลองเครื่องโอเพ่นซอร์สและเวอร์ช่วลไลเซอร์ ซึ่งอาจบ่งบอกถึงการตรวจจับเครื่องเสมือน
ต่อต้านการแก้ไขข้อบกพร่อง
โมดูลนี้มีฟังก์ชันในการตรวจจับและป้องกันการดีบักและการวิเคราะห์กระบวนการที่ทำงานอยู่
- IsDebuggerPresent : ตรวจสอบว่ามีการแนบดีบักเกอร์เข้ากับกระบวนการหรือไม่
- ดีบักเกอร์ระยะไกล : ตรวจพบว่าดีบักเกอร์ระยะไกลเชื่อมต่อกับกระบวนการหรือไม่
- เวลาทำงานของพีซี : ตรวจสอบเวลาทำงานของระบบเพื่อตรวจจับความพยายามในการดีบักโดยอิงจากการรีสตาร์ทระบบ
- ตรวจสอบชื่อ Windows ที่อยู่ในบัญชีดำ : ตรวจสอบว่าชื่อกระบวนการตรงกับชื่อที่อยู่ในบัญชีดำที่ผู้ดีบักเกอร์ใช้กันทั่วไปหรือไม่
- กระบวนการที่กำลังทำงานอยู่ : ดึงรายการกระบวนการที่กำลังทำงานอยู่และระบุกระบวนการที่อาจเป็นอันตราย
- Parent Anti-Debug : ตรวจพบว่ากระบวนการหลักกำลังพยายามแก้ไขข้อบกพร่องของกระบวนการปัจจุบันหรือไม่
- ตรวจสอบกระบวนการที่ไม่ถูกต้อง : หากตรวจพบในระบบ ให้ดำเนินการบางอย่างตามตัวเลือกของคุณ (บูล)
- ตรวจจับ Usermode AntiAntiDebuggers : ตรวจจับ anti-anti-debuggers ในโหมดผู้ใช้เช่น ScyllaHide (ปลั๊กอิน BASIC / VMP)
- การตรวจสอบการเชื่อมต่ออินเทอร์เน็ต : ตรวจสอบว่ามีการเชื่อมต่ออินเทอร์เน็ตอยู่หรือไม่
กระบวนการยูทิลิตี้
ProcessUtils ที่คุณอาจต้องการสำหรับแอปของคุณ
- กระบวนการที่สำคัญ : ใช้ฟังก์ชันการทำงานเพื่อจัดการกระบวนการที่สำคัญที่จำเป็นสำหรับการทำงานของระบบ
- ตั้งค่ารันไทม์ : ตั้งค่ารันไทม์ของแอปเป็นรายการที่ระบุ:
MacOS,Linux,Windows
- เปิดใช้งานโทเค็นทั้งหมด : เปิดใช้งานสิทธิ์โทเค็น Windows ทั้งหมดสำหรับกระบวนการปัจจุบัน
- IsAdmin - ขอผู้ดูแลระบบ : ขอผู้ดูแลระบบสำหรับกระบวนการปัจจุบัน และตรวจสอบว่ากระบวนการปัจจุบันเป็นผู้ดูแลระบบหรือไม่
Anti-Dll-Injection
- Patching Dll : การใช้ประโยชน์จากนโยบายการลดผลกระทบลายเซ็นรูปภาพไบนารีเพื่อป้องกันการแทรกไบนารีที่ไม่ใช่ของ Microsoft
สรุปด่วน
- ตรวจจับวิธีการ hooking ป้องกันการดีบักส่วนใหญ่ในฟังก์ชันป้องกันการดีบักทั่วไป โดยการตรวจสอบคำแนะนำที่ไม่ถูกต้องเกี่ยวกับที่อยู่ฟังก์ชัน (มีประสิทธิภาพมากที่สุดใน x64) นอกจากนี้ยังตรวจจับการป้องกันต่อต้านการแก้ไขข้อบกพร่องในโหมดผู้ใช้เช่น ScyllaHide และสามารถตรวจจับแซนด์บ็อกซ์บางตัวที่ใช้การเชื่อมต่อเพื่อตรวจสอบพฤติกรรม/กิจกรรมของแอปพลิเคชัน (เช่น Tria.ge)
เครดิต
- https://github.com/AdvDebug : เป็นแรงบันดาลใจให้ฉันเริ่มทำแพ็คเกจนี้ ถ้าไม่มีเขามันก็อยู่ไม่ได้ที่นี่ ลองดู GitHub ของเขา
- https://github.com/MmCopyMemory : ให้ไอเดีย และอื่นๆ อีกมากมาย ลองดู GitHub ของเขา
- https://github.com/bytepulze : ช่วยเหลือเกี่ยวกับข้อผิดพลาด/การแก้ไข ตรวจสอบ Github ของเขา
- ฉันทำสิ่งนี้เพราะฉันสังเกตเห็นว่ามีคนพยายามถอดรหัสหรือวิเคราะห์โปรแกรม Go อื่น ๆ ของฉัน ก่อนหน้านี้ ฉันมีโค้ดป้องกันการดีบักหลายบรรทัด (ฉันโค้ดอย่างเกียจคร้านและรวมทุกอย่างไว้ในที่เดียว) ดังนั้นฉันจึงต้องการสร้างบางสิ่งที่รวดเร็วและเชื่อถือได้ซึ่งจะทำให้ชีวิตของวิศวกรย้อนกลับยากขึ้น ดังนั้นฉันจึงสร้าง GoDefender