Anti Leak Funktion

  • Huhu meine Leaker von der Codesoft software, habt ihr zufällig ne gute funktion womit man das Leaken unterbinden kann? Ich weiss es gibt kein 100%tigen schutz, aber zumindest eine gute variante?

    [LEFT][SIZE=1]Die "Szene" schon seit geburt an herzkrank und über die Jahre bilden sich immer mehr �deme, doch trotzdem schlägt das Herz noch irgendwie.[/SIZE][/LEFT]

  • Meinst du eher "Protection" oder Authentifizierung? Zu Protection habe ich mal hier meinen Senf abgegeben:
    http://board.scenecoderz.com/s….php?p=13223&postcount=10
    Prinzipiell: HardwareID auslesen und mit Keyprüfung so wie in dem Post vorgeschlagen verknüpfen.
    Mehrere Checks machen. Der erste Check sollte (unvollständige) ID prüfen und eine Meldung ausgeben. Weitere Checks sollten nichts mehr tun und z.B irgendwelche Funktionen stillschweigend blockieren. Das sollte den Gro�teil der "ich hab 'CrackersKit 2.X' runtergeladen!!!" abhalten ;)

  • Naja Visual Basic Code kann ich dir jetzt nicht geben, da ich nur in C++ programmiere.. Aber als HardwareKey würde sich z.B. die physikalische Festplattenserial anbieten. (nicht die VolumeSerialNumber)
    Diese lässt sich einfach über die Windows Management Instrumentation [1] beziehen. Also sollte schon was physikalisches sein, nicht einfach die MacID oder die oben angesprochene VolumeSerialNumber, da sich diese Sachen sehr leicht ändern lassen. Also ich geb dir mal nen kleinen Einblick wie mein Antileak aufgebaut ist:


    - Customer führt ein Tool aus welches seine HDD SerialNumber ausgibt.
    - Ich generiere einen Key (habe dafür einen einfachen Algorithmus geschrieben) [2]
    - Auf meinem Server befindet sich eine Datei welche alle Keys der User beinhaltet, sprich wo ich den neuen User eintrage.
    - Per sockets streame ich die Datei in nen Buffer und lese sie dann aus..
    - if ( m_iComputedKey != m_iServerKey ) SilentCrash();


    [1] http://msdn.microsoft.com/en-us/library/aa394582.aspx
    [2]

  • Ich mache im Moment ein Tutorial mit f0Gx zum Thema HWID. Kann aber noch n bisschen dauern, weil es was vernünftiges werden soll. Das Wesentliche wurde ja hier schon genannt.
    Die Idee mit dem Serverseitigen Vergleich ist sicherlich auch nützlich, wenn man sie natürlich noch mit genügend anderen Abfragen etc. kombiniert.
    Wenn du genug Zeit hast, beschäftige dich etwas mit dem Reverseing. Denn wenn du weist wie sie vorgehen, kannst du dir auch "Gegenmittel" einfallen lassen.


    Wenn du deinen Schutz testen möchtest, ich stehe immer zur Verfügung:)

    [CENTER]Aktuelles Projekt:

    Status: 5%
    Real Coder doesn't code Visual Basic. Real Coder codes Opcodes.[/CENTER]

  • Hat wer vielleicht Snippet zum auslesen der HID ?


    EBFE & DizzY_D ihr seid ja meiner meinung nach die cracks in sachen Schutz, hätte nicht einer Bock ein schutz bei meinem bot einzubauen, ist in VB geschrieben, würde auch im nachhinein was für euch rausspringen

    [LEFT][SIZE=1]Die "Szene" schon seit geburt an herzkrank und über die Jahre bilden sich immer mehr �deme, doch trotzdem schlägt das Herz noch irgendwie.[/SIZE][/LEFT]

    Einmal editiert, zuletzt von whit3 ()

  • Vielleicht ein kleines Programm das du dem jenigen vorher schickst das dir Mac Id Hardware ID und ja z.B. die Festplattenserial ausliest und sie verschlüsselt in einer Datei abspeichert. Diese musst du dann in dein Programm einbauen. Somit weis niemand genau wie dein Programm geschützt ist und daher ist es denke ich auch nicht so einfach es zu cracken. Auserdem könnte man bei jeder Funktion eine abgeänderte Abfrage davon machen.

    [B] RS, Freundin, Altpapier, Datenbanken<br />[S] Nichts

  • das problem besteht eigentlich bei der abfrage ob die ermittelte hwid mit der vom programm zugelassenen übereinstimmt. eine normale if abfrage kann sehr leicht von crackern übergangen werden. auÃ?erdem ist es sehr wichtig, dass keine strings o.ä im debugger zu lesen sind, denn diese bringen nur anhaltspunkte wo der schutz eingreift und an welchen stellen die hwid akzeptiert wird.

  • Natürlich ist die HWID kein ultimativer Schutz und recht leicht zu umgehen, aber sie ist dennoch eine kleine Hürde die wohl viele Kiddies nicht umgehen können. Hier ist etwas für dicht, zwar VB2008, dürfte aber übersetzbar sein.

  • Den Ultimativen Schutz gibt es sowieso net...
    HWID ist ja nicht der Schutz an sich sondern eher eine Methode sein Programm zu schützen. Wie sicher es ist liegt einzig und allein daran, wie man es implementiert.

    [CENTER]Aktuelles Projekt:

    Status: 5%
    Real Coder doesn't code Visual Basic. Real Coder codes Opcodes.[/CENTER]

  • Zitat von ShockerZz;18638

    Natürlich ist die HWID kein ultimativer Schutz und recht leicht zu umgehen, aber sie ist dennoch eine kleine Hürde die wohl viele Kiddies nicht umgehen können. Hier ist etwas für dicht, zwar VB2008, dürfte aber übersetzbar sein.


    Im oben genannten Beispiel wird die HDD-Serial mithilfe der WMI ausgelesen (wovon ich ein paar Post's zuvor geredet hatte), ist eigentlich der schnellste und einfachste Weg um an die Serial zu kommen..


    Zitat von DizzY_D;18640

    Den Ultimativen Schutz gibt es sowieso net...
    HWID ist ja nicht der Schutz an sich sondern eher eine Methode sein Programm zu schützen. Wie sicher es ist liegt einzig und allein daran, wie man es implementiert.


    Richtig. Wenn die Abfrage früher oder später wieder in einem einfachen conditional jmp endet, lässt sich dass sehr einfach umgehen. Kenne auch einige Leute die einfach nen ExitProcess(0) nach der Abfrage des Antileaks benutzen (grö�te Protection einbauen aber dann per ExitProcess beenden^^) besser wäre es da einfach unbemerkt ein paar ASM-Register zu manipulieren und so einen Crash zu erzeugen. (was auf den 1. Blick aufjedenfall schwieriger zu entdecken ist..)

  • Hm, ich hab im Moment paar Ideen in diese Richtung. Allerdings frage ich mich, warum alle so auf Hardware fixiert sind:
    Was wäre denn wichtig bei einer Protection - dass der User auch nach Neuformatierung das Tool nutzen kann?
    Und was spricht dagegen, auch an den Windowskey zu binden?

  • Die HDD-Serial ändert sich nicht nach der Formatierung. (die VolumeID dagegen schon)


    Den Windowskey als ID zu benutzen ist halt auch nicht wirklich sicher, gibts ja CD-Key changer für Windows, damit wäre das auch ziemlich einfach umgangen..

  • Zitat von MrWellKnown;18649


    Richtig. Wenn die Abfrage früher oder später wieder in einem einfachen conditional jmp endet, lässt sich dass sehr einfach umgehen. Kenne auch einige Leute die einfach nen ExitProcess(0) nach der Abfrage des Antileaks benutzen (grö�te Protection einbauen aber dann per ExitProcess beenden^^) besser wäre es da einfach unbemerkt ein paar ASM-Register zu manipulieren und so einen Crash zu erzeugen. (was auf den 1. Blick aufjedenfall schwieriger zu entdecken ist..)


    =-0 Wenn du mal etwas geordneter schreiben würdest, hätte man auch mehr Lust es zu lesen.


    Wenn diese Leute die "grö�te Protection" einbauen, würde die Abfrage ja nicht in einem einfachen ExitProcess enden oder wo ist da die Logik ?
    Generell gilt es den eigendlichen Vergleich so gut wie möglich zu verbergen. Mit ASM-Register meinst du wohl die CPU-Register. Die Idee diese bei einem negativen Vergleich zu manipulieren und so eien Crash zu erzeugen, ist für den Anfang eher der falsche Ansatz.
    Es geht ja nicht darum das Beenden des Programms zu verbergen sondern den Vergleich, da der Reverser hier in den meisten Fällen Ansetzt.
    Zuerst sollte man z.B. lieber mehrere Abfragen einbauen, die den String Byte für Byte vergleichen ohne dabei nur einen Sprung zum Beenden des Programms zu verwenden. Man könnte die HWID auch so umwandeln, dass bei einer darauf volgenden Division ein "Division durch Null" Fehler auftritt und somit das Programm beendet wird.


    Das waren jetzt nur mal ein Paar kleine Beispiele aus tausenden von Möglichkeiten. Eigendlich wäre es das Beste, wenn jeder selber wüsste, wie die Reverser vorgehen, denn dann kann man die Schwachstellen seines Programms selber finden und wiederrum "Gegenmittel" einbauen.


    Etwas komplexere Schutzmechanismen werdet ihr in meinem Tut finden ;)

    [CENTER]Aktuelles Projekt:

    Status: 5%
    Real Coder doesn't code Visual Basic. Real Coder codes Opcodes.[/CENTER]

  • Man kann aber mehrere Verfahren kombinieren ;).
    Und fälschen lässt sich die HDDSerial ja auch.
    Sonst gibt es eine relativ einfache und sichere Methode - Verschlüsselung. Der Key wird aus HardwareKey gebildet, so dass der Leaker auch die ganzen Hardwarewerte weitergeben müsste (denn imho cracken nur die wenigsten Leaker die Tools selbst ;) ). Wenn man WindowsKey/ProduktID miteinbezieht, sollte es zumindest die Hemmschwelle zum weitergeben erhöhen.

  • Zitat

    besser wäre es da einfach unbemerkt ein paar ASM-Register zu manipulieren und so einen Crash zu erzeugen. (was auf den 1. Blick aufjedenfall schwieriger zu entdecken ist..)


    Das Ganze löst eine Exception aus (z. B. eine Access Violation, bei Sachen wie xor eax, eax; mov dword ptr [eax], eax), diese kann man aber mit dem Debugger ebenso leicht erkennen wie einen API-Aufruf. ;)