Autor |
Beitrag |
JayEff
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: So 24.07.05 01:01
[OT]Zitat: [OT] = Off-Topic = Ausserhalb des Themas.[/OT]
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
wolle-
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: So 24.07.05 01:52
Achso okay, kannst du mir bei dem problem helfen?
_________________ Don`t eat yellow snow !!
|
|
JayEff
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: So 24.07.05 14:20
[ot]nein Ich wollte nur mal wieder meinen Senf dazu geben:oops: sorry... [/ot]
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Zuletzt bearbeitet von JayEff am So 24.07.05 16:00, insgesamt 1-mal bearbeitet
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: So 24.07.05 15:59
@wolle:
Delphi-Quelltext 1: 2: 3: 4:
| var s: pchar; begin s:=#144#144#144#144; WriteProcessMemory(HandleWindow,ptr($4609F0),s,length(s),write); |
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
wolle-
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: So 24.07.05 18:07
danke
_________________ Don`t eat yellow snow !!
|
|
Der Blaue Gott Balmung
Hält's aus hier
Beiträge: 13
WinXP
|
Verfasst: Mi 27.07.05 13:17
Hi,
Hab rausgefunden, wie man dem Buffer für WriteProcessMemory 'ne Variable übergeben kann (ist aber umständlich):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function CarToPChr(Car: Cardinal) : PChar; VAR TChar: array[0..3] of Char; begin TChar[0] := Char(Lo(Car)); TChar[1] := Char(Lo(Car shr 8)); TChar[2] := Char(Lo(Car shr 16)); TChar[3] := Char(Hi(Car)); Result := @TChar; end; |
Wenn man z.B. eine Eingabe in eine Dezimalzahl umwandelt, kann man sie der Funktion übergeben und ihren Rückgabewert vom Typ PChar in writeProcessMemory verwenden.
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 18.08.05 02:01
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
uall@ogc
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Do 18.08.05 11:01
wenn man ein array of char hat sollte man das so machen:
Delphi-Quelltext 1: 2: 3: 4: 5:
| var bla: array[0..7] of char; begin pcardinal(@bla[0])^ := $FFFFFFFF; pcardinal(@bla[4])^ := $FFFFFFFF; end; |
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
Der Blaue Gott Balmung
Hält's aus hier
Beiträge: 13
WinXP
|
Verfasst: Do 18.08.05 12:46
Vielen Dank,
Da hab ich wohl den Pointer mit der Adresse verwechselt
Hab nämlich immer sowas versucht:
Delphi-Quelltext 1:
| writeprocessmemory(HandleWindow,ptr($4609F0),ptr(value),4,write); |
War schon ganz verzweifelt.
|
|
Aretures
Beiträge: 20
XP
Delphi 7 Arch. | Delphi 2005 Arch.| Delphi 3 Prof.
|
Verfasst: Do 15.09.05 20:21
Ich würde auch gerne nen Trainer schreiben, aber ich kann Tsearch nicht downloaden.Kann mir jemand sagen woher ich das noch bekomme.Ich hab eins bei googel gefunden aber das scheint was anderes zu sein...help me!!!
|
|
F34r0fTh3D4rk
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 15.09.05 20:26
versuchs mit dem generic game trainer, den solltest du locker bei google finden
|
|
en!gma
Beiträge: 378
win xp
delphi 7.0
|
Verfasst: Do 15.09.05 20:29
|
|
F34r0fTh3D4rk
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 15.09.05 20:37
schöne tools, da ist ja sogar einer von diesen bösen disassemblern
|
|
PierreB
Hält's aus hier
Beiträge: 5
|
Verfasst: Sa 15.10.05 20:15
Moin,
also ich hab schon ein bisschen mit dem hier so beworbenen TSearch gespielt, bin jetzt aber leider steckengeblieben:
Zitat: | am anfang haben wir ja 50 mineralien wie wir oben rechts im spiel sehen können. also starten wir nun tsearch und klicken auf den fetten "open process" button mit dem chip drüber... |
Schön und gut, was mache ich aber wenn im Spiel nicht einfach direkt der Wert (als Zahl) da steht, sondern z.B. in Form eines Balkens ? Im konkreten Fall meine ich die Lebens- und Schildanzeige bei GTA San Andreas, wie komme ich da an die Adressen ?
Vielen Dank für die Hilfe,
Pierre
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 15.10.05 21:30
z.b. ne suche nach: wert ist kleiner/grösser/gleich/ungleich als startwert, und das einige male müsste dich schlussendlich zum ziel führen -> so machts auch der snes emulator ZSNES.
das geht so: new search - unknown value
wert im spiel ändern
search next
has increased, usw
... und das so lange bis nur noch ein paar adressen (am besten nur 1 ) übrig sind
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
PierreB
Hält's aus hier
Beiträge: 5
|
Verfasst: So 23.10.05 13:54
Hey,
vielen Dank, nach langer Zeit hab ichs nun endlich geschafft.
Jetzt hab ich aber schonwieder ne neue Frage:
Ich wollte jetzt mal nen Trainer für mein eigenes Spiel schreiben, klappt auch ganz gut. Nur bekommt man nach einigen Missionen in meinem Spiel ein Ranking, welches als Text im Spiel ausgegeben wird. Kann man nun den String auch verändern wie man will (hatte in TSearch schonmal nach dem String gesucht, auch umgewandelt nach Hex, nie findet er was). Also ich möchte praktisch das man im Trainer ein Wort eingibt und das dann im Spiel an Stelle des Rankings erscheint.
Kann mir einer helfen ?
Thx
|
|
uall@ogc
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Mi 26.10.05 12:45
das müsste man auch finden können.
es gibt 2 Arten von Strings, AnsiChar und WideChar
wenn man nun den Text 'Test' hat kann man den in hex umwandeln: 54 65 73 74
das wäre für Ansi: 5465737400 und
Wide: 54006500730074000000
jetzt muss man halt aufpassen, da zahlen als integers nicht 00 00 00 01 für die zahl 1 gespeichert werden sondern
01 00 00 00 in umgekehrter reihenfolge
willst du also den ANSI String 'Test' als Dword suchem musst du 0x74736554 nehmen ;>
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
moddin
Beiträge: 75
WinXP Pro
Delphi 7 Enterprise ;-)
|
Verfasst: Fr 15.12.06 20:11
und wenn ich nun einen DMA wert gefunden habe - wie/wo finde ich den pointer auf die adresse?
ich will auch nicht freezen oder so einen quatsch sondern nur altmodisch die variable verändern
ich finde keine "Range Mode" in TSrearch
hab jetzt durch Autohack sowas
555irgendwas : sub [eax],ecx
eax ist dann doch der pointer auf meine variable - und ist statisch aber wie lese ich den jetzt aus
sodass ich im endeffekt
WriteProcessMemory(hProcess,[b]@MeinGefundenerZeigerAufVariable,@lpBuffer,4,BytesRead);
benutzen kann umd die variable indirekt über zeiger zu verändern
_________________ Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!
|
|
uall@ogc
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: So 17.12.06 15:49
EAX muss nicht statisch sein. Falls es statisch ist (was ich nciht gelaube) musst du halt debuggen und schaun welchen wert EAX hat.
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
iPlayboy
Beiträge: 43
|
Verfasst: Mo 05.02.07 02:03
Soooo
Ich hab auch mal ne Frage =)
Und zwar hät ich sehr gerne statt dem WindowTitle das der den Prozessnamen erkennt !
wie würd ich das anstellen ?^^
|
|