dynamische Verschlüsselung, Verständnisproblem



  • Hallo zusammen,

    ich mache mir im Moment Gedanken darüber, wie man ein Stück Software gegen sog. Patternscanning schützen kann, dass also im Speicher nach einer eindeutigen Signatur gesucht wird.

    Dazu habe ich mir eine Funktion gebastelt, die recht präzise die Länge einer Funktion ermittelt und dann dort die Bytes mit der Cäsar Verschlüsselung mit einem Randomkey verschiebt.

    int key = rand()%13;
    BYTE *funcpointer = (BYTE*)meinefunktion;
    
    for(int i = 0; i < funsize; i++)
       funpointer[i] += key;
    

    Damit ergibt sich bei jedem Test eine andere Signatur für diese Funktion. Um meinefunktion aufzurufen, muss man sie vorher mit -= key entschlüsseln und nach dem Aufruf wieder mit += key wiederholen.
    Jetzt gibt es aber noch das Problem, dass man nicht die eigentliche Verschlüsselungsfunktion verschlüsseln kann, ein Patternscan auf diese würde also einen Treffer bringen. Gibt es für dieses Problem eine Lösung oder geht das mit dieser Methode überhaupt nicht? Was fällt euch da als Alternative ein?

    greetz KN4CK3R



  • Meiner meinung nach nicht, die Bytes bleiben immer die gleichen und es muss immer einen Ansatz geben zum entschlüsseln also auch immer einen Angriffspunkt. Am besten du suchst dir nen super protector mit ner Virtuellen maschinen.



  • Themida, ich behaupte mal 99,9% der Cracker können das nicht knacken.



  • ums Cracken gehts auch gar nicht, soll nur immer andere Signaturen haben.
    Von Themida halte ich sehr wenig. Wer will schon ein Programm, was ungefragt Treiber installiert?!

    greetz KN4CK3R



  • ...... schrieb:

    Themida, ich behaupte mal 99,9% der Cracker können das nicht knacken.

    da wäre ich vorsichtig. Es gibt mittlerweile OllyDbg Scripts die nahezu jede Version von Themida unpacken und dabei braucht der "Cracker" nur auf Start Script zu klicken.


Anmelden zum Antworten