Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
BugChecker — SoftICE-ähnlicher Kernel-Debugger für Windows 11 | Kitploit
Tools/GitHubGitHub/vitoplantamura/bugchecker
Dynamische Analyse (Sandboxing)Reverse EngineeringDebuggerBinäranalyse
GitHubvitoplantamura/bugchecker

BugChecker

SoftICE-ähnlicher Kernel-Debugger für Windows 11

Repository anzeigen
1.1k14417vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

BugChecker

Einführung

BugChecker ist ein SoftICE-ähnlicher Kernel- und User-Debugger für Windows 11 (sowie Windows XP: es wird Windows-Versionen von XP bis 11 unterstützt, sowohl x86 als auch x64). BugChecker benötigt keinen zweiten Rechner, der mit dem zu debuggenden System verbunden ist, wie dies bei WinDbg und KD der Fall ist. Diese Version von BugChecker (anders als die vor 20 Jahren entwickelte Originalversion) nutzt die interne und undokumentierte KD-API in NTOSKRNL. Die KD-API ermöglicht WinDbg/KD Aufrufe wie Lesen/Schreiben von virtuellem Speicher, Lesen/Schreiben von Registern, Setzen eines Breakpoints an einer Adresse usw.

Im Gegensatz dazu pflegte das ursprüngliche BugChecker, wie auch SoftICE, das System zu 'übernehmen', indem es mehrere Kernel-APIs (sowohl exportierte als auch private) hookte, die Kontrolle über den APIC übernahm, IPIs sendete usw. Dieser Ansatz erhöht die Komplexität exponentiell (und verringert die Systemstabilität), da die Implementierung mit allen unterstützten Versionen und Unterversionen von Windows (auf Funktionsebene) sowie allen möglichen unterstützten Hardwarekonfigurationen kompatibel sein muss. Darüber hinaus macht PatchGuard diese Lösung 20 Jahre später unmöglich.

Im Gegensatz dazu präsentiert sich diese Version von BugChecker, indem sie Aufrufe von KdSendPacket und KdReceivePacket im Kernel abfängt, der zu debuggenden Maschine als zweites System, das einen externen Kernel-Debugger ausführt, aber in Wirklichkeit geschieht alles auf demselben Rechner. Typischerweise wird dies erreicht, indem KDCOM.DLL (das Modul, das die serielle Kabelkommunikation für die KD-API in Windows implementiert) ersetzt und das System im Kernel-Debugging-Modus gestartet wird. Dieser Ansatz (inspiriert von VirtualKD) reduziert die Komplexität und erhöht Stabilität und Kompatibilität (und Portabilität, z. B. zu ARM – und Modularität, da die Fähigkeiten des unteren Debugger-Levels hinter KdXxxPacket implementiert und durch eine benutzerdefinierte Implementierung ersetzt werden können). Darüber hinaus sorgt das Vorhandensein eines Kernel-Debuggers beim Start (wenn auch 'gefälscht') dafür, dass Windows PatchGuard deaktiviert.

Derzeit benötigt BugChecker eine PS/2-Tastatur für die Eingabe und einen linearen Framebuffer, um seine Ausgabe zu schreiben. Bitte beachten Sie, dass die eingebaute Tastatur vieler moderner Laptops immer noch PS/2 ist.

Funktionen

  • Unterstützung für Windows XP bis Windows 11, x86 und x64 sowie SMP-Kernel. Unterstützung für WOW64-Prozesse auf x64.
  • Integration von QuickJSPP, einem Port von QuickJS auf MSVC++. Vor dem Aufruf von QuickJS speichert BugChecker den FPU-Zustand (auf x86) und wechselt zu einem erweiterten Stack von 128 KB.
  • Befehle akzeptieren JS-Ausdrücke. Beispielsweise sind 'U rip+rax*4' und 'U MyJsFn(rax+2)' gültige Befehle. Benutzerdefinierte Funktionen können im Script Window definiert werden. CPU-Register werden automatisch von BugChecker als globale Variablen deklariert.
  • Unterstützung für PDB-Symbol-Dateien. PDB-Dateien können manuell angegeben werden oder der Symbol Loader kann sie von einem Symbol-Server herunterladen.
  • JavaScript-Code kann die folgenden asynchronen Funktionen aufrufen: WriteReg, ReadMem, WriteMem.
  • Haltepunkte können eine JS-Bedingung haben: Wenn die Bedingung 0 ergibt, findet kein 'Breakin' statt. Dies ermöglicht es, 'Logpoints' und Haltepunkte zu setzen, die den Ausführungsablauf ändern können.
  • Das Log-Fenster zeigt die an den Kernel-Debugger gesendeten Nachrichten (z. B. DbgPrint-Nachrichten).
  • JavaScript-Fenster mit Syntaxhervorhebung.
  • Die Tab-Taste ermöglicht es, bei wenigen Ziffern durch alle Hexadezimalzahlen auf dem Bildschirm zu blättern, oder bei wenigen Zeichen durch alle Symbole, die diese Zeichen enthalten.
  • EASTL und C++20-Koroutinen machen das Erstellen neuer Befehle zum Kinderspiel. Zögern Sie nicht, Ihre Pull-Requests zu senden!

