Home of Gamehacking - Archiv
[Diskussionsthread] TrainerModul v2.0 - Druckversion

+- Home of Gamehacking - Archiv (http://archiv-homeofgamehacking.de)
+-- Forum: Releases (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=4)
+--- Forum: HoG Releases (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=24)
+---- Forum: Support- und Diskussion (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=51)
+---- Thema: [Diskussionsthread] TrainerModul v2.0 (/showthread.php?tid=1151)

Seiten: 1 2 3 4


RE: TrainerModul v2.0 - 3DGamer - 03.08.2013

Hallo,

ich hab das TrainerModul mal ein bisschen verfeinert. Smiling
Was habe ich gemacht ?
------------------------------------------------------------
+ neu hinzugefügt
* verändert
------------------------------------------------------------
+ Die Funktion "GetModuleBase" eingefügt
(wurde von DNA hier gepostet und gibt die Baseadresse zurück)
+ Funktionen zum Lesen und Schreiben eines Strings eingefügt
+ Funktionen zum Lesen und Schreiben eines Strings über einen Pointer eingefügt
* Funktionen zum Lesen und schreiben eines Pointers im Allgemeinen bearbeitet
*Die Anzahl der Offsets ist nun nicht mehr begrenzt
*Die Offsets müssen jetzt über ein Array angegeben werden
*Es können nun auch Pointer "ohne" Offsets mit den Pointerfunktionen ausgelesen werden(oder auch einfach Adressen)

Verbesserungsvorschläge erwünscht !
Download siehe Release Thread

Grüße 3D



RE: TrainerModul v2.0 - iNvIcTUs oRCuS - 05.08.2013

Hab den Download eben mit in den offiziellen Release Thread gepackt...

grEEtZ sILeNt heLLsCrEAm


RE: TrainerModul v2.0 - 3DGamer - 07.08.2013

Ok, hier noch ein Update:

------------------------------------------------------------
+ neu hinzugefügt
* verändert
------------------------------------------------------------
* minimale Änderungen an GetProcessId(), AllocMem() und SigScan, um beim compilen keine Warnungen mehr zu erhalten
+ Converter zum konvertieren von Double zu Int64 und umgekehrt hinzugefügt
+ Neue Methoden zum lesen und schreiben von Pointern folgender Datentypen hinzugefügt:
• 2 Bytes
• 4 Bytes (Float)
• 8 Bytes
• 8 Bytes (Double)

Auch hier wieder Verbesserungsvorschläge erwünscht
Download : TrainerModul 2.2
Bei Fragen und Problemen helfe ich gerne weiter
Wäre nett, wenn wieder jemand den Download in den Release Thread stellt

Grüße 3D


Trainermodul v2.3 - Xiantrius - 08.08.2013

Was alles in Trainermodul hinzugefügt wurde:
API Deklarationen wurden hinzugefügt
Neue Read und Write funktionen wurden hinzugefügt
Neue Read_Pointer und Write_Pointer funktionen wurden hinzugefügt
Download -> Trainermodul2.3

mit freundlichen Grüße,
Xiantrius


RE: TrainerModul v2.0 - Acubra - 08.08.2013

Hey,
wenn ich das in Trainermodul in VS 2012 Premium compiliere gibt es keine Fehler. Beim Ausführen der fertigen .exe erhalte ich jedoch folgenden .net Error:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
   bei Trainermodul_v2._3.TrainerModul2_3.GetModuleBase(String ProcName, String ModuleName) in D:\Downloads\Trainermodul2.3\Trainermodul2.3\Trainermodul v2.3\Trainermodul2.3.vb:Zeile 86.
   bei Trainermodul_v2._3.Form1.Form1_Load(Object sender, EventArgs e) in D:\Downloads\Trainermodul2.3\Trainermodul2.3\Trainermodul v2.3\Form1.vb:Zeile 217.
   bei System.EventHandler.Invoke(Object sender, EventArgs e)
   bei System.Windows.Forms.Form.OnLoad(EventArgs e)
   bei System.Windows.Forms.Form.OnCreateControl()
   bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   bei System.Windows.Forms.Control.CreateControl()
   bei System.Windows.Forms.Control.WmShowWindow(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
   bei System.Windows.Forms.Form.WmShowWindow(Message& m)
   bei System.Windows.Forms.Form.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5472 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
Trainermodul v2.3
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///D:/Downloads/Trainermodul2.3/Trainermodul2.3/Trainermodul%20v2.3/bin/Release/Trainermodul%20v2.3.exe.
----------------------------------------
Microsoft.VisualBasic
    Assembly-Version: 8.0.0.0.
    Win32-Version: 8.0.50727.5420 (Win7SP1.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
----------------------------------------
System
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5468 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Configuration
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5473 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Xml
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5473 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
System.Runtime.Remoting
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5420 (Win7SP1.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5472 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5420 (Win7SP1.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

Wenn man auf "Weiter" klickt läuft das Programm ganz normal weiter.

//EDiT: Hab eure Module in den Release Thread hochgeladen. Vielen Dank für eure Mühe.


RE: TrainerModul v2.0 - Xiantrius - 08.08.2013

Also ich habe nachgeschaut es liegt an den Form Load Ereignis das Modul selbst ist es nicht.

Die 3 Codes verursachen den Fehler, löscht dies einfach raus und schon kommt das Problem nicht mehr.
[code=VB]
allocmemaddress = AllocMem(ProcName)

RemoveProtection(ProcName, &H12345, &H2048)
'###################################################
'Ich weis sowieso nicht wozu die 2 Codes gut sein sollen, man benutzt doch schon Scanner wie Artmoney, Cheat Engine usw...
SigStartAddress = SigScan(ProcName, "Prozessname.exe", New Byte() {&H90, &H90, &H90})

SigStartAddress = SigScan(ProcName, "game.dll", New Byte() {&H90, &H90, &H90})
[/code]

mit freundlichen Grüßen,
Xiantrius


RE: TrainerModul v2.0 - 3DGamer - 08.08.2013

Falsch.

Es liegt ganz einfach daran, dass alles was in Form 1 steht nur zur Veranschaulichung dient.
Es kommt deshalb ein Fehler, weil auf deinem Computer höchstwahrscheinlich kein Prozess mit dem Prozessnamen "Prozessname" läuft. bzw. das gesuchte Modul nicht vorhanden ist. (bei GetModuleBase())
Hier wird also kein Prozess oder Modul gefunden und somit wird eine IndexOutOfRangeException geworfen, da das Array, welches die Module beinhalten sollte leer ist.

@Xiantrius
Bevor man also irgendwelche Funktionen aus dem Trainermodul verbannen will, sollte man vielleicht lesen, wo der Fehler entsteht.

=> Wenn du das TrainerModul testen willst, dann solltest du in Form 1 schon deinen eigenen richtigen Code einfügen, wobei du dich an den Beispielen orientieren kannst Wink

@Xiantrius
Ich habe mir eben dein TrainerModul 2.3 angesehen und ich verstehe nicht ganz wieso du für jede Funktion eine 64Bit Alternative geschrieben hast? Ich habe mein Modul sowohl auf 32 Bit, als auch auf 64 Bit Systemen getestet und es hat auf beiden funktioniert.

Grüße 3D



RE: TrainerModul v2.0 - Xiantrius - 08.08.2013

Es gibt vielleicht auch Leute unter euch die sich für Emulierte Spiele interessieren und beim Amiga Emulator WinUAE zb. kommt max nicht 32767 häufig vor sondern 65535.

Ich wollte es halt gleich richtig machen. Was ist daran falsch?
Ich kann mir vorstellen, das viele die funktionen nicht brauchen die ich zusätzlich eingebaut hab. Manche funktionen die ich sehe da drin sind auch unsinnig. Jeder kann sich die funktionen raus nehmen die er nicht braucht. Um so mehr drin sind um so mehr können ihre wünsche erfüllen so sehe ich das. Werden ja sehr häufig Werte verändert und ausgelesen. Vielleicht gibt es auch Spiele die 4 Byte aber statt 2147483647 eben 4294967295, oder bei 2 Byte statt 32767 eben 65535 maximal eintragen kann. Ist zwar selten aber gibts.
Ich kann ja selbst angeben wie hoch die Werte sein können wenn ich was eigenes programmiere. Es gibt auch bestimmt spiele die 3 Bytes bei adressen unterstützen.
Genauso gibt es in seltenen fällen auch Spiele die statt exe lieber dll als Pointer Adresse raus geben. Du hast es selbst bei mir gesehen über Teamviewer 3D Gamer.
Ich weis das ich in vielen dingen noch nicht die Erfahrungen habe wie manche Leute unter euch.
Dennoch habe ich bewiesen das es möglich ist eine DLL statt eine exe zu bekommen. Ich denke 3D Gamer du hast auch wenn du länger an solche sachen arbeitest dennoch neue Erfahrung bekommen. Du hast meine Screenshots auch gesehen und selbst ausprobiert und bist auf die gleichen Ergebnisse gekommen wie ich.


Hier zeige ich euch ein Beispiel: Mir ist klar das viele Integer und Long bevorzugen bzw Int32 und Int64 ist das selbe. das U bedeutet nichts anderes das die Werte doppelt so hoch sind mit Hex kann man das leicht begreifen

[code=VB]
'Max Werte
Dim _1Byte1 As SByte = 127
Dim _1Byte2 As Byte = 255
Dim _2Bytes1 As Int16 = 32767
Dim _2Bytes2 As UInt16 = 65535
Dim _3Bytes1 As Int32 = 8388607
Dim _3Bytes2 As Int32 = 16777215
Dim _4Bytes1 As Int32 = 2147483647
Dim _4Bytes2 As UInt32 = 4294967295
Dim _5Bytes1 As Int64 = 549755813887
Dim _5Bytes2 As Int64 = 1099511627775
Dim _6Bytes1 As Int64 = 140737488355327
Dim _6Bytes2 As Int64 = 281474976710655
Dim _7Bytes1 As Int64 = 36028797018963967
Dim _7Bytes2 As Int64 = 72057594037927935
Dim _8Bytes1 As Int64 = 9223372036854775807
Dim _BBytes2 As UInt64 = 18446744073709551615UL

'Max Hex Werte
'Bei Hexwerte scheint es umgedreht zu sein wenn man Int32,
'oder Int64 hat zählt das als 64bit und UInt32, Int32 32Bit
Dim _1Byte1_Hex As SByte = &H7F
Dim _1Byte2_Hex As Byte = &HFF
Dim _2Bytes1_Hex As Int16 = &H7FFF
Dim _2Bytes2_Hex As UInt16 = &HFFFF
Dim _3Bytes1_Hex As Int32 = &HFFFF7F
Dim _3Bytes2_Hex As Int32 = &HFFFF7F
Dim _4Bytes1_Hex As Int32 = &HFFFFFFFF
Dim _4Bytes2_Hex As UInt32 = &H7FFFFFFF
Dim _8Bytes1_Hex As Int64 = &HFFFFFFFFFFFFFFFF
Dim _BBytes2_Hex As UInt64 = &H7FFFFFFFFFFFFFFF
[/code]



RE: TrainerModul v2.0 - iNvIcTUs oRCuS - 08.08.2013

(08.08.2013, 19:48)Xiantrius schrieb: 'Max Hex Werte
'Bei Hexwerte scheint es umgedreht zu sein wenn man Int32,
'oder Int64 hat zählt das als 64bit und UInt32, Int32 32Bit

Irgendwie scheinst Du da was zu verwechseln...
Seit wann ist ein 64 Bit Integer gleich einem 32 Bit Integer. Das was Du als maximal Werte bezeichnest hat in diesem Sinne nichts damit zu tun welchen maximalen Wert dieses Array annehmen kann oder nicht.
Wenn dann musst Du schon unterscheiden zwischen Vorzeichenbehaftet (Signed) und ohne Vorzeichen (Unsigned).

Also kann z.B. ein 32 Bit Integer mit Vorzeichen von −2.147.483.648 bis hin zu 2.147.483.647 reichen. Und warum ist das so???
Weil 2.147.483.648 + 2.147.483.647 = 4.294.967.295 ist. Da wir uns im 32 Bit Segment befinden kannst Du so auch den maximalen Wert errechnen. Windows Taschenrechner raus und einfach mal 2 hoch 32(bit) eingegeben und raus kommt 4.294.967.296. Und warum eins mehr? Weil im obigen Ergebnis die 0 als solches nicht mitgezählt ist. Also 4.294.967.295 + 1 und das Ergebnis stimmt.

Bisher habe ich in noch keinem Trainer von mir davon gebrauch machen müssen zwischen Signed und Unsigned zu unterscheiden was jetzt die Cheats an sich angeht.


RE: TrainerModul v2.0 - Xiantrius - 08.08.2013

Wenn ich zum beispiel das Gold mit Int16 auf 65535 ändern will. dann funktioniert es nicht. Wenn ich aber UInt16 nehme dann funktioniert es. Wie erklärst du das hier?