• Trainer
  • Forums
  • Suche
  • Members
  • Kalender
  • Hilfe
  • Extras
Forum stats
Show team
Neue Beiträge ansehen
Heutige Beiträge ansehen
Home of Gamehacking - Archiv
Login to account Create an account
Login
Benutzername:
Passwort: Passwort vergessen?
 



  Home of Gamehacking - Archiv Releases HoG Releases Support- und Diskussion
« Zurück 1 ... 4 5 6 7 8 ... 13 Weiter »
[Diskussionsthread] TrainerModul v2.0

Seiten (4): « Zurück 1 2 3 4 Weiter »
Ansichts-Optionen
[Diskussionsthread] TrainerModul v2.0
SourceCoder Offline
Member
***
Beiträge: 117
Themen: 26
Registriert seit: Sep 2010
Bewertung: 0
#11
25.03.2012, 01:44
DNA kannst du es vielleicht nochmal mit VB 2010 abspeichern und hochladen.
Damit die Konvertierung richtig bei mir funktioniert^^.
Suchen
Antworten
Xiantrius Offline
Junior Member
**
Beiträge: 47
Themen: 4
Registriert seit: Nov 2012
Bewertung: 0
#12
19.04.2013, 23:25
Hallo ich weis es ist schon einige Zeit vergangen aber da DNA:
Bei Fragen, Wünsche, Anregungen...

Nun ich habe wirklich eine Frage die auch gleichzeitig mein Wunsch wäre:

Es ist bekannt das es Spiele gibt wie zum beispiel Solitäre die bei jedem neustart die Base Adresse anderst ist.
Gibt es eine möglichkeit in den Trainermodul noch einzubauen und wie es dann funktioniert. Das die aktuelle Base Adresse automatisch gesucht wird?
Wenn es Cheat Engine kann dann müsste es bei VB auch gehen.

Das kennt ihr ja oder?

Nach jedem Neustart meistens immer andere Base Adresse:
Solitaire.exe
&HFF330000
&HFFD10000
&HFFFF0000
&HFFA80000

Vielleicht könnte man den Trainermodul noch damit updaten so das die Base Adresse auch gefunden wird.

PS:
DNA hab auch dazu eine PM geschrieben.
Suchen
Antworten
DNA Offline
Administrator
*******
Beiträge: 1.330
Themen: 123
Registriert seit: May 2010
Bewertung: 26
#13
20.04.2013, 12:51
Hey,

schau dir das mal an:



[code=VB]
Public Function GetModuleBase(ByVal ProcName As String, ByVal ModuleName As String)
Dim BaseAddress As Int32
For Each PM As ProcessModule In Process.GetProcessesByName(ProcName)(0).Modules
If ModuleName.ToLower = PM.ModuleName.ToLower Then
BaseAddress = PM.BaseAddress
End If
Next
Return BaseAddress
End Function[/code]

Diese Funktion musst du nur noch aufrufen und schon bekommst du die BaseAddi.
ACHTUNG: Lesen gefährdet die Dummheit

[Bild: dna-sig.gif]
Suchen
Antworten
Xiantrius Offline
Junior Member
**
Beiträge: 47
Themen: 4
Registriert seit: Nov 2012
Bewertung: 0
#14
20.04.2013, 13:22 (Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2013, 13:23 von Xiantrius.)
(20.04.2013, 12:51)DNA schrieb: Hey,

schau dir das mal an:



[code=VB]
Public Function GetModuleBase(ByVal ProcName As String, ByVal ModuleName As String)
Dim BaseAddress As Int32
For Each PM As ProcessModule In Process.GetProcessesByName(ProcName)(0).Modules
If ModuleName.ToLower = PM.ModuleName.ToLower Then
BaseAddress = PM.BaseAddress
End If
Next
Return BaseAddress
End Function[/code]

Diese Funktion musst du nur noch aufrufen und schon bekommst du die BaseAddi.

