Autor Beitrag
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: So 24.07.05 01:01 
[OT]Zitat: [OT] = Off-Topic = Ausserhalb des Themas.[/OT]

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
wolle-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: So 24.07.05 01:52 
Achso okay, kannst du mir bei dem problem helfen?

_________________
Don`t eat yellow snow ;)!!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: So 24.07.05 14:20 
[ot]nein :oops: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: So 24.07.05 15:59 
@wolle:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var s: pchar;
begin
  s:=#144#144#144#144// buffer aus dezimalwerten erstellen, darf aber keine #0 drin vorkommen (wegen pchar)
  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-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: 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

BeitragVerfasst: Mi 27.07.05 13:17 
Hi,

Hab rausgefunden, wie man dem Buffer für WriteProcessMemory 'ne Variable übergeben kann (ist aber umständlich):

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function CarToPChr(Car: Cardinal) : PChar;
VAR
  TChar: array[0..3of 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Do 18.08.05 02:01 
user profile iconDer Blaue Gott Balmung hat folgendes geschrieben:

Hab rausgefunden, wie man dem Buffer für WriteProcessMemory 'ne Variable übergeben kann (ist aber umständlich):

geht auch einfacher
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var value,write: cardinal;
begin
value := $FFFFFFFF;
writeprocessmemory(HandleWindow,ptr($4609F0),@value,4,write);

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Do 18.08.05 11:01 
wenn man ein array of char hat sollte man das so machen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var bla: array[0..7of 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

BeitragVerfasst: Do 18.08.05 12:46 
Vielen Dank,

Da hab ich wohl den Pointer mit der Adresse verwechselt :(
Hab nämlich immer sowas versucht:
ausblenden Delphi-Quelltext
1:
writeprocessmemory(HandleWindow,ptr($4609F0),ptr(value),4,write);					


War schon ganz verzweifelt.
Aretures
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20

XP
Delphi 7 Arch. | Delphi 2005 Arch.| Delphi 3 Prof.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 15.09.05 20:26 
versuchs mit dem generic game trainer, den solltest du locker bei google finden :wink:
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Do 15.09.05 20:29 
ja so, oder nimm das tsearch hier:

www.xcheater.com/dow...tools/tsearch_16.zip
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 15.09.05 20:37 
schöne tools, da ist ja sogar einer von diesen bösen disassemblern :lol:
PierreB
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: 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 ?^^