Antidbg ist eine Sammlung von Windows -Anti -Debugging -Techniken. Die Techniken werden nach den Methoden, mit denen sie einen Debugger finden, kategorisiert.
Möchten Sie dieses Zeug in Aktion sehen? Schauen Sie sich die Wiedergabeliste auf YouTube an.
AntidBG ist in C geschrieben und benötigt nur eine einzelne Quelldatei und einen Header. Fast alle dieser Methoden sind so konzipiert, dass sie keinen Eingang aufnehmen und keine Ausgabe erzeugen. Sie wollen in sich geschlossene Debugger-Checks sein, die sich automatisch Debugger abschließen.
AntidBG ist so konzipiert , dass der Benutzer die Techniken kennenlernen kann. Wenn Sie diese Methoden in Ihrem eigenen Projekt verwenden, profitieren Sie stark, indem Sie die Verschleierung über diese Methoden hinzufügen. Verschleierung ist nicht das Ziel dieses Projekts.
Der Gauntlet ist eine einfache Anwendung, die jeden AntidBG -Überprüfen nacheinander ausführt. Ziel ist es, Ihre Fähigkeit zu testen, die Anti-Debugging-Methoden zu umgehen und es bis zum Ende des Handschuhs zu schaffen, während er unter einem Debugger läuft.
Willst du den Gauntlet schwerer machen? UNDEFINE SHOW_DEBUG_MESSAGES (standardmäßig in Antidbg.cpp definiert). Diese Option erzeugt ein Meldungsfeld, wenn Sie mit Informationen über die Prüfung erwischt werden, die Sie hat.
Helfen! X -Methode scheint nicht zu funktionieren.
Viele Anti-Debugging-Überprüfungen konzentrieren sich auf Odd Edge-Fälle. Einige erfordern, dass Sie einen einzigen Schritt überwinden. Einige erfordern einen bestimmten Debugger, um die Ausnahme an den Debugger usw. weiterzugeben.
Alle Methoden in AntidBG wurden unter den Bedingungen getestet, die sie unter Windows 10 64-Bit entwickelt haben. Die meisten (wenn nicht alle) sollten auch auf allen anderen Versionen von Windows funktionieren.
Helfen! Dieses Ding wird nicht kompilieren!
Antidbg wurde mit Microsoft Visual Studio 2019 entwickelt und getestet. Solange Sie 2019 verwenden, geben Sie bitte ein Problem mit Details ein und ich würde gerne helfen.
Warum ist X86 -Montage -Inline, während X64 -Varianten in einer .MASM -Datei enthalten sind?
Microsoft hielt es für eine großartige Idee, die Inline -Montage für X64 zu verhindern, dass Entwickler die Inline -Montage schreiben können. Ich weiß nicht warum, aber der häufige Grund, den ich im Internet sehe, ist, dass Entwickler am Schreiben von Versammlungen und Compilern viel besser sind. Obwohl ich dem nicht einverstanden bin, bezweifle ich, dass dies der wahre Grund ist. Was auch immer der Grund sein mag, wir müssen jetzt durch Reifen springen, um etwas zu tun. Vielen Dank an LallusLab und Onipot, dass er mich durch dieses Minenfeld geführt hat.
Ich habe mehr Fragen.
Ich würde sie gerne beantworten! Bitte geben Sie mit Ihren Fragen ein GitHub -Problem ein und ich werde mein Bestes geben, um so schnell wie möglich zu helfen.
Vielen Dank an die Mitwirkenden und alle, die in der Vergangenheit Feedback zu diesem Projekt gegeben haben.