Ich hab den Code in Module eingefügt und rum probiert... Leider kein erfolg, Kannst du mir ein gutes beispiel geben wie ich das jetzt in der Form1 schreiben muss? Ich habe auch Teamviewer wenn du Zeit hast kannst du es ja direkt zeigen. Das hatten wir ja schon mal.
In der Zeit probier ich weiter, falls du kein Edit siehst, oder neue Antwort auf Erfolg, dann hab ich es nicht geschafft und wäre sehr dankbar wenn du es mir zeigen würdest.

So sieht mein Code in Form1 aus



[Code=VB]
Private Const ProcName = "Solitaire" 'Ohne Exe am ende!!!
Dim value0 As Int16, value1 As Int32, value2 As Int64

'Punkte manipulieren
Private Sub TextBox1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
Try
If e.KeyCode = Keys.Enter Then
GetProcessId(ProcName)
'&HFF710000 <- Base Adresse kann sich ändern...
Write_Pointer(TextBox1.Text, &HFF710000 + &HBB0E8, &H48, &HB8, &H68, &H64)
End If
Catch ex As Exception
End Try
End Sub

[/Code]
Suchen
Antworten
DNA Offline
Administrator
*******
Beiträge: 1.330
Themen: 123
Registriert seit: May 2010
Bewertung: 26
#15
20.04.2013, 13:46 (Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2013, 13:46 von DNA.)
Hey,
versuch das mal





[code=VB]
Private Const ProcName = "Solitaire" 'Ohne Exe am ende!!!
Dim value0 As Int16, value1 As Int32, value2 As Int64
Dim BaseAddi as Int32

'Punkte manipulieren
Private Sub TextBox1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
Try
If e.KeyCode = Keys.Enter Then
GetProcessId(ProcName)
BaseAddi = GetModuleBase(ProcName, ProcName & ".exe")
'&HFF710000 <- Base Adresse kann sich ändern...
Write_Pointer(TextBox1.Text, BaseAddi + &HBB0E8, &H48, &HB8, &H68, &H64)
End If
Catch ex As Exception
End Try
End Sub

[/code]
ACHTUNG: Lesen gefährdet die Dummheit

[Bild: dna-sig.gif]
Suchen
Antworten
Xiantrius Offline
Junior Member
**
Beiträge: 47
Themen: 4
Registriert seit: Nov 2012
Bewertung: 0
#16
20.04.2013, 14:00
(20.04.2013, 13:46)DNA schrieb: Hey,
versuch das mal





[code=VB]
Private Const ProcName = "Solitaire" 'Ohne Exe am ende!!!
Dim value0 As Int16, value1 As Int32, value2 As Int64
Dim BaseAddi as Int32

'Punkte manipulieren
Private Sub TextBox1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
Try
If e.KeyCode = Keys.Enter Then
GetProcessId(ProcName)
BaseAddi = GetModuleBase(ProcName, ProcName & ".exe")
'&HFF710000 <- Base Adresse kann sich ändern...
Write_Pointer(TextBox1.Text, BaseAddi + &HBB0E8, &H48, &HB8, &H68, &H64)
End If
Catch ex As Exception
End Try
End Sub

[/code]

Ich habe mal das Try weg gemacht da er ein Fehler meldete.
Fehler:
Nur ein Teil der ReadProcessMemory- oder WriteProcessMemory-Anforderung wurde abgeschlossen"




[code=VB]
'Module
Public Function GetModuleBase(ByVal ProcName As String, ByVal ModuleName As String)
Dim BaseAddress As Int32
'Hier der Fehler
For Each PM As ProcessModule In Process.GetProcessesByName(ProcName)(0).Modules
If ModuleName.ToLower = PM.ModuleName.ToLower Then
BaseAddress = PM.BaseAddress
End If
Next
Return BaseAddress
End Function

'Form1 sieht so aus wie du beschrieben hast:
Private Const ProcName = "Solitaire" 'Ohne Exe am ende!!!
Dim value0 As Int16, value1 As Int32, value2 As Int64
Dim BaseAddi As Int32

