Register for your free account! | Forgot your password?

Go Back   elitepvpers > Shooter > S4 League > S4 League Hacks, Bots, Cheats & Exploits
You last visited: Today at 16:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Tutorial] Mit AutoIt einen Trainer erstellen

Discussion on [Tutorial] Mit AutoIt einen Trainer erstellen within the S4 League Hacks, Bots, Cheats & Exploits forum part of the S4 League category.

Closed Thread
 
Old 10/03/2011, 13:25   #16
 
elite*gold: 0
Join Date: Oct 2011
Posts: 28
Received Thanks: 2
hab eine frage würdest du hier ein vid rin stellen wo du alles von den trhead machst weil dann kann ich es auch und dann kann ich mein hack hier vllt rein stelln^^
woppel2 is offline  
Old 10/03/2011, 16:12   #17
 
CyberShoxx's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 1,449
Received Thanks: 3,835
Quote:
Originally Posted by woppel2 View Post
hab eine frage würdest du hier ein vid rin stellen wo du alles von den trhead machst weil dann kann ich es auch und dann kann ich mein hack hier vllt rein stelln^^
Was ändert ein Video an der Sache? Das einzige Problem ist doch nur die GUI, aber das ist doch nun wirklich nicht sehr schwer
CyberShoxx is offline  
Old 10/03/2011, 17:50   #18
 
elite*gold: 0
Join Date: Oct 2011
Posts: 28
Received Thanks: 2
aber ich kann mit denn downloads ned anfangen weil brauch ja den progamm dawo ich ned den namen weis und noch die anderen wichtigen downloads
woppel2 is offline  
Old 10/03/2011, 18:44   #19
 
CyberShoxx's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 1,449
Received Thanks: 3,835
Die Laufzeitumgebung in der Scriptest nennt sich AutoIt D: Einfach googlen, da is auch der Scite Editor downlaodlink dabei D:
CyberShoxx is offline  
Old 10/03/2011, 20:59   #20
 
dragon710199's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 77
Received Thanks: 23
Endlich finde ich ein Tutorial auf deutsch nice
dragon710199 is offline  
Old 10/03/2011, 21:21   #21
 
elite*gold: 0
Join Date: Jan 2011
Posts: 78
Received Thanks: 37
English. Put the links from the original Text


Hallo, heute zeige ich euch wie ihr einen AutoIt Trainer macht bei dem ihr auch versteht was er tut! Als erstes solltet ihr AutoIt und Scite Script Editor installiert haben. Dann kann es auch schon direkt losgehen. Doch vorerst muss ich euch noch sagen das ich dieses Tutorial nur auf Deutsch schreibe. Englisch aus dem Grund nicht, da dieses Tutorial eher für Leute gedacht ist die der deutschen Sprache mächtig sind und außerdem kann ich nicht so gut Englisch.

Also, erstellt euch ein neues au3 Script. Nun kann es auch schon direkt losgehen. Als erstes wollen wir eine GUI (graphical user interface = grafische Benutzeroberfläche) machen bei der wir 2 Checkboxen machen (also 2 verschiedene Funktionen). Da ich nicht der Fan on solchen Start Buttons bin, machen wir es direkt so dass unser kleines Programm nach S4 prüft. Also hier nochmal die Aufgaben als Liste:

1. Erstellen einer GUI mit 2 verschiedenen Funktionen
2. Automatisches Wartn auf den S4Client
3. Ändern der Werte
4. Beenden des Programmes

Also, ich hoffe ihr versteht schon ein bisschen AutoIt und den Umgang mit dem Koda Form Designer. Also, geht in Scite klickt dort auf auf Tools. Nun klickt ihr auf Koda Form Designer. Dort könnt ihr alles mögliche an eurer GUI einstellen. Aber da wir nur 2 Checkboxen haben wollen fügen wir diese ein.



Die eine Checkbox nennen wir Shophack, die andere No Fog. Vergesst bitte nicht eure GUI umzubennen!



So nun fügen wir diese in Scite ein.





Doch dieser Code ist einfach nur Hässlich. Wieso? Nunja, erstes sind 1-2 Includes unnötig außerdem sind viele Sache Zeilenverschwendung und die Variablen müssen noch umbenannt werden. Also, welche Includes sind denn unnötig? Also auf jeden Fall die ButtonConstants.au3 und dann noch bedingt die GUIConstantsEx.au3. Was macht sie denn so unnütz? Diese Includes sind vollgepumpt mit Variablen. Doch die meisten bauchen wir hier nicht. Also entfern bitte folgendes:

Code:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>

Dann seht ihr noch so ein

Code:

#Region ### START Koda GUI section ### Form=

und ein

Code:

#EndRegion ### END Koda GUI section ###

Diese dienen nur zur Übersicht. Aber da wir bei unseren kleinen Trainer nicht so viel Code haben sind diese unnütz. Also entfernen wir dies auch. Das nächste wäre dass

