|
You last visited: Today at 14:09
Advertisement
[Tutorial] Trainer mit Psswörtern sichern
Discussion on [Tutorial] Trainer mit Psswörtern sichern within the AutoIt forum part of the Coders Den category.
06/02/2012, 21:41
|
#1
|
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
|
[Tutorial] Trainer mit Psswörtern sichern
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:
Code:
#RequireAdmin
#include <NomadMemory.au3>
$hGUI = GUICreate("Trainer", 222, 58, -1, -1)
$hPW_Label = GUICtrlCreateLabel("Enter Password:", 4, 8, 81, 17)
$hPW = GUICtrlCreateInput("", 88, 4, 129, 21)
$hHack = GUICtrlCreateCheckbox("Bad Hack", 4, 32, 73, 17)
$hStart = GUICtrlCreateButton("Start", 88, 28, 127, 25)
GUISetState(@SW_SHOW, $hGUI)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $hStart
_Start()
EndSwitch
WEnd
Func _Start()
$Passwort = GUICtrlRead($hPW)
If $Passwort = "Test" = 0 Then
MsgBox(0,"error", "You entered a wrong password!")
Exit
EndIf
$ProcessID = ProcessWait("S4Client.exe")
$Memoryhandle = _MemoryOpen($ProcessID)
_MemoryWrite(0x00000000, $Memoryhandle, "1337", "float")
_MemoryClose($Memoryhandle)
Exit
EndFunc
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:
Code:
#RequireAdmin
#include <NomadMemory.au3>
#include <Crypt.au3>
$hGUI = GUICreate("Trainer", 222, 58, -1, -1)
$hPW_Label = GUICtrlCreateLabel("Enter Password:", 4, 8, 81, 17)
$hPW = GUICtrlCreateInput("", 88, 4, 129, 21)
$hHack = GUICtrlCreateCheckbox("Bad Hack", 4, 32, 73, 17)
$hStart = GUICtrlCreateButton("Start", 88, 28, 127, 25)
GUISetState(@SW_SHOW, $hGUI)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $hStart
_Start()
EndSwitch
WEnd
Func _Start()
$Passwort = GUICtrlRead($hPW) ;pw aus inputbox
$Hashkey = "K1ramoX" ;der hashkey sollte auch nochmal gesichert werden
$Hash = "0x7BED19A51C6CA25B1D5CAF7DEC96A45D" ;der aes256 key, erzeugt aus dem hashkey und den pw
_Crypt_Startup()
$Key = _Crypt_DeriveKey($Passwort, $Hashkey, $CALG_MD5) ;key nachgenerieren
$Adress = _Crypt_DecryptData($Hash, $Key, $CALG_AES_256) ;adresse decrypten
$ProcessID = ProcessWait("S4Client.exe")
$Memoryhandle = _MemoryOpen($ProcessID)
_MemoryWrite($Adress, $Memoryhandle, "1337", "float") ;decryptete adresse schreiben
_MemoryClose($Memoryhandle)
_Crypt_DestroyKey($Key) ;closen
_Crypt_Shutdown()
Exit
EndFunc
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:
Code:
#include <Crypt.au3>
$Passwort = "Hallo123" ;dein pw was im trainer dann auch eingegeben werden muss
$Hashkey = "K1ramoX" ;der hashkey muss im programm enthalten sein
$Adress = 0x00000000 ;deine adresse oder der wert der verschlüsselt sein soll
_Crypt_Startup()
$Key = _Crypt_DeriveKey($Passwort, $Hashkey, $CALG_MD5) ;key generieren
$Data = _Crypt_EncryptData($Adress, $Key, $CALG_AES_256) ;encrypten
ConsoleWrite(@CRLF & $Data & @CRLF) ;ausgabe. ihr könnt auch msgbox oder so nehmen aber hier lässt es sich gut c&p'en
_Crypt_DestroyKey($Key) ;ende
_Crypt_Shutdown()
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
|
#2
|
elite*gold: 30
Join Date: Nov 2010
Posts: 4,806
Received Thanks: 3,483
|
Nicht schlecht Apple (Mega lappen)
hoffe nun das die billig trainer wenigstens halb wegs geschütz
|
|
|
06/02/2012, 21:58
|
#3
|
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
|
Quote:
Originally Posted by Cro´
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
|
#4
|
elite*gold: 30
Join Date: Nov 2010
Posts: 4,806
Received Thanks: 3,483
|
Quote:
Originally Posted by Kiramox
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
|
#5
|
elite*gold: 50
Join Date: Jul 2009
Posts: 1,276
Received Thanks: 463
|
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,"","**** yeah du bist gut!")
Else
Msgbox(0,"","Möp falsch!")
EndIf
EndFunc
|
|
|
06/08/2012, 18:49
|
#6
|
elite*gold: 2354
Join Date: Feb 2012
Posts: 602
Received Thanks: 59
|
Gute Arbeit ;D
|
|
|
08/09/2012, 11:42
|
#7
|
elite*gold: 0
Join Date: Jul 2009
Posts: 184
Received Thanks: 299
|
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
|
#8
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Diese Methode ist trotzdem sicher, da die Addys auch im Source noch verschlüsselt sind
|
|
|
08/09/2012, 13:27
|
#9
|
elite*gold: 0
Join Date: Jul 2009
Posts: 184
Received Thanks: 299
|
Die Addys kann man aber herausfinden machen ohne das ding zu decomplieren...
|
|
|
08/09/2012, 19:49
|
#10
|
elite*gold: 12
Join Date: Jul 2011
Posts: 822
Received Thanks: 180
|
Quote:
Originally Posted by Raschii
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,"","**** 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
|
|
|
 |