'Punkte manipulieren
Private Sub TextBox1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp

If e.KeyCode = Keys.Enter Then
GetProcessId(ProcName)
BaseAddi = GetModuleBase(ProcName, ProcName & ".exe")
'&HFF710000 <- Base Adresse kann sich ändern...
Write_Pointer(TextBox1.Text, BaseAddi + &HBB0E8, &H48, &HB8, &H68, &H64)
End If

End Sub
[/code]
Suchen
Antworten
Xiantrius Offline
Junior Member
**
Beiträge: 47
Themen: 4
Registriert seit: Nov 2012
Bewertung: 0
#17
21.04.2013, 17:16
Neues Problem gefunden:

Offenbar kann dein Trainermodule v2.0 das nicht verarbeiten...
Die 2 Offsets den -> Offset &H10080 und &H3FFC <-betrachte die mal in den Code.
Es kommt keine Fehlermeldung. Wie kann ich das problem lösen es werden nicht die richtigen Werte angezeigt. In Cheat Engine ist der selbe Pointer drin da wird alles richtig angezeigt.
Ich habe mehrfach nach rechtschreibfehlern geprüft, habe keine gefunden.
Anders finde ich den Pointer leider nicht, ist wirklich der einzige.
Da du der ersteller von Trainermodul bist, wirst du vielleicht auch die Lösung hoffentlich parat haben, was ich nun machen kann um das mit den Offset problem zu beheben.




[code=VB]
'Goldbetrag auslesen:
Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick
Try
If NWN Then
GetProcessId(ProcName)
BaseAddi = GetModuleBase(ProcName, "nwmain.exe")
value1 = Read_4_Bytes_Pointer(BaseAddi + &H52CBA4, &H10080, &H0, &H3FFC, &H4, &HAD4)
TextBox1.Text = value1
ElseIf Not NWN Then
Exit Sub
End If
Catch ex As Exception
End Try
End Sub

'Goldbetrag verändern:
Private Sub TextBox2_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyUp
Try
If NWN Then
If e.KeyCode = Keys.Enter Then
GetProcessId(ProcName)
BaseAddi = GetModuleBase(ProcName, "nwmain.exe")
Write_4_Bytes_Pointer(TextBox2.Text, BaseAddi + &H52CBA4, &H10080, &H0, &H3FFC, &H4, &HAD4)
Label1.Visible = False
End If
ElseIf Not NWN Then
Label1.Visible = True
End If
Catch ex As Exception
End Try
End Sub
[/code]

Vielleicht kann auch einer von euch bei diesem Problem helfen, falls jemand von euch selbe oder ähnliches erlebt hat.
Suchen
Antworten
DNA Offline
Administrator
*******
Beiträge: 1.330
Themen: 123
Registriert seit: May 2010
Bewertung: 26
#18
21.04.2013, 18:46
Du müsstest dir nur mal die Funktion zum schreiben/lesen der Pointer
anschauen, dann hättest du von alleine drauf kommen können.

Ich habe die Funktionen damals schnell zusammen geschustert aber
seitdem nichts mehr dran gemacht, da ich nie Pointer benutze.

Nun zum Fehler, der in der Funktion zu finden ist:
Wird bei der Funktion eine 0 übergeben, dann wird gestoppt
und es wird nicht mehr weiter ausgelesen.
Du kannst nun entweder die Funktion ändern, oder du liest den
Pointer manuell (ohne Funktion) aus.
ACHTUNG: Lesen gefährdet die Dummheit

[Bild: dna-sig.gif]
Suchen
Antworten
Xiantrius Offline
Junior Member
**
Beiträge: 47
Themen: 4
Registriert seit: Nov 2012
Bewertung: 0
#19
22.04.2013, 01:04
(21.04.2013, 18:46)DNA schrieb: Du müsstest dir nur mal die Funktion zum schreiben/lesen der Pointer
anschauen, dann hättest du von alleine drauf kommen können.