Code:

GUISetState(@SW_SHOW)

Was ist daran verkehrt? Eigentlich nichts, doch dass "@SW_SHOW" spielt für uns hier kein Rolle. Also macht das weg. Das sollte dann so aussehen:

Code:

GUISetState()

So, als nächstes sollten wir die Variablen umbenennen. Wieso? Infach desswegen weil es übersichtlicher ist und das $Form1 zB doof aussieht. Also nennen wir zB die $Form1 Variable zu $hGUI um. Die $Checkbox1 zu $Shophack. Letzendlich noch die $Checkbox2 zu $No_Fog. So, wenn wir nun unsere GUI anschauen wollen können wir einen kurzen Testlauf starten. Drück dazu einfach F5. Huch! Was passiert denn da? Ein Fehler? Wir haben doch eigentlich alles richtig gemacht oder? Im Prinzip ja, aber gehen wir doch mal durch was er uns mitteilen will. Er sagt "$GUI_EVENT_CLOSE: undeclared global variable.". Was sollen wir darunter verstehen? Er will uns mitteilen das die Variable $GUI_EVENT_CLOSE mit keinem Wert definiert ist, und er jetzt nicht weiß was er tun soll. Woran liegt dass? Wir haben ja die unnötigen Includes entfernt, und ich meinte dass wir die GUIConstantsEx.au3 nur bedingt brauchen. Bedingt definiere ich in diesen Fall mal mit "Wir brauchen nur eine Variable und zwar diese $GUI_EVENT_CLOSE". Doch was sollen wir nun tun? Ganz einfach, würden wir bei den Includes nachsehen würden wir rausfinden dass $GUI_EVENT_CLOSE mit dem Wert "-3" definiert ist. Also tauschen wir die Variable mit einer -3. Das sieht dann so aus

Code:

Case -3

So, nun können wir unser Programm mit F5 nochmal starten. Bei mir sieht die GUI ganz okay aus, ist jetzt aber nichts besonderes.



So, weiter gehts. Man sagt ja immer man soll die Trainer als Admin starten. Doch wir können das auch umgehen mit dem Befehl #RequireAdmin. Damit überprüft das Programm ob Adminrechte vorhanden sind, und teilt einen mit das dieses Programm welche erfordert. Also setzen wir den Befehl #RequireAdmin ganz oben am Anfang unseres Scriptes hin.

Achja, falls ihr eine Funktion nicht versteht, dann markiert sie und drückt F1. Dann öffnet sich das AutoIt Hilfefenster und dort ist die Funktion erklärt, meistens auch mit Beispielen.

Nun geht es weiter zum Überprüfen, ob der Prozess namens S4Client.exe vorhanden ist. Wenn ja soll er eine Funktion aufrufen. Doch wie stellen wir das am besten an? Schauen wir uns mal diesen Codeteil genauer an:

Code:

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit

EndSwitch
Wend

Dies ist in typisches Beispiel einer Schleife. Mit dem Befehl $nMsg = GUIGetMsg() wird sozusagen die GUI gefragt ob irgendwelche Aktionen zu tun sind. Mit Switch $nMsg tun wir in eine sozusagene Unterschleife wechseln bei der sich alles um die Variable $nMsg dreht. $nMsg ist die Variable für die Abruffunktion usnerer GUI. Mit Case -3 stellt er eine "Wenn Bedingung" her. Also, wenn -3 herrscht (also die GUI geschlossen wird) dann soll er den befehl Exit ausführen was das Beenden des Programmes bedeutet. Mit EndSwitch gehen wir aus dieser "GUI Schleife" wieder heraus und der Befehl Wend schließt die Schleife komplett ab. Phu, harter Tobak aber wir schaffen das schon. Also, wo sollten wir unsere Abfrage am besten hintun? Ich werde das direkt unter den

Code:

Case -3
Exit

machen. Eine "Wenn Bedingung" machen wir mit dem Befehl If. Das Abfragen eines Prozesses machen wir mit ProcessExists. Also wohl an, ich werde dass hier so machen:

Code:

If ProcessExists("S4Client.exe") <> 0 Then
_Werte_Ändern()
EndIf

Das bedeuted folgendes, Wenn der Prozess S4Client.exe orhanden ist dann soll die Funktion _Werte_Aendern() aufgerufen werden. Mit EndIf schliefen wir diese ganzen If, Then Sachen ab. So, doch nun ist das Problem dass wir _Werte_Aendern() noch nicht gemacht haben. Also machen wir uns diese Funktion. Dies machen wir mit dem befehl Func. Wir schreiben ganz unten folgendes hin:

Code:

Func _Werte_Aendern()

EndFunc