Similar Threads
|
[Tutorial] Cytriiks Trainer [Tutorial]
04/27/2011 - S4 League - 7 Replies
Here is the YouTube Video i made for Cytriik's trainer, Hope this helps!
YouTube - S4 League Unique Weapon Hack
1: Download Attached Files
2: Extract to S4 League Folder
3: Run Game
4: Remove ALL equipped items
5: Unlock ALL Licenses and all weapons in inventory
6: Go to inventory Press F11, DO NOT CLICK AWAY FROM THE TRAINER UNTIL YOU HAVE FINISHED TICKING ALL OF YOU'RE DESIRED WEAPONS OR IT WILL BUG.
|
[Tutorial] AdBot - Accounts sichern
02/15/2011 - DarkOrbit - 4 Replies
Ich möchte euch in diesem Tutorial erklären wie ihr eure Accs vom AdBot sichert.
VERALTET - OLD VERSION
German
Win 7
http://image-upload.de/get/Fn3HSz/6f389736df.jpg
Start -> Suchen nach regedit.exe und als Adminstrator ausführen!
|
Trainer Tutorial
07/04/2010 - Coding Tutorials - 12 Replies
Hi ,
da ich keine Lust habe mir Adressen rauszusuchen und gerade eh kein 4Story auf dem Rechner habe , schreibe ich einfach mal ein simples Tutorial , wie ihr einen 4Story Trainer erstellen könnt.:handsdown:
Der Trainer , wird am Beispiel von Pinball von Micisoft erklärt.
Da dies ein Tutorial , ist solltet ihr gründlich und genau lesen.
Ich werde es extra nicht an 4Story erklären , damit ihr selbst den Source
schreiben müsst !
1. Was brauche ich ?
|
Trainer Tutorial
05/13/2010 - Tutorials - 6 Replies
Sorry wenn wer anders schon mal einen thread zum gleich thema auf gemacht hat (hab nicht wirklich nachgeschaut) so aber jetzt zum Tut.:
Worum geht es hier ?
Dieses Tutorial soll euch zeigen wie man einen Trainer für ein Spiel macht.
Daher ich nur Starcraft und CS installiert habe wird es in diesem Tutorial
um einen Starcraft Trainer gehen.
Was benötige ich um das Tutorial zu verfolgen ?
|
All times are GMT +1. The time now is 14:09.
|
|