Home of Gamehacking

Normale Version: Signature/Pattern Scanning mit VB.NET
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich habe vor kurzem ein Video gesehen über Pattern Scanning mit c++ und gemerkt, dass es doch viel Arbeit abnimmt, da man nicht jedes Mal nach einem Update die Offsets suchen muss....auch wenn das nicht wirklich lange dauert.

Ich programmiere allerdings sehr gerne in vb.net und habe noch nichts für vb.net gefunden.

Ich würde sehr gerne extern (d.h. ohne dll Injection) nach einem bestimmen Bytemuster in einem Modul suchen.

Auf Game-Deception habe ich eine Funktion gefunden...allerdings in c# http://www.gamedeception.net/index.php?t...n-c.14470/

Ich habe das ganze mal in vb.net umgewandelt und dabei kam folgendes heraus:
http://pastebin.com/1gE753wm

Das ist die Bytefolge, die ich suche:

http://gyazo.com/153855e2a6d87b141679d7ed45ffa97c

Ich rufe die Funktion auf:

MsgBox(sigscanner.FindPattern(New Byte() {&H83, &H96, &H5C, &H6, &H0, &H0, &H8B, &H7, &H8B, &H90, &HB4, &H5, &H0, &H0}, "xx????xxxx????", &H0))

Bei dem letzten "&H0" bin ich mir nicht ganz sicher, weshalb ich erst einmal 0 genommen habe. Nichts desto trotz kommt bei mir immer 0 als Ergebnis. Das heißt ja, dass er das Bytemuster nicht gefunden hat.

Mit Olly und CE finde ich das Muster allerdings. Was könnte mein Fehler sein?
Hey,
ich hatte dir dazu ja schon was geschrieben Wink
Ich würde per MemoryDump einen größeren speicherbereich Auslesen und diesen dann mit der bytefolge vergleichen, wird wahrscheinlich das schnellste sein.


Sent from my iPhone using Tapatalk 2
Hey,
so wie DNA es gesagt hat mache ich es ja auch. Einfach per ReadProcessMemory einen größeren Speicherbereich in einen Buffer laden, und diesen dann nach der jeweiligen Bytesequenz durchsuchen.
Versuch mal die Bytesequenz zu verkleinern und gucke ob er überhaupt etwas findet.
Nein leider findet er auch nichts bei nur drei Bytes. ... Da muss irgendwas falsch sein an meiner Funktion.

Machst du das auch in VB.NET? Vll kannst du mir ja mal deine Funktion zeigen. Ich habe gestern so viel probiert und gefragt. Oft wurde mir auch gesagt, dass ohne dll Injection das ganze sehr schwierig sei in VB.NET :(
Hey,
sollte in VB.net nicht schwieriger als in jeder anderen Sprache auch. Du kannst dich an meiner Funktion ja orientieren (zwar gut scheisse gecoded, aber hey), siehe hier: http://homeofgamehacking.de/showthread.php?tid=1249
Ist aber in C, von .net hab ich keine Ahnung.
(28.11.2013, 02:51)DNA schrieb: [ -> ]Ich würde per MemoryDump einen größeren speicherbereich Auslesen...

(28.11.2013, 13:39)Acubra schrieb: [ -> ]Hey,
so wie DNA es gesagt hat mache ich es ja auch. Einfach per ReadProcessMemory einen größeren Speicherbereich in einen Buffer laden...

Genau diesen Fehler hab ich zu anfang auch gemacht. Aber wie maluc mir schon den Tipp gegeben hatte... Nicht einen bestimmten Speicherbereich in einen Puffer laden... Theoretisch (fast immer) reicht es aus nur die Code Section auszulesen und dann eben die entsprechenden Bytesequenzen suchen. Und wenn widererwarten eine Bytefolge in einem andern Speicherbreich liegen sollte dann einfach per Memory_Basic_Information + RegionSize immer weiter durchhangeln.
Ja ich habe viel rumprobiert und nichts hat irgendwie funktioniert. Ich schaffe es nicht, das in vb.net zu programmieren.

KN4CK3R von OSH hat mir sein Tool SigScanner empfohlen. Das funktioniert super. Also wenn ein Update kommt, kann ich damit sehr schnell die neuen Offsets mit Hilfe von meinen Pattern wieder finden. Extern mit VB.NET in meinem Trainer habe ich es noch nicht geschafft.
Aber eins sei dir gesagt...
So schön wie das klingt ist es in der Praxis nicht immer.
Grade bei "The Incredible Adventures of Van Helsing" wird fast mit jedem Update auch der Code geändert der die jeweiligen Adressen beschreibt/ließt.

Ich warte zumindest erstmal ab bevor ich einen Trainer mache der seine Offsets anhand einer Bytesequenz sucht. Zuerst lege ich mir eine Bytesequenz fest und vergleiche diese mit der nächsten Version ob sich was geändert hat, bzw. um diese zu optimieren. Und dann spielt für mich eine Rolle wie oft ein Spiel upgedated wird, oder bzw. und auch wie viel Optionen sich im jeweiligen Trainer befinden die ich updaten müsste...
So eine Bytesequenz ist im Prinzip auch nicht einfach so erstellt. Die sollte schon "GUT" sein.
Tatsächlich? Ich dachte, das wäre genau der Sinn von dem Signature Scanning, dass man halt nicht immer alles neu suchen muss. Aber du hast schon Recht, dass wenn die Spielemacher grundsätzlich etwas ändern, was auch das Bytemuster verändert, dann bringt das wenig.
Hey,
falls sich "nur" die die Adressen/Offsets ändern kann man ja auch locker mit Wildcards arbeiten. Aber iNvIcTUs oRCuS hat schon Recht, eine Bytesequenz muss wohlüberlegt und "updatesicher" sein, sonst bringt sie nix und man kann genausogut mit offsets arbeiten. Wenn die Coder die ganze Funktion ändern oder gerade den Bereich neuschreiben, in dem man den Cheat hatte, bringt auch die beste Bytesequenz nichts.
Seiten: 1 2