Videos (YouTube)

Demonstration von BugChecker unter Windows 11 22H2, in VirtualBox 7.0.4. Es wird eine JavaScript-Haltepunktsbedingung geschrieben, die den Ausführungsfluss in einem Benutzermodus-Thread ändert.

Watch the video

BugChecker läuft in einer sehr eingeschränkten Umgebung: einem Raspberry Pi 4 (4 GB RAM) über QEMU unter Windows XP (512 MB RAM). Ein Haltepunkt wird verwendet, um alle SYSENTER-Aufrufe vom Benutzermodus zum Kernel zu protokollieren. Der Service-Index wird in einem JavaScript-Array gespeichert.

Watch the video

BugChecker läuft direkt auf Bare Metal auf einem HP Pavilion Dv2000, einem alten PC mit PS/2-Tastatur. Das Betriebssystem ist Windows 7 Home 32-Bit.

Watch the video

Installationsanleitung

Einführung

Stellen Sie sicher, dass Secure Boot deaktiviert ist, wenn Sie BugChecker installieren und verwenden. In der Regel können Sie es später wieder aktivieren. Wenn Sie VMware oder VirtualBox verwenden, kann Secure Boot in den Einstellungen der virtuellen Maschine deaktiviert werden.

Erwägen Sie auch, das Legacy-Boot-Menü zu aktivieren, wenn Sie Windows 8, 10 oder 11 verwenden, mit dem Befehl: bcdedit /set "{current}" bootmenupolicy legacy. Es ermöglicht ein reibungsloseres Erlebnis beim Booten, da Sie die BugChecker-Boot-Option auswählen und gleichzeitig die Treibersignaturerzwingung deaktivieren können.

Anleitung

Der erste Schritt ist, den Symbol Loader zu starten:

Symbol Loader

Falls erforderlich, deaktivieren Sie die Anzeigetreiber, indem Sie auf die Schaltfläche 'Disable Display Drvs' klicken. Dasselbe kann im Windows-Geräte-Manager erreicht werden. Nachdem die Anzeigetreiber deaktiviert wurden, bleiben sie auch nach einem Systemneustart deaktiviert. Sie können später jederzeit wieder aktiviert werden, wenn BugChecker nicht verwendet wird.

Der Punkt hier ist, dass BugChecker einen linearen Framebuffer mit einem Format von 32 Bit pro Pixel benötigt, um seine Oberfläche zu zeichnen. Wenn die Anzeigetreiber deaktiviert werden, verwirft Windows die Hardwarebeschleunigung zum Zeichnen seiner Benutzeroberfläche und fällt auf den VGA-Kompatibilitätsmodus zurück. Wenn Sie auf Bare Metal oder VMware laufen, sollten Sie die Anzeigetreiber deaktivieren. Wenn Sie auf VirtualBox laufen, sollten Sie die Anzeigetreiber deaktivieren oder die vm_screen-Einstellung in BugChecker.dat setzen, wie unten beschrieben. Wenn Sie auf QEMU laufen, müssen Sie die Anzeigetreiber nicht deaktivieren, aber stellen Sie sicher, dass Sie das Anzeigegerät '-vga std' angeben.

Beachten Sie, dass der VGA-Kompatibilitätsmodus die maximale Bildschirmauflösung einschränken kann. VMware ist auf eine maximale Auflösung von 1152x864 beschränkt. QEMU mit dem Anzeigegerät '-vga std' leidet nicht unter dieser Einschränkung.

Tool herunterladen