So, nun ist unsere Funktion bereit, doch es steht nichts drin. Also füllen wir diese. Als erstes solltet ihr euch die NomadMemory.au3 UDF (UDF = User definied function = Benutzerdefinierte Funktion) downlaoden. Diese findet ihr eigentlich überall, am besten ihr sucht aber bei Google. Habt ihr sie gedownlaodet, so geht ihr in euren programm Ordner und dann zum AutoIt Ordner. Dort öffnet ihr den Include Ordner und fügt diese dort ein. So, weiter zum Script. Erstmal müssen wir sie includieren (einbeziehen) in unser Script damit wir sie benutzen können. Dies folgt wie bei den WindowsConstants.au3 über den Befehl #include ab. Nur bei dem Include Befehl gibt es 2 verschidene Arten, ich erkläre diese mal.

Code:

#include "NomadMemory.au3"

und

Code:

#include <NomadMemory.au3>

Im großen und ganzn sehen sie sich sehr ähnlich. Nur statt bei den "" wird beim 2. Befehl ein <> genutzt. Wo befindet sich der Unterschied? Wenn ihr "" benutzen tut dann sagt ihr dem Programm dass sich eure Include Datei im selben Bereich/Ordner wie euer Script befindet. Schriebt ihr aber <> so teilt ihr dem Programm mit dass sich eure Include Datei im Include Ordner von AutoIt befindet. Im großen und ganzen simpel. Da wir nun aber die NomadMemory.au3 in den Include Ordner von AutoIt getan haben müssen wir demzufolge welchen Befehl nehmen?

Spoiler:


Diesen setzen wir nun ganz oben bei den WindowsConstants.au3 hin, es ist egal ob drüber oder drunter.

So, nun geht es ans Memorychanging. Dies ist nicht sonderlich schwer wenn man die Funktionen versteht. Folgende Arbeitsabläufe müssen wir machen:

1. Den Memory von S4Client.exe öffnen
2. Auslesen ob ein Häckchen in der Checkbox gesetzt wurde
3. In den Speicher schreiben
4. Den Memory von S4 Client.exe schließen
5. Das Programm beenden

So fangen wir an. Als erstes müssen wir dem Programm sagen welchen Prozess er öffnen soll. Dafür nutzen wir ProcessExists. Dieser Befehl holt sich die PID (Process ID) von den angegebenen Prozess und gibt diese zurück. Da er diese zurückgibt müssen wir das ja irgendwo speichern. Dafür setzen wir diesen Befehl einfach in eine Variable. Das dürfte dann so aussehen:

Code:

$PID = ProcessExists("S4Client.exe")

Also setzen wir nun diesen Befehl in unsere Funktion rein. Diese sieht nun so aus:

Code:

Func _Werte_Aendern()
$PID = ProcessExists("S4Client.exe")
EndFunc

Gut, nun sollten wir erstmal den Speicher von den S4Client öffnen. Dafür gibt es den Befehl _MemoryOpen. Und als Prozess geben wir unsere Variable $PID an die ja die Prozess ID (kurz PID) von S4Client.exe besitzt. Das sollte dann so aussehen:

Code:

$Open = _MemoryOpen($PID)

Um den geöffneten Speicher (aka. Memory) nutzen zu können speichern wir das in einer Variable. Um mich daran besser orientieren zu können nehme ich die Variable $Open. Merkt euch, jede Variable in AutoIt muss mit einem $ beginnen, da sonst das Programm nicht weiß das ihr eine Variable deklarieren wollt.

So, nun müssen wir abfragen ob Chophack oder No Fog ausgewählt worden ist. Dafür gibt es den Befehl GuiCtrlReat. Diese Aufgabe werden wir in einer If Abfrage lösen. Hier mal die Lösung:

Code:

If GUICtrlRead($Shophack) = 1 Then
EndIf
If GUICtrlRead($No_Fog) = 1 Then
EndIf

Zuerst fragen wir ob er aus der Variable Shophack den Wer 1 lesen tut. Der Wert 1 bedeuted beim Programmieren (oder in diesem Fall beim Scripten) True. Demzufolge würde welche Zahl für False stehen?

Spoiler:


So, nachdem wir jetzt wissen wofü 1 und 0 steht können wir auch direkt mit dem Werteändern beginnen. Dafür haben wir den Befehl _MemoryWrite. Dieser ist etwas kompliziert. Schauen wir uns doch mal die Syntax an.

Code:

_MemoryWrite($iv_Address, $ah_Handle, $v_Data, $sv_Type = 'dword')

Also, hier mal die Erklärung:

$iv_Address -> Hier unsere Adresse. Vergesst nicht das 0x davor da die gesuchten Adressen mit Cheat Engine fast immer Hexdezimal sind.
$ah_Handle -> Das Prozesshandle. Also unsere $Open Variable
$v_Data -> unser Wert in den wir die Adresse ändern wollen. Merkt euch, den Wert in "" zu schreiben.
$sv_Type = 'dword' -> Den Typ des Wertes den wir nutzen. Es gibt viele unterschiedliche Typen, hier mal ein paar aufgelistet:

Float -> Floats sind Gleitkommazahlen, also Zahlen wie 1.4 oder 1 oder 6.7846485 oder 23512873.23768123. Floats sind 4 Bytes groß.
Doule -> Double sind doppelte Floats. Dementsprechend sind sie 8 Bytes groß. Dadurch lassen sich deutlich präzisere Zahlen errechnen.
char -> chars sind strings. Also Werte wie "Hallo" oder "Deine Mudda123" oder "elite34_5"
long -> das sind Werte im 4 Bytes Bereich

So, das genug Datentypen, wenn ihr mehr braucht könnt ihr sie ja einfach mal googeln. Nur eins muss ich euch noch klar machen, nämlich der Umgang mit char. Angenommen ich habe das Wort "Hallo", dann müsste ich folgendes bei $sv_Type = 'dword' schreiben:

char[6]

Wieso char[6]? Char um unseren Programm zu sagen das wir ein Wort nehmen. Die 6 steht für die Buchstabenanzahl + 1. Unser Wort "Hallo" besteht aus 5 Buchstaben. Plus 1 gerechnet ergiebt dies die Zahl 6. Doch wieso +1? Das liegt daran dasman beim Schreiben des Speichers ein Byte mehr benutzen muss. Doch wieso? Weil ein String mit einem "\00" Byte abgeschlossen wird. Desswegen wird bei Cheat Engine auch gefragt "Terminate string with zero".

Aber weiter nun zum Memorychange Befehl. Angenommen wir haben die Adresse 0x00D3F00C (keine Angst, die Adresse ist uralt und gilt schon lange nichtmehr). Diese ist ein String namens "Off". Wir wollen diesen String in On changen um unseren Shophack zu erzielen. Also sieht unser Befehl so aus:

Spoiler:


Super, da dies der Shophack ist müssen wir den aber auch in die Abfrage des Shophacks reintun. Welche war das nochmal?

Spoiler:


Also müsste dass dann so aussehen:

Spoiler:


Gut gemacht, nun aber noch No Fog. Angenommen wir haben die Adresse 0x00F87CD1 (Diese Adresse funktioniert ebenfalls nicht da sie erfunden ist). Diese Adresse ist ein Float und wir möchten sie in den Wert 6.2 ändern (ist kein Originalwert denn No Fog ist eigentlich ein String aber ich möchte euch noch zeigen wie das in Float geht). Also selbe Frage wieder. Wo packen wir das hinein?

Spoiler:


Okay, und wie würde es mit dem MemoryWrite Befehl aussehen?

Spoiler:


So, ich muss aber noch sagen dass ihr das "Float" nicht unbedingt großschreiben müsst. Ihr könnt zB auch FLOAT oder float schreiben dass ist egal. Hauptsache ist dass das Programm es versteht.

So, das war es ja auch schon fast. Es fehlen uns noch 2 Arbeitsvorgänge. Das schließen des Speichers (auf Englisch Memory) und das beenden des Programmes. Als erstes schließen wir mal den Memory. Wo? Unter unsere ganze If Abfragen. Zum schließen des Speichers gibt es den Befehl _MemoryClose. Dieser ähnelt stark den _MemoryOpen Befehl. Doch wie nutzen wir ihn? Ganz simpel, geöffnet haben wir den Memory mit _MemoryOpen und haben es in der Variable $Open gespeichert. Da wir nun den geöffneten Memory schließen wollen, nehmen wir einfach wieder die $Open Variable und überschreiben diese. Das sollte dann so aussehen:

Spoiler:


Fein gemacht. Nun noch das Beenden des Programmes. Dafür gibt es den Befehl Exit. Also schreiben wir direkt unser unseren _MemoryClose Befehl ein Exit.

Respekt, ihr habt soeben euren Trainer fertig gemacht. Eure Funktion _Werte_Aendern dürfte nun so aussehen

Spoiler:

Noch etwas, wenn ihr euren Source kommentieren wollt dann setzt vor euren Kommentaren ein ";". Also zB so

Code:

;Hallo das ist ein Kommentar

Kommentare werden in AutoIt Grün angezeigt und haben den zweck euch bei der Übersichtlichkeit eures Programmes zu helfen.

Da ihr mit eurem Programm nun fast fertig seid geht es um den Feinschliff. Drückt dafür einfach STRG + T. Schon wird eurer AutoIt Source in die richtige Form gebracht und ist gleich viel Überswichtlicher. Nun geht es ums Compilen. Dabei wird euer geschriebener Source kompressiert und in einer ausführbaren Datei auf euren Computer gespeichert. Wenn ihr Compilen wollt drückt ihr STRG + F7. Dann kommt ihr in das Compile Fenster von AutoIt. Jetzt bestehen trotzdem noch ein paar Fragen. Ich würde ruch empfehlen bei Output type A3X auszuwählen.


