Autor |
Beitrag |
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Di 22.02.05 14:16
ich habe "leider" von 1 Byte bis Double alle Werte durchsucht und nichts gefunden. Ich habe das Spiel gestartet und dann bei TSearch gesehen, dass noch ein zweiter Prozess (der mit dem Spiel verbunden ist) gestartet wurde und habe auch in dem nach dem "Geld"-Wert gesucht.... Leider nichts
MFG Alex
|
|
en!gma 
      
Beiträge: 378
win xp
delphi 7.0
|
Verfasst: Di 22.02.05 14:28
ansonsten versuchs einfach erst mal mit "unknown value" und dann such nach "has increased" oder "has decreased"
|
|
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Di 22.02.05 15:27
oh, danke für den Tip.
Das habe ich noch nicht probiert...
Aber nur mal rein theoretisch, wenn das mit dem "HAS Increased" gehen sollte, müsste dass dann nicht auch mit der Variante gehen, wie ich es in dem oberen Beitrag erklärt habe?
MFG Alex
|
|
en!gma 
      
Beiträge: 378
win xp
delphi 7.0
|
Verfasst: Di 22.02.05 17:14
nicht unbedingt.
es könnte ja mal reintheoretisch sein, dass die programmierer
bei dem wert immer +1 oder sowas in der art (warum auch immer) hinzufügen.
schon dann würde es nicht klappen
|
|
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Di 22.02.05 17:47
sorry aber verstehe ich grade nicht?
ich habe doch für mein Geld ein "festen" Wert und den suche ich ja im Speicher.
Wie meinst du das mit dem +1? Dann müsste ich doch trotzdem mein Startkapital von 1000 finden und dann nach paar Sekunden 1005.. Nur leider gibt es manche Geldbeträge die ich im Spiel habe, überhaupt nicht im Speicher... Naja ich versuche es heute Abend mal mit "Has Increased"
MFG Alex
|
|
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Mi 23.02.05 10:01
also ich habe es gestern Abend mal mit dem "HAS INCREASED" probiert.
Folgende Situtation:
-Ich habe beim Spielstart 1000 "Geldeinheiten"...
-Ich habe nach "unknown value" gesucht -> glaube über 500000 oder so gefunden
-Ich habe dann 350 Geldeinheiten abgezogen bekommen
-Ich habe nach "HAS DECREASED" suchen lassen und als 2Byte (650 restliche Geldeinheiten=2Byte!?)
Schlussfolgerung: Leider 0 Einträge gefunden.
Ich verstehe es echt nicht mehr...
Hat zufällig jemand das Spiel und kennt sich mit dem Thema "Spiele-Trainer erstellen" aus?
Mir fehlen langsam echt die Ideen...
MFG Alex
|
|
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Mi 23.02.05 15:06
jippi
Ich habe es jetzt mit Cheat 'O Matic (ist unter www.downloads.de zu finden) hinbekommen, die Speicheradressen für die Geldeinheiten in Herr der Ringe - Schlacht um Mittelerde auszulesen.
Ich hänge mal den Screenshot an...
Nur leider weiß ich nichts mit dieser Speicheradresse anzufangen (also wie schreibe ich mir ein Trainer in Delphi zu einer Speicheradresse x6152C58:731 x50A81F4:701 ???)
Ich wäre über jeden Tip dankbar.
MFG Alex
sorry aber ich bin anscheind zu blö... ein Bild hier anzuhängen...
Jedenfalls wird mir die oben genannte Speicheradresse angezeigt.
Wie kann ich die in Delphi einbinden?
@retnyg: Habe es grade gemerkt....
Zuletzt bearbeitet von Alex_ITA01 am Mi 23.02.05 15:10, insgesamt 2-mal bearbeitet
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mi 23.02.05 15:08
Alex_ITA01 hat folgendes geschrieben: | Ich hänge mal den Screenshot an... |
hrhrhr denkste. in diesem forum nicht möglich. da musst du wohl erst irgenwo einen webspace anmieten... 
|
|
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Do 24.02.05 14:48
Hat keiner eine Idee, wie ich folgende Speicheradresse in Delphi "ändern" kann?
x6152C58:731 x50A81F4:701
Muss ich da jetzt beide überschreiben mit "NIL" ($90) oder nur eine?
Und was bedeutet das :731 bzw. :701 dahinter?
MFG Alex
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 24.02.05 15:14
ich habe immer das problem bei tsearch, wenn ich eine adresse gefunden habe, (autohack window) und dann etwas noppe, dann funzt es, im delphi programm dann aber nicht mehr.
ich gucke mir immer im disassembler an, wie viel da genoppt wird, und das mache ich dann nach, funktioniert aber nicht mit jedem code ...
welcher code sit denn absolut zuverlässig ?
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 24.02.05 15:21
vielleicht nimmst du einfach einer der routinen die in dem thread rumschwirren und nimmst halt diese adresse : 6152C58
das x davor bedeutet nur dass es sich um einen hexwert handelt. was das 701 bedeutet weiss ich auch nicht, könnte aber der wert sein. da das min. ein word ist musst du also min. 2 bytes überschreiben. probier halt mal rum
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 24.02.05 15:29
ich finde es bei hl2 komisch, ich habe gesucht und gefunden womit die lebensenergie vermindert wird, wenn ich die adresse noppe, dann sind auch die gegner unsterblich, dann habe ich die adresse gefunden, mit der sich nur die eigene lebensenergie verringert (nicht erhöht) aber mein programm killt damit immer den prozess.
und die adresse finde ich net wieder ... 
|
|
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Do 24.02.05 15:41
wie meinst du das:
Zitat: |
vielleicht nimmst du einfach einer der routinen die in dem thread rumschwirren und nimmst halt diese adresse : 6152C58
|
Wieso routinen die im thread rum schwirren?
Oder meinst du jetzt einfach nur ich soll nur die adresse 6152C58 nehmen und die zweite gar nicht beachten?!
MFG Alex
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 24.02.05 15:45
|
|
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Do 24.02.05 16:12
warum schreibt er dann:
Zitat: |
vielleicht nimmst du einfach einer der routinen die in dem thread rumschwirren und nimmst halt diese adresse : 6152C58
|
Die Adresse habe ich ja oben genannt. Trifft die auch auf dich zu?
Ist ja auch egal...
MFG Alex
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 24.02.05 17:23
Alex_ITA01 hat folgendes geschrieben: | wie meinst du das:
Zitat: |
vielleicht nimmst du einfach einer der routinen die in dem thread rumschwirren und nimmst halt diese adresse : 6152C58
|
Wieso routinen die im thread rum schwirren?
Oder meinst du jetzt einfach nur ich soll nur die adresse 6152C58 nehmen und die zweite gar nicht beachten?!
MFG Alex |
ich meine die Speicher-NOP routine die ich hier mal gepostet habe (glaube seite 3 oder so)
als speicheradresse nimmst du die 2 werte die du da genannt hast, nur ohne das X davor
|
|
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Fr 25.02.05 14:46
Hallo erstmal,
ich habe es jetzt wie folgt probiert:
Ich habe mir ein Thread geschrieben, der alle Speicheradressen (die mir das Programm Cheat 'O Matic anzeigt) mit "NIL" überschreibt.
$6152C50 ; $50A8208 ; $12E54FC (<- diese 3 Stück meine ich)
Juhu...
Das funktioniert auf meinem PC super. Mein Geldwert hat ein gigantischen Wert und ist eingefroren.
Mein Problem ist jetzt aber, ich teste genau das gleiche Delphiprogramm auf einem anderen PC (wo Herr der Ringe auch installiert ist) und es geht nicht!!! Mit Cheat 'O Matic bekomme ich auch ganz andere Speicheradressen angezeigt.
Wie kann ich jetzt den Trainer so programmieren, dass es auch auf jeden Rechner geht? Das die Speicherbereiche unterschiedlich sind, hängt ja sicherlich mit den Programmen ab, die noch so im Speicher rumschwirren...
Ich wäre über jeden Tip dankbar
MFG Alex
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 25.02.05 14:54
die ersten beiden adressen könnten in einer dll liegen - da die aber auf dem anderen PC anders sind werden is wohl mit HeapAlloc / Virtualalloc erst allociert also ändern sich auch von PC zu PC
du musst halt nun das spiel debuggen um zu schaun wie das spiel an diese adresen drankommt, es wird mindestens eine fixe adresse geben die darauf hinzeigt z.b.
Delphi-Quelltext 1: 2: 3: 4: 5:
| asm mov eax, [$00401111] <- fixe adresse, an der steht immer $6152C50 die kann aber auf jedem PC anders sein mov eax, [eax] add [eax], $10 end; |
die 3 adresse ist definitiv aufm stack, die würde ich net ändern, nicht mal an deinem PC ;>
|
|
Net-Spider
      
Beiträge: 21
|
Verfasst: Fr 25.02.05 14:57
in vielen spielen wird DMA genutzt, "dynamic memory allocation" oder sowas in der art.
wenn man sich die stellen mal mit einem debugger anschaut, dann sieht man, dass nicht eine feste stelle geändert wird,
sondern das mit pointer gemacht ist.
die adresse, die geändert werden soll steht dann irgendwo anders im speicher IMMER AN DER SELBEN STELLE,
also müsstest du diese feste adresse lesen und dann an dieser gelesenen adresse nachschauen und verändern.
da fällt mir gerade ein, geht es um das ändern eines wertes (geld,leben,...) oder darum, einen wert einzufrieren?
beim einfrieren muss das immer an der selben stelle sein, bei dem wert wird dma genutzt.
[edit]zu langsam  [/edit]
[edit2]hm, das stand ja schon alles auf seite 1, so ein mist...[/edit2]
Zuletzt bearbeitet von Net-Spider am Fr 25.02.05 15:01, insgesamt 2-mal bearbeitet
|
|
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Fr 25.02.05 14:58
ich habe folgende Vorlage:
Mein PC:
$6152C50
$50A8208
$12E54FC
Der andere PC hat folgende Adressen:
$E71C420
$560B030
$12E54FC
Wie meinst du das jetzt mit "HeapAlloc / Virtualalloc " ?
Kennst du ein Beispiel dafür oder kannst du es vielleicht ein wenig genauer erklären?
Danke schön...
MFG Alex
Edit: es geht nur darum Geld einzufrieren...
edit: macht nix net-spider 
|
|