• 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 Coding Visual Basic 6, VB.NET
1 2 3 4 Weiter »
Signature/Pattern Scanning mit VB.NET

Seiten (2): « Zurück 1 2
Ansichts-Optionen
Signature/Pattern Scanning mit VB.NET
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#11
28.11.2013, 20:01 (Dieser Beitrag wurde zuletzt bearbeitet: 28.11.2013, 20:11 von iNvIcTUs oRCuS.)
Naja...
Ich behaupte ja nicht das es immer so schwierig ist. Im Gegenteil... Es ist relativ häufig das solch ein Trainer für mehrere Versionen funktioniert.
"Van Helsing" ist eher auch ein krasses Beispiel dafür das solch ein Trainer höchstens für 3 oder 4 Updates funktioniert.
Liegt aber wohl auch daran das bei dem Spiel eine hohe Updatefrequenz herrscht.
Aber ich sage mal so, solange wie Du deinen Trainercode variabel aufbaust hast Du's auch mit Updates leichter.
Ich z.B. habe von sämtlichen Trainer Sourcecodes ein Backup auf der Platte. Wenn jetzt z.B. nach nem halben Jahr wieder mal ein Update zu einem Spiel rauskommt dann nehme ich den Sourcode des Trainer zur vorherigen Version des Spiels und passe innerhalb des Sourcodes nur die Offsets an und das wars dann auch schon. Das is im Endeffekt ne Sache von nicht mal 5 Minuten + Testen des fertigen Trainers zur neuen Version. Sagen wir mal alles in allem ca. 15 Minuten. Probleme oder Bugs durch den Trainer die nach stundenlangem spielen auftreten/können werden eh hauptsächlich nur durch die Community identifiziert.

Meinen ersten Trainer hab ich so geschrieben das ich jedes Offset explizit benannt/verwendet hab (im Sourcecode). Aber mittlerweile hab ich im Trainercode ne Sektion für die Initialisierung von Variablen angelegt. Somit brauch ich eben die Offsets nur einmal eintragen und alles weitere findet seine Bestimmung - Wie, wo und welche Variable Verwendung findet eben.

EDIT//
Ja und was Acubra meint...
Häufig sind ja die Befehle so aufgebaut das zu einem Wert eines Registers ein anderer Wert hinzuaddiert wird. Und dieser entgültige Wert stellt dann den Pointer auf einen Speicherberich dar der dann letztenendes ausgelesen/beschrieben wird.
Z.B. die Bytefolge "D9 9E 2C 03 00 00"
[code=ASM]fstp dword ptr [esi+32C][/code]

Wenn nun also nach einem Update aus dieser Bytefolge beispielsweise "D9 9E FF 00 00 00" wird...
[code=ASM]fstp dword ptr [esi+ff][/code]
dann ist der Witz schon wieder weg wenn man eben explizit nach der Bytefolge "D9 9E 2C 03 00 00" suchen würde.
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
Anunymux Offline
Junior Member
**
Beiträge: 9
Themen: 2
Registriert seit: Nov 2013
Bewertung: 0
#12
28.11.2013, 20:02 (Dieser Beitrag wurde zuletzt bearbeitet: 28.11.2013, 20:05 von Anunymux.)
Ja wie gesagt, das habe ich nicht so "locker" hinbekommen^^

Ich habe in meinem ersten Post ja mal die Funktion gepostet, die ich von c# zu VB.NET umgewandelt habe. Die kann auch mit Wildcards umgehen...aber es funktioniert einfach nicht.

@ iNvIcTUs oRCuS

Genau so habe ich das bei mir auch gemacht. Ich habe eine Region erstellt, in die alle Offsets reinkommen und mit den Variablen wird dann im Programm weitergearbeitet.
Du hast also bei dir trotzdem so eine Pattern Suchfunktion? Wie schnell ist die bei dir? Die im Trainermodul liest ja jedes Byte einzeln aus, was dazu führt, dass das mal gut und gerne 10 Sekunden dauert.
Suchen
Antworten
Acubra Offline
Trainermaker
****
Beiträge: 904
Themen: 127
Registriert seit: Oct 2010
Bewertung: 6
#13
28.11.2013, 20:50
(28.11.2013, 20:02)Anunymux schrieb: Du hast also bei dir trotzdem so eine Pattern Suchfunktion? Wie schnell ist die bei dir? Die im Trainermodul liest ja jedes Byte einzeln aus, was dazu führt, dass das mal gut und gerne 10 Sekunden dauert.

Hey,
wenn deine nicht funktioniert dann barbeite doch die aus dem Trainermodul. So das eben nicht jedes Byte einzeln eingelesen wird.
"Auf dieser Welt gibt es mehr Scheisse als auf Festivalklos"
[Bild: hoglogo_smalpxga.jpg]
Homepage Suchen
Antworten
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#14
28.11.2013, 22:05
Bedingt dadurch das ich nur die Code Section nach Bytefolgen durchsuche geht das suchen auch sowas von fix... Da wird mir selbst ganz schwindelig Happy
Wie schnell, wüsste ich jetzt garnicht. Bin noch nicht auf die Idee gekommen das mal zu messen. Aber 10 Sekunden brauch ich bei weitem nicht.
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
Anunymux Offline
Junior Member
**
Beiträge: 9
Themen: 2
Registriert seit: Nov 2013
Bewertung: 0
#15
28.11.2013, 22:24
Kannst du deine Funktion bitte einmal zeigen?

Das wäre super. Du würdest damit nicht nur mir einen Gefallen tun Happy
Suchen
Antworten
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#16
28.11.2013, 22:41
In Delphi wird dir das genauso wenig helfen...
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
Anunymux Offline
Junior Member
**
Beiträge: 9
Themen: 2
Registriert seit: Nov 2013
Bewertung: 0
#17
28.11.2013, 22:43
Das ist wohl wahr ^^
Suchen
Antworten
DNA Offline
Administrator
*******
Beiträge: 1.330
Themen: 123
Registriert seit: May 2010
Bewertung: 26
#18
29.11.2013, 02:18
Das mit der Trainerupdaterei handhabe ich genauso
wie invictus (hätte beinahe silent geschrieben ^^)

Ich habe meine Funktion gerade mal getestet,
Startadresse = Baseadresse vom Prozess, also 400000
Bytesequenz = 62 00 6C 00 69 00 63 00 00 00 00 00 54 00 61 00 67 00 49 00 6D 00 70 00 00 00 00 00 54
Gefunden bei = F00000
Zeit = weniger als 1 Sek.

Wie invictus schon schrieb, reicht es in den meisten Fällen nur eine
Codesection zu durchsuchen, bei VB hatte ich allerdings folgendes Problem...
wenn die Section zu groß ist, hat er nur noch nullen ausgelesen, darum
musste ich auf die Methode mit größeren Bereichen zurück greifen.

Du musst erstmal dafür sorgen, dass nicht jedes Byte einzeln ausgelesen wird.
Anschließend musst du die SigScan Funktion anpassen.

EDIT:
Wie ich gerade gesehen habe, wird bei der SigScan Funktion auch nur die CodeSection vom Prozess ausgelesen ... solltest du das ganze an einem Spiel
testen, bei dem sich die Bytesequenz außerhalb dieser Sektion befindet, wird
eine 0 ausgespuckt.
ACHTUNG: Lesen gefährdet die Dummheit

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


  • 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