Aus den Grund weil dadurch euer Script in der Laufzeitumgebung von AutoIt gestartet wird und somit mehr Rechte hat. Der Nachteil ist, dass der Traineruser AutoIt installiert haben muss. Wenn ihr bei Output type EXE ausgewählt habt dann brauch der User zwar kein AutoIt aber es wird höchstwahrscheinlich nicht funktionieren da euer Programm nicht genug Rechte hat. Also empehle ich euch A3X auszuwählen.



Nun noch Output arch.

Dort müsst ihr auswählen für welche Bit Systeme euer Programm läuft. Ich empfehle euch "Compile X86 version. (default)" auszuwählen, da es dann bei 32 Bit und 64 bit funktioniert.



So, ob ihr UPX benutzen wollt müsst ihr wissen. Wenn ihr euer Programm im Anschluss noch mit Themida packen wollt (geht nur wenn ihr es als EXE compilen tut) dann dürft ihr UPX nicht auswählen.

Wenn ihr fertig seid drückt ihr auf Compile Script und euer Programm wird erstellt.



Das war es auch schon mit meinem kleinen Tutorial. Ich hoffe doch sehr ihr habt etwas gelernt und nicht nur C&P gemacht. Man sollte schließlich wissen was man tut

Bei Fragen jeglicher Art steh ich euch natürlich zur Verfügung. Es würde mir aber gefallen wenn ihr die Fragen in diesen Thread posten würdet da ich nicht so auf PM Spam stehe.

Ansonsten, schönen Tag noch!

Btw, wer nicht googlen kann findet diverse Dateien unten im Anhang Unter Anderem ist das die NomadMemory oder zB unser Trainerscript.

Downloads

AutoIt
Angehängte Dateien
Dateityp: rar Nomad Memory.rar (3,2 KB, 29x aufgerufen)
Dateityp: rar Trainerscript.rar (588 Bytes, 38x aufgerufen)
zwergenkind is offline  
Thanks
1 User
Old 10/03/2011, 22:15   #22
 
elite*gold: 0
Join Date: Aug 2011
Posts: 85
Received Thanks: 22
schon wieder so ein release es gibt ein sehr gutes ! von Jakefrost77

schon wieder so´n kack mehr muss ich wohl nichts dazu mehr sagen
NetRockZz is offline  
Old 10/04/2011, 14:24   #23
 
CyberShoxx's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 1,449
Received Thanks: 3,835
Quote:
Originally Posted by NetRockZz View Post
schon wieder so ein release es gibt ein sehr gutes ! von Jakefrost77

schon wieder so´n kack mehr muss ich wohl nichts dazu mehr sagen
Tja, man sollte erstmal lesen bevor man kagge schreibt ;O Jake seins erklärt das MemoryChanging mit WinAPI. Das hier ist NomadMemory. Und meins ist besonders für Anfänger spezialisiert. Jake seins ist etwas schwerer zu begreifen. Und was ist daran bitte kack? Hab mir extra viel Mühe gemacht, machs erstma besser :P
CyberShoxx is offline  
Thanks
1 User
Old 10/21/2011, 21:08   #24
 
elite*gold: 0
Join Date: Oct 2011
Posts: 23
Received Thanks: 25
ich kapier das irg wie net ka ob ich das falsche downloade oder so kannst du mir pls ein link geben von wo du autoit und das andere her hast ??
labla9898 is offline  
Old 10/21/2011, 21:33   #25
 
bobwm's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 59
Received Thanks: 73
Rough translation using Google.. You can kinda understand it xD .. thankfully he can spell correctly in german


Hello, today I will show you how you make a trainer at the AutoIt you understand what he is doing well! The first thing you should have installed Scite and AutoIt Script Editor. Then it depends on your right. But first I must tell you yet that this tutorial was written only in German. English from the ground, since this tutorial is intended more for the people of the German language is powerful, and also I can not speak English so well. So, you created a new au3 script. Well it depends on your right. First, we want a GUI (graphical user interface = GUI) make when we make two check boxes (ie two different functions). Since I do not have the fan on such a start button, we do it right so that our small program checks to S4. So here are the tasks as a list: first Creating a GUI with two different functions of second Automatic Wartner S4Client on the third Change the value fourth Exit the program So, I hope you understand a bit AutoIt and dealing with the Koda Form Designer. Well, there goes Scite click on Tools. Now click on Koda Form Designer. There you can adjust everything to your GUI. But because we want to have only two check boxes, we add them. The one we call checkbox Shop Hack, No Fog others. Please do not forget to rename your GUI! So now we add this one in Scite. But this code is just plain ugly. Why? Well, first are 1-2 Includes are also many things unnecessarily waste lines and the variables must be renamed. So, which includes are as unnecessary? So definitely the ButtonConstants.au3 and then caused the GUIConstantsEx.au3. What's she doing so useless? This includes are pumped full of variables. But most of us here do not bulge. So please remove the following:


