Anti-Debugging



  • Mit SMC kann man zumindest Unerfahrene von RE abhalten. VirtualProtect braucht man nicht mal zwingend - die section Attribute kann man während des Linkens festlegen.



  • Spar dir die Arbeit und Schütz dein Programm erst gar nicht ^^

    Das wird eh gecrackt zu 99,99% ^^

    Spar dir die Zeit und mach was anderes oder mache es nur aus Lern zwecken (:



  • wenn du deinen schutz eingebaut hast, dann teste es doch einfach mal gegen ollydbg phant0m :p



  • Am besten selber mit verschiedenen debugging tools testen.
    aktulle Bücher:

    http://www.amazon.de/Advanced-Windows-Debugging-Administering-Addison-Wesley/dp/0321374460/ref=sr_1_2/279-7451330-5629503?ie=UTF8&s=books-intl-de&qid=1274116161&sr=1-2-spell

    und

    http://www.amazon.de/Tagebuch-Bughunters-Softwareschwachstellen-aufspürt-behebt/dp/3898646599/ref=sr_1_1/275-6664682-8046936?ie=UTF8&s=books&qid=1274116232&sr=1-1

    Es kann aber zur Übung nicht verkehrt sein, wenigstens die grundlegensten Sachen abzustellen:

    siehe auch:
    http://www.searchlores.org/protec/lazatips.htm
    http://vx.netlux.org/lib/?index=AA&lang=en

    ..und daran denken, das viele exotische exe-packer den Virenschutz erschweren.

    Wenn du dich für Verschlüsselung interessierst, sags, es gibt auch hier das ein oder andere gute Buch oder Programm.



  • Vielen Dank erstmal für die Beiträge!

    @ nachtfeuer
    Bin über beide Links noch nicht gestolpert (obwohl VX heavens in meinen Fav's ist) und finde sie sehr hilfreich! Danke dafür.

    Im Wesentlichen bin ich auch eher ein Gegner von solchen Maßnahmen (wie bsp. Ubisoft sie anwendet), da sie eh von professionellen Teams (SKIDROW, Razor1911 etc.) umgangen werden. Meine Anwendung ist allerdings nicht kommerzieller Natur und mein einziges Bestreben ist das Erschweren der Analyse und das Verschleiern von Funktionen. Man kann Cracking nicht verhindern doch man kann den Reverser in manchen Fällen davon überzeugen, dass er sich nicht die Zeit nehmen sollte das Programm zu cracken, wenn es einen gewissen zeitlichen Aufwand erfordert. Gleichzeitig werden RE-Neulinge abgeschreckt.

    An Büchern/Papers zu Verschlüsselung bin generell interessiert, wenn es in dem Werk einen Bezug zur Anwendung unter C/C++ gibt 😉 Mein Bedarf an allgemeiner Kryptographie ist mit "Grundkurs Codierung" mehr als abgedeckt und ich habe auch schon eine Abwandlung aus LFSR (Erzeugung von Pseudo-Zufallszahlen) und OTP (One-Time Pad) programmiert.

    MfG, 0x2A



  • Zu 1) nix
    Zu 2) mein Bruder hat schon vor ca. 25 Jahren irgendein Spiel gecrackt (Uni-Langeweile), das genau damit gearbeitet hat: "Code immer vor dir herschieben und erst zur Laufzeit entschlüsseln".
    Leider kann ich ihn nicht mehr danach fragen, da er vor 1 1/2 Jahren verstorben ist.



  • Protipp: lieber etwas Geld in Themida oder VMProtect investieren, und hast vermutlich erstmal deine Ruhe. Portable Anti-Debugging-Maßnaßnahmen gibt es nicht - das einzige, was vielleicht sinnvoll ist, ist das schreiben eines eigenen Debuggers der die Programmfunktionalität ergänzt.



  • 0x2A_ schrieb:

    ... Meine Anwendung ist allerdings nicht kommerzieller Natur und mein einziges Bestreben ist das Erschweren der Analyse und das Verschleiern von Funktionen. ...

    Und wozu? Investiere die Zeit doch lieber in das Schreiben von Programmen, die einfach zu analysieren und zu "debuggen" sind.
    Kein Schwein wird sich je für deine Funktionen interessieren und wenn doch und wenn es sein muss, findet er einen Weg, um sie zu analysieren, ob in Zusammenarbeit mit dir oder ohne dich...



  • @ abc.w

    Wie bereits mehrfach erwähnt möchte ich es einem durchschnittlichen/unerfahrenen Reverser nicht ermöglichen Einsicht in meine Prozeduren zu erhalten, denn meiner Meinung nach sind die meisten Reverser relativ unerfahren (typischer Tutorial-User: "Hey schau mal ich kann xy cracken!"). Mir ist noch immer bewusst, dass der Schutz von erfahrenen Reversern umgangen werden kann.
    Gleichzeitig ist es eine interessante Thematik und ich sehe keinen Grund mich nicht mit der Programmierung von Schutzmechanismen zu beschäftigen und diese auch zu verwenden. Ob eine solche Verwendung auch bei kommerziellen Produkten sinnvoll ist steht auf einem anderen Blatt.

    @ EOP

    Unterschied zu der im Startpost erwähnten Variante ist, dass bei dieser zu keinem Zeitpunkt eine vollständig entschlüsselte Variante des Codes vorliegt, wie dies bei dem besagten Spiel vermutlich der Fall war. Für einen Cracker in ein Schutz á la RunPE + Runtime-Decryption ein Kinderspiel.

    MfG, 0x2A



  • CRACKERS NEVER DIE ! 🕶



  • nop du, nop...



  • 0x2A_ schrieb:

    @ abc.w

    Wie bereits mehrfach erwähnt möchte ich es einem durchschnittlichen/unerfahrenen Reverser nicht ermöglichen Einsicht in meine Prozeduren zu erhalten, denn meiner Meinung nach sind die meisten Reverser relativ unerfahren (typischer Tutorial-User: "Hey schau mal ich kann xy cracken!"). Mir ist noch immer bewusst, dass der Schutz von erfahrenen Reversern umgangen werden kann.
    Gleichzeitig ist es eine interessante Thematik und ich sehe keinen Grund mich nicht mit der Programmierung von Schutzmechanismen zu beschäftigen und diese auch zu verwenden. Ob eine solche Verwendung auch bei kommerziellen Produkten sinnvoll ist steht auf einem anderen Blatt.

    @ EOP

    Unterschied zu der im Startpost erwähnten Variante ist, dass bei dieser zu keinem Zeitpunkt eine vollständig entschlüsselte Variante des Codes vorliegt, wie dies bei dem besagten Spiel vermutlich der Fall war. Für einen Cracker in ein Schutz á la RunPE + Runtime-Decryption ein Kinderspiel.

    MfG, 0x2A

    Doch auch in den Anfängen wurde Code nur Befehlsweise entschlüsselt und dann ausgeführt, dann wurde auch noch falscher Code eingeführt und auch Code der so nicht fehlerfrei lief dann aber durch Selbstmodifikation abgeändert wurde. Den komplett falschen Code finde ich noch am verwirrensten. Aber egal alles schon dagewesen selbst code für selbstgebaute kleine virtuelle Maschinen der dann so erstmal gar keinen Sinn ergibt. Bau davon irgendwas ein oder kombiniere es für die Noobs der Rest knackt es dir in ein paar Stunden. Durch das Internet und Foren kommste mittlerweile so schnell an Infos dass das Cracken echt zum Kinderspiel wird.
    Auch in meinen Augen ist die Auslagerung auf einen anderen Rechner mit asymetrischer Verschlüsselung der Verbindung das einzig sichere, alles was allein auf deinen Rechner läuft und der Cracker starten kann ist verloren.

    Packe dein Prg. in ein Archiv mit Verschlüsselung und gut ist, oder verschlüssle selbst Programmteile die nur durch Eingabe des Schlüssels freigegeben werden.

    Asymetrische Verschlüsselung wo der Schlüsselaustausch sicher ist knackt dir keiner so leicht.


Anmelden zum Antworten