Autor |
Beitrag |
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 08.01.05 18:49
dann wäre das tutorial (für mich) vollständig, hab alles verstanden und bin froh jetzt auch sowas zu können echt nice danke an alle 
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 16:02
ich habe einen trainer für counter strike source gemacht der das geld einfriert,
wenn ich das in Tsearch einfriere funktioniert alles wunderbar nur wenn ich das mit meinem Programm mache stürzt das spiel ab sobald ich etwas kaufe. wenn ich 6 bytes statt 4 einstelle kann ich was kaufen aber wenn ich sterbe und geld dazubekomme stürzt das spiel wieder ab, warum ?
Es hat auch schon mit 4 bytes funktioniert aber dann hab ich css beendet das design verbessert (form) und dann gings wieder nich.
Hier mal der Code:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure WriteProcMem(procWndTitle: string;CodeAddr:integer; numberNops:byte); var c, write : Cardinal; buf: pchar; i: byte; begin c:=FindWindow(nil,pchar(procWndTitle)); if c=0 then begin showmessage('Bitte zuerst das Spiel und dann den Trainer starten'); Application.Terminate; end; buf := ''; for i := 1 to numbernops do buf := buf + $90; GetWindowThreadProcessId(c,@c); c:=OpenProcess(PROCESS_ALL_ACCESS,False,c); WriteProcessMemory(c,Ptr(CodeAddr),buf,numberNops,write); CloseHandle(c); showmessage('Geld eingefroren!'); end;
procedure TForm1.FormCreate(Sender: TObject); begin WriteProcMem('Counter-Strike Source', $2205AE10, 6);end; |
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mo 10.01.05 16:04
Wieso denn gleich von 4 Bytes auf 6 Bytes springen?? Die 5 gibbet au noch!! 
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 16:08
bei tsearch gehts ja auch mit 4 !!!
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mo 10.01.05 16:12
F34r0fTh3D4rk hat folgendes geschrieben: | bei tsearch gehts ja auch mit 4 !!! |
Immer??
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 16:13
immer
die speicheradresse fürs geld ändert sich immer aber der befehl damit geld weniger bzw mehr wird bleibt gleich
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mo 10.01.05 16:16
F34r0fTh3D4rk hat folgendes geschrieben: | die speicheradresse fürs geld ändert sich immer aber der befehl damit geld weniger bzw mehr wird bleibt gleich |
Weiß ich auch.. Poste mal den Assembler-Code, der da drin steht... Daran sieht man wieviele Bytes das sind... Du darfst nich nach den Bytes des eigentlichen Werts gehen!! Welchen Wert hast du denn dann in TSearch gefreezt??
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 16:18
genau das was ich oben im code habe nur mit 4 bytes
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mo 10.01.05 16:20
F34r0fTh3D4rk hat folgendes geschrieben: | genau das was ich oben im code habe nur mit 4 bytes |
Bitte was hast du oben geschrieben?? Ich seh da nur den Code, wo n paar Adressen drin sind.. Ich wollt den Befehl, also sowas mit eax und dec und so..
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 16:26
da steht
Quelltext 1:
| 2205AE10 mov[ecx+0xD7C],edx |
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mo 10.01.05 16:39
Probiers mal mit 2 bytes!!! Und führ (so blöd das klingt) wenns nich geht die Prozedur nochmal aus. Also nommal auf den Button klicken!! 
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 16:40
ich habs im oncreate das formulares 
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mo 10.01.05 16:41
F34r0fTh3D4rk hat folgendes geschrieben: | ich habs im oncreate das formulares  |
Egal... funzt es trotzdem??
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mo 10.01.05 16:45
Ansonsten kannstu den Code auch so abändern, dass es auf jeden Fall zweimal kommt.. Das macht au nix.. :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| procedure WriteProcMem(procWndTitle: string;CodeAddr:integer; numberNops:byte); var c, write : Cardinal; buf: pchar; i: byte; begin c:=FindWindow(nil,pchar(procWndTitle)); if c=0 then begin showmessage('Bitte zuerst das Spiel und dann den Trainer starten'); Application.Terminate; end; buf := ''; for i := 1 to numbernops do buf := buf + $90; GetWindowThreadProcessId(c,@c); c:=OpenProcess(PROCESS_ALL_ACCESS,False,c); WriteProcessMemory(c,Ptr(CodeAddr),buf,numberNops,write); WriteProcessMemory(c,Ptr(CodeAddr),buf,numberNops,write); CloseHandle(c); showmessage('Geld eingefroren!'); end;
procedure TForm1.FormCreate(Sender: TObject); begin WriteProcMem('Counter-Strike Source', $2205AE10, 2); end; |
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 16:48
bei 2 bytes hängt das spiel wenn ich eetwas kaufe dann höre ich 2 fehlermeldungen kann das spiel aber nicht beenden, den anderen code probiere ich gleich aus
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 16:59
jetzt hängt sich das spiel nicht mehr auf da kommt ne fehlermeldung das hatte ich auch schonmal !
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mo 10.01.05 17:23
probiers mal mit 3, 4 , 5 - irgendwann hast du den richtigen wert.
huch ? bei zeile 17 und 18 steht bei dir derselbe befehl ? warum das ? macht doch keinen sinn
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 19:08
nicht bei mir war ne idee von webspace naja ich werd rumprobieren bis ichs hab (komisch dass es bei tsearch fehlerfrei funzt)
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mo 10.01.05 19:51
retnyg hat folgendes geschrieben: | huch ? bei zeile 17 und 18 steht bei dir derselbe befehl ? warum das ? macht doch keinen sinn |
Ich weiß, dass es eigentlich keinen Sinn macht, jedoch hab ich die Erfahrung gemacht, dass mein Trainer irgendwie erst funktioniert hat, nachdem ich zum zweiten Mal auf den Button geklickt hab. Also hab ich die Write(..)Prozedur einfach nochmal reingeschrieben und es hat auch bei ersten Klick geklappt...
Ihr könnt jetzt von mir aus auf mir rumhacken, aber mir ist es lieber, dass etwas funktioniert, als dass ich mir nächtelang überleg warum...
//EDIT: @F34r0fTh3D4rk
Hast du schon mal mehrmals nach der "Ändere-den-folgenden-Wert"-Adresse (also die mit dem Assembler) gesucht, weil bei mir, bei meinem SCPT-Trainer gab es irgendwie zwei Adressen, die sich "abgewechselt" haben. Einmal die eine, dann die andere. Ich hab dann einfach bei reingeschrieben.
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
Zuletzt bearbeitet von WeBsPaCe am Mo 10.01.05 20:04, insgesamt 2-mal bearbeitet
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 10.01.05 19:53
bei mir hängt das spiel danach auch net mehr es stürzt gleich ab ich finds auch besser 
|
|
|