![]() |
||
[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) |
||
RE: TrainerModul v2.0 - 3DGamer - 03.08.2013 Hallo, ich hab das TrainerModul mal ein bisschen verfeinert. ![]() 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:
Wenn man auf "Weiter" klickt läuft das Programm ganz normal weiter. 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 ![]() @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 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? |