Code:
# Include < ButtonConstants . au3 >
# include < GUIConstantsEx . au3 >Then you see another one of

Code:
# Region # # # START Koda GUI section # # # Form =and a

Code:
EndRegion # # # # END Koda GUI section # # #These are a survey. But since we are not in our small coaches have so much code they are useless. So we remove this as well. The next thing that

Code:
GUISetState ( @ SW_HIDE )What's wrong with that? Actually nothing, but that "@ SW_HIDE" plays no role for us here. So does the way. It should look like this:

Code:
GUISetState ()So, next we should rename the variables. Why? Asy on that account because it is clearer and the $ Form1 as goofy looks. So we call for example to the Form1 variable $ to $ hGUI. The $ to $ Checkbox1 shop hack. Ultimately even the $ Checkbox2 to $ No_Fog. So if we now want to look at our GUI, we can run a short test run. Simply pressing F5. Yikes! What happened there? A mistake? We have done everything right but really you? In principle, yes, but some games we go through what he wants to tell us. He says "$ GUI_EVENT_CLOSE: undeclared global variable.". What are we to understand by this? He wants to tell us that the variable $ GUI_EVENT_CLOSE is defined with no value, and now he does not know what to do. Why is that? We have removed the unnecessary includes, and I said that we need the GUIConstantsEx.au3 limited. I define in this case due to time "We need only one variable and that this $ GUI_EVENT_CLOSE". But what shall we do now? Quite simply, we would would find out that we look at the includes $ GUI_EVENT_CLOSE is defined with the value "-3". So we replace the variable with a -3. It looks like this

Code:
Case - 3So, now we can start our program with F5 again. For me, the GUI looks quite okay, but now is nothing special. So far. They say you always want the coaches start as admin. But we can also deal with the command # RequireAdmin. Thus, the program checks whether admin rights are available, and tells the one with which this program requires. So we use the command # RequireAdmin top out at the beginning of our script. Oh, and if you do not understand a function, then it marks and press F1. Then you see the AutoIt Help window and there is the function explained in most cases with examples. Now, it goes further to check whether the process is called S4Client.exe available. If so, he will call a function. But how do we go to the best? Let's look more closely at this piece of code:


Code:
While a
$ nMsg = GUIGetMsg ()
Switch $ nMsg
Case - 3
Exit

EndSwitch
ApplicableThis is a typical example of a loop. Use $ nMsg GUIGetMsg = () is the GUI as it were asked whether any actions are done. With Switch $ nMsg we do speak in a lower loop switch in which everything revolves around the variable $ nMsg. $ NMsg is the variable for the demand function usnerer GUI. -3, It represents a case with "If condition" her. So if there is -3 (ie, the GUI is closed) then he should run the command exit which means the end of the program. EndSwitch we go out with this "GUI loop" out of the command and closes the loop Wend completely. Phu, strong stuff but we'll get through this. So where should we hintun query our best? I will directly under the

Code:
Case - 3
Exit. make An "If condition" If we do with the command. The interrogation of a process we do with ProcessExists. So good to, I'll do that here as follows:

Code:
If ProcessExists ( "S4Client.exe" ) <> 0 Then
_Werte_ Ä change ()
EndIfThat means the following, if the process is then S4Client.exe orhanden _Werte_Aendern, the function () is called. We slept with all these EndIf If, Then things off. So, but now the problem is that we have _Werte_Aendern () has not done. So we go to such function. We do this with the command Func. We write the very bottom to the following:

Code:
Func _Werte_Aendern ()

EndFuncSo, now our function is ready, but there is nothing in it. So we fill them. The first thing you should definitely check the downlaod NomadMemory.au3 UDF (UDF = User definied function = User-defined function). These are found virtually everywhere, but at best you're looking at Google. Have you gedownlaodet them, so you go into your program folder and open the AutoIt folder. There you will open the include folder and paste it there. So, on to the script. First we have (include) included from it in our script so we can use them. This follows from the WindowsConstants.au3 over the command from # include. Only with the include command, there are the Different Types 2, I declare these times.

Code:
# Include "NomadMemory.au3"and

Code:
# Include < memory nomad . au3 >By and large ganzn they look very similar. Only place in the "" is the second Command <> used. Where is the difference? If you use "" then do you say that the program is located in the same area of ​​your include file / folder as your script. But her Schriebt <> as the program tells you that your include file in the include folder of AutoIt. By and large, simple. Now that we have done but the NomadMemory.au3 in the include folder of AutoIt, we must therefore assume what warrant?

Spoiler:


This we are now back at the top WindowsConstants.au3, it does not matter whether over or under it. Well, now it goes to the Memory Chan Ching. This is not particularly difficult if you understand the functions. Following processes do we have to first Open the Memory of S4Client.exe second Reading if a tick was placed in the checkbox third Write into memory 4th The memory of S4 Client.exe close fifth Exit the program , we'll start. First we must tell the program what process he should open. We use ProcessExists. This command gets the PID (Process ID) of the specified process and returns the value. As he returns this so we need to save somewhere. We use this simple command in a variable. This should look like this:



Code:
$ PID = ProcessExists ( "S4Client.exe" )So now we put this command in our purely functional. This now looks like this:

Code:
Func _Werte_Aendern ()
$ PID = ProcessExists ( "S4Client.exe" )
EndFuncWell, now we should first open the memory of the S4Client. There are command _MemoryOpen. And when we give our process $ PID variable to yes, the process ID (or PID) has by S4Client.exe. It should look like this:

Code:
$ Open = _MemoryOpen ( $ PID )To take advantage of the open space (aka. memory) we can store this in a variable. To orient myself better because I can take the variable $ Open. Remember this, each variable in AutoIt must begin with a $, because otherwise the program do not declare a variable that you want. So, now we have to query whether or Chophack has been selected No Fog. There are command GuiCtrlReat. This problem will be solved in an If request. This time the solution:


Code:
If GUICtrlRead ( $ Shop Hack ) = 1 Then
EndIf
If GUICtrlRead ( $ No_Fog ) = 1 Then
EndIfFirst, we ask whether he made the variable store the hack who does read first A value of 1 bedeuted for programming (or in this case the script) True. Consequently, what number would represent False?

Spoiler:


So after we now know what is 1 and 0, we can also start directly with the values ​​change. We have orders _MemoryWrite. This is somewhat complicated. Let's take a look at the syntax.

Code:
_MemoryWrite ( $ iv_Address , $ ah_Handle , v_Data $ , $ sv_Type = 'dword' )So, here times the statement: $ iv_Address -> Here is our address. Do not forget the 0x before that because the requested addresses with Cheat Engine are almost always hexadecimal. ah_Handle $ -> The process handle. So our variable $ Open $ v_Data -> our value we want to change the address. Remember this, the value to write to "". sv_Type $ = 'dword' -> The type of the value we use. There are many different types, listed here a few times: float -> Floats are floating point numbers, so numbers like 1.4 or 1 or 6.7846485 or 23512873.23768123. Floats are 4 bytes in size. Doule -> Double are double floats. Accordingly, they are 8 bytes in size. This can be calculated much more precise figures. char -> chars are strings. So values ​​like "Hello" or "Your Mudda123" or "elite34_5" long -> the values ​​in the range 4 bytes are So, that enough data types, if you need more you can even just googled it again. Only one thing I must make clear to you yet, namely the use of char. Suppose I have the word "Hello", then I would have the following at $ sv_Type = 'dword' write: char [6] Why char [6]? Char to say about our program we take a word. The 6 stands for the number of characters + 1 Our word "Hello" has 5 letters. Plus, this one counted the number 6 ergiebt But why +1? This is because when writing the Dasman memory must use one byte more. But why? Because a string is terminated with "\ 00" bytes. Dess is due at Cheat Engine also asked "Terminate string with zero". But now continue to change memory command. Suppose we have the address 0x00D3F00C (do not worry, the address is very old and is long gone). This is a string called "Off". We want changen On this string in order to achieve our shop hack. So our command looks like this:


Spoiler:


Super, as this is the shop we have to hack the reintun but also in the interrogation of the shop hack. What was that again?

Spoiler:


So would that look like this:

Spoiler:


Well done now but still no fog. Suppose we have the address 0x00F87CD1 (This address does not work either because it is invented). This address is a float and we wish to change in the value of 6.2 (original value is not because No Fog is actually a string but I still want to show you how to do it in float). So same question again. Where we'll put it in?

Spoiler:


Okay, and how it would look like with the memory write command?

Spoiler:


So, I have to say but that her "float" not necessarily have to capitalize. You can also write as FLOAT or float that is no matter. The main thing is that the program understands. So, that was indeed almost. We are still missing two operations. The close of the memory (memory in English) and the end of the program. First time we close the Memory. Where? If among all our queries. To close the store there is the command _MemoryClose. This is very similar to the _MemoryOpen command. But how do we use it? Quite simply, we have opened with the Memory _MemoryOpen and have it stored in the variable $ Open. Since we now want to close the open memory, we simply re-open the $ variable and overwrite it. It should look like this:



Spoiler:


Finely made. Now exiting the program. There is the Exit command. So we write our direct our _MemoryClose command exit. respect, you've just made ​​your coach ready. Your function should look like now so _Werte_Aendern



Spoiler:

One more thing, if you want to comment on your source then uses before your comments ",". , Like that

