[Tutorial] Trainer mit Psswörtern sichern

06/02/2012 21:41 K1ramoX#1
Hallo und recht herzlich wilkommen zu einem neuen Tutorial von mir. Heute möchte ich euch zeigen wie ihr eure AutoIt Trainer vernünftig mit einem Passwort sichern könnt sodass man nur durch Brutforce ran kommen kann. Ich kenne dieses Prinzip schon länger, doch dadurch, dass ich jetzt anfange mein Wissen mit euch zu teilen, kläre ich erst jetzt alles auf.

Ihr kennt es vielleicht, ihr wollt einen Trainer machen und bestimmte Funktionen wollt ihr mit einem Passwort schützen aus verschiedenen Gründen.

Der übliche Weg wäre so:


Doch hier gibt es folgende Nachteile:

- Das Passwort ist im Programm gespeichert
- Die Abfrage lässt sich reversen

Jetzt werden sich einige fragen wie man dieses Problem gescheit lösen kann. Ich hatte mir lange einen Kopf darüber gemacht, letztendlich viel es mir beim reversen ein.

Wieso ist es notwendig dass das Passwort im Programm enthalten ist? Das ist doch eigentlich nur zum vergleichen notwendig. Doch ein Vergleich lässt sich ja umgehen. Wie ist es also möglich dass das Passwort dynamisch enthalten ist?

Dann kahm mir eine richtig gute Idee. Ihr wisst, das im Trainer Adressen sind für die Speichermanipulierung. Diese möchten wir schützen. Was ist, wenn wir diese Adressen richtig sichern und sie nur mit dem richtigen Passwort entschlüsseln lassen können? Doch, welche verschlüsselung sollten wir nehmen? Eine Idee wäre zum Beispiel ein MD5 Hash, doch da MD5 eine einseitige Verschlüsselung ist landen wir letztendlich wieder bei einem Vergleich. Dann kahm ich auf die Crypt.au3 und dadurch schließlich auf eine 256 Bit AES Verschlüsselung. Ich erkläre es euch mal kurz und knapp den theoretischen Teil:

- Passwort wird eingegeben
- Die Checkbox für die Funktion wird angeklickt
- Der Trainer wartet auf den Prozess
- Beim Manipuliervorgang wird die Adresse anhand des eingegebenen Passwort's entschlüsselt und dann weiterverarbeitet.

Dies würde als Script so aussehen:


Doch nun werdet ihr euch fragen wie ich den auf den Wert der Variable $Hash gekommen bin. Ein Script zum generieren solcher Hashes habe ich hier für euch gemacht:


Das war es auch schon. Ich hoffe es hat euch weitergebracht. Dieses Schema hier lässt sich natürlich auch auf anderes beziehen doch ich hab es mit einem Trainer in verbindung gebracht um es euch möglichst einfach zu erklären.

Falls Fragen offen stehen könnt ihr sie natürlich stellen. Doch bis dahin, tschüss! Bis zum nächstes Mal,

euer K1ramoX :)
06/02/2012 21:55 -Tap-#2
Nicht schlecht Apple (Mega lappen)
hoffe nun das die billig trainer wenigstens halb wegs geschütz :)
06/02/2012 21:58 K1ramoX#3
Quote:
Originally Posted by Cro´ View Post
Nicht schlecht applelappen
hoffe nun das die billig trainer wenigstens halb wegs geschütz :)
Wenn man das Prinzip hier anwendet sind sie nicht halbwegs geschützt sondern richtig gut. Das kann man dann nurnoch durch Brutfortce knacken und wenn das Passwort lang genug ist dann wird es auch lange dauern denn wir sprechen hier von einer 256 Bit Verschlüsselung.

Btw, Applelappen? I smell rage D:<
06/02/2012 22:01 -Tap-#4
Quote:
Originally Posted by Kiramox View Post
Wenn man das Prinzip hier anwendet sind sie nicht halbwegs geschützt sondern richtig gut. Das kann man dann nurnoch durch Brutfortce knacken und wenn das Passwort lang genug ist dann wird es auch lange dauern denn wir sprechen hier von einer 256 Bit Verschlüsselung.

Btw, Applelappen? I smell rage D:<
Naja ;O
eig ist es eher wichtig die addys zu sichern.
kannst ja gern darüber ein tut machen :) Peter
06/03/2012 12:05 Raschii#5
Mh ich verstehe nur die hälfte :P
Bzw. ich habe mir vorgestern erst AutoIt runtergeladen, gibt es auch ne copy/paste version? x)

So sah bisher meine Passwortfunktion aus xD:
Code:
Opt("MustDeclareVars", 1)
Password()

Func Password()

local $pwd

$pwd = InputBox( "Passwort eingebn Junge!", "Gebe das majestätische Passwort ein:", "mongo","*", 230 , 120)
GUISetState()

If $pwd = "majestro" Then
    MsgBox(0,"","Fuck yeah du bist gut!")
Else 
    Msgbox(0,"","Möp falsch!")
EndIf
EndFunc
06/08/2012 18:49 DeFuckd#6
Gute Arbeit ;D
08/09/2012 11:42 Smincke2#7
Gut gemacht, aber nicht sicher, weil AutoIt decompilierbar ist.
Eine sichere Methode währe ein du nimmst ein compiliertes Script, welches die mit der Crypt.au3 verschlüsselst und das Passwort nicht als abfrage nimmst, sondern zum entschlüsseln des compilierten Scriptes.
08/09/2012 13:14 Lawliet#8
Diese Methode ist trotzdem sicher, da die Addys auch im Source noch verschlüsselt sind ;)
08/09/2012 13:27 Smincke2#9
Die Addys kann man aber herausfinden machen ohne das ding zu decomplieren...
08/09/2012 19:49 coolcooliscool#10
Quote:
Originally Posted by Raschii View Post
Mh ich verstehe nur die hälfte :P
Bzw. ich habe mir vorgestern erst AutoIt runtergeladen, gibt es auch ne copy/paste version? x)

So sah bisher meine Passwortfunktion aus xD:
Code:
Opt("MustDeclareVars", 1)
Password()

Func Password()

local $pwd

$pwd = InputBox( "Passwort eingebn Junge!", "Gebe das majestätische Passwort ein:", "mongo","*", 230 , 120)
GUISetState()

If $pwd = "majestro" Then
    MsgBox(0,"","Fuck yeah du bist gut!")
Else 
    Msgbox(0,"","Möp falsch!")
EndIf
EndFunc
Dein passwort system hast du auch schön mit copy und paste geholt !

Back to Topic :Gutes tut das hab ich grade gebraucht :D