Ich habe die Funktionen damals schnell zusammen geschustert aber
seitdem nichts mehr dran gemacht, da ich nie Pointer benutze.

Nun zum Fehler, der in der Funktion zu finden ist:
Wird bei der Funktion eine 0 übergeben, dann wird gestoppt
und es wird nicht mehr weiter ausgelesen.
Du kannst nun entweder die Funktion ändern, oder du liest den
Pointer manuell (ohne Funktion) aus.

Danke für den Hinweis, habe das problem gleich gefunden und die 0 mit -1 ersetzt also so [code=VB]If Not Offset2 <= -1 then 'usw... [/code] genommen, nun liest er korrekt den Wert aus und schreibt sie auch an der stelle wo ich es will.

Ich zeige es mal genauer:




[code=VB]
'Pointer Lesefunktion
Public Function Read_4_Bytes_Pointer _
(ByVal address As Int32, _
ByVal Offset1 As Int32, Optional _
ByVal Offset2 As Int32 = 0, Optional _
ByVal Offset3 As Int32 = 0, Optional _
ByVal Offset4 As Int32 = 0, Optional _
ByVal Offset5 As Int32 = 0)

address = Read_4_Bytes(address)
address = Read_4_Bytes(address + Offset1)

If Not Offset2 <= -1 Then
address = Read_4_Bytes(address + Offset2)
If Not Offset3 <= -1 Then
address = Read_4_Bytes(address + Offset3)
If Not Offset4 <= -1 Then
address = Read_4_Bytes(address + Offset4)
If Not Offset5 <= -1 Then
address = Read_4_Bytes(address + Offset5)
End If
End If
End If
End If
Return address
End Function

'Pointer Schreibfunktion
Public Sub Write_4_Bytes_Pointer(ByVal WhatToWrite As Int32, _
ByVal address As Int32, _
ByVal Offset1 As Int32, Optional _
ByVal Offset2 As Int32 = 0, Optional _
ByVal Offset3 As Int32 = 0, Optional _
ByVal Offset4 As Int32 = 0, Optional _
ByVal Offset5 As Int32 = 0)

address = Read_4_Bytes(address)
Dim address1 As Int32 = Read_4_Bytes(address + Offset1)

If Not Offset2 <= -1 Then
Dim address2 As Int32 = Read_4_Bytes(address1 + Offset2)
If Not Offset3 <= -1 Then
Dim address3 As Int32 = Read_4_Bytes(address2 + Offset3)
If Not Offset4 <= -1 Then
Dim address4 As Int32 = Read_4_Bytes(address3 + Offset4)
If Not Offset5 <= -1 Then
Write_4_Bytes(address4 + Offset5, WhatToWrite)
Else
Write_4_Bytes(address3 + Offset4, WhatToWrite)
End If
Else
Write_4_Bytes(address2 + Offset3, WhatToWrite)
End If
Else
Write_4_Bytes(address1 + Offset2, WhatToWrite)
End If
Else
Write_4_Bytes(address + Offset1, WhatToWrite)
End If
End Sub
[/code]
Suchen
Antworten
DNA Offline
Administrator
*******
Beiträge: 1.330
Themen: 123
Registriert seit: May 2010
Bewertung: 26
#20
25.04.2013, 11:45
MOVED --> String auslesen/ändern
ACHTUNG: Lesen gefährdet die Dummheit

[Bild: dna-sig.gif]
Suchen
Antworten
Share Thread:            
Seiten (4): « Zurück 1 2 3 4 Weiter »


  • Druckversion anzeigen
  • Thema abonnieren


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste

  • Kontakt
  • Forum team
  • Forum stats
  • Nach oben
 
  • RSS-Synchronisation
  • Lite mode
  • Home of Gamehacking - Archiv
  • Help
 
Forum software by © MyBB - Theme © iAndrew 2014



Linearer Modus
Baumstrukturmodus