Code:
; Hi , this is a commentComments appear in green AutoIt and have the purpose to help you with the clarity of your program. Since you're using your program now almost finished it comes to finishing touches. Pressing CTRL + T. Even this simple AutoIt is your source into the right shape and is made ​​much the same Überswichtlicher. Now it's about the compiler. This is your source of written and stored in an executable file kompressiert on your computer. If your compiler do you want pressing CTRL + F7. Then you come into the Compile AutoIt window. Now there are still a few questions. I would recommend for odor A3X select Output type. On the ground because this is your script in the runtime environment started with AutoIt and therefore has more rights. The disadvantage is that the coach AutoIt users have installed. If you have selected for output executable then type the user need not a AutoIt but it will most likely not work because your program does not have enough rights. So I empehle A3X you select. Now arch nor output. where you have to choose which bits systems for your program is running. I recommend you "compile X86 version. (Default)" option, because it then at 32-bit and 64 bit works. So, whether you use UPX want you know. If you want your program even after pack with Themida (will only work if you do it compile as EXE) then you are allowed to choose not UPX. When you're done press her on Compile Script and your program is created. That's it already my little tutorial. I do hope you've learned something and not just C & P made. One should finally know what to do if I stand any questions to you of course. It would give me but please if you did the questions in this thread post because I am not one for PM. Otherwise, nice day! Btw, those who can not googling finds several files at the bottom in the notes Among other things, this is the Nomad memory or as our Trainer Script.
bobwm is offline  
Thanks
4 Users
Old 10/21/2011, 21:36   #26
 
elite*gold: 0
Join Date: Oct 2011
Posts: 23
Received Thanks: 25
.
labla9898 is offline  
Old 10/21/2011, 22:03   #27
 
elite*gold: 50
Join Date: Jan 2010
Posts: 92
Received Thanks: 32
Spammt mal nicht so viel
Krieger010 is offline  
Old 10/30/2011, 09:23   #28
 
elite*gold: 370
Join Date: Mar 2011
Posts: 2,339
Received Thanks: 672
Nice tut , kannst du mir vielleicht die codes
über eine Nachricht senden

Codes von : 1 hit , godmode , inf sp , wallshout , hit range , Speedhack , Multi hit , no rules

Dankke
StylerYo is offline  
Old 10/30/2011, 13:26   #29
 
elite*gold: 0
Join Date: Sep 2010
Posts: 48
Received Thanks: 1
Sehr sehr sehr nice! aba leider nix verstanden xDDD Hätte auch mal gern eine wallhack(inf.wall) code
kawa29 is offline  
Old 10/30/2011, 15:40   #30
 
.HeadKrap-'s Avatar
 
elite*gold: 0
Join Date: Oct 2011
Posts: 60
Received Thanks: 22
Also bei ich habe folgendes Problem:

Ganz am Anfang wenn man den Code dann in die Scite einfügt soll man ja diese beiden Codes entfernen:
Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
Doch ich habe nur:
Code:
#include <ButtonConstants.au3
So ich dachte mir hmm... das wird wohl nicht so schlimm sein und habe weiter gemacht.
Doch wenn ich den Code dann Debugen will und der Fehler kommen soll, macht die Scite einfach nichts.
Ich kann auch Debugen nicht einmal auswählen.

Nunja.. Denke das dieser Fehler eine Simple Erklärung hat.
Nur leider kenne ich mich mit AutoIt und Scite noch nicht so gut aus

MfG .HeadKrap-
.HeadKrap- is offline  
Closed Thread


Similar Threads Similar Threads
[Tutorial]CE richtig in S4 verwenden, Trainer mit AutoIT erstellen
01/15/2012 - S4 League Hacks, Bots, Cheats & Exploits - 245 Replies
http://deathisland.kilu.de/TutorialLogo.png Hallo liebe E*PvP Community, ich habe es ja bereits in einem Thread genannt, nun werde ich hier ein richtiges Tutorial posten. Ich werde im Folgenden nochmals darauf eingehen, wie ihr ohne Bypass mit CheatEngine Adressen suchen könnt. Außerdem werde ich darauf eingehen, wie ihr mit AutoIT einen Trainer erstellt(NomadMemory.au3 wird nicht benötigt!) Ich habe bewusst nur die WinApi funktionen erklärt, ganz einfach aus dem Grund, dass jeder...
[HowTO]Tutorial: AutoIT-Trainer erstellen
12/12/2010 - S4 League Hacks, Bots, Cheats & Exploits - 7 Replies
Ich bin hier um Ihnen meine Anleitung für mich, nur von mir nur für Sie! Es wird Sie lehren, AutoIT erstellen Sie Ihre eigenen Trainer mit. Angst nicht zu verstehen? Mach dir keine Sorgen innerhalb dieses Tutorials Ich bin unten zu reden Null hat Nullen, unterlegen war, dann können Sie sehen, trotzdem nett ch'uis -------- --------------- -------- Zuerst müssen Sie ...



All times are GMT +1. The time now is 16:19.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.