Autor Beitrag
Goolix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83



BeitragVerfasst: So 05.11.06 16:08 
Hallo,

Da ich momentan ja etwas Zeit habe, wollte ich mich etwas damit beschäftigen Cheat-Programme zu schreiben.

Jetzt habe ich durch ein programm eine speicherstelle gefunden, an der zb die anzahl der munition gespeichert ist.



0011A0F9 ist also die stelle, die in einem 4-Byte-Integer die Anzahl der Munition speichert.

Bleibt die Frage, die ich per delphi auf diese stelle zugreifen kann?
(diese trainer-creation-kits will ich nicht benutzen)


gruß
goolix
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 05.11.06 16:19 
Hallo Goolix,

ich finds an sich schon dreist zu cheaten (auch aus langeweile), aber dann auch noch so faul zu sein nicht mal danach zu suchen, dass ist die Höhe. Hier gibt es schon genügend Beiträge zu diesem leidigen Thema wo sich genug Anfänger daran versuchen und auch zu einem Ergebnis kommen.
Ich persöhnlich finde, dass man sich bei solch einem Thema die Brötchen selber verdienen sollte...

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Mindforce
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 358

Win XP Pro / MCE, Win 98, Slax (Linux)
Delphi 07 PRO, Delphi 3+7 (mit Prdx)
BeitragVerfasst: So 05.11.06 16:23 
Hi,

ich würds aber auch mal interresant finden, wie man in Engine speicher schreibt, Hape ^^.
Welches Spiel meinste denn???

M!ndforce

_________________
Our force; in mind.
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: So 05.11.06 16:46 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure Cheat;
var
  hProcess, dwProcessId, lpNumberOfBytesWritten: Cardinal;
  lpBuffer: Integer;
begin
  lpBuffer := 1000;
  h := FindWindow(nil'Name des Spieles');
  if h > 0 then
  begin
    GetWindowThreadProcessId(h, @dwProcessId);
    hProcess := OpenProcess(PROCESS_ALL_ACCESS, false, dwProcessId);
    WriteProcessMemory(hProcess, Ptr($0011A0F9), @lpBuffer, 4, lpNumberOfBytesWritten);
    CloseHandle(hProcess);
  end;
end;


  • lpBuffer ist der Wert, der in den Speicher geschrieben wird.
  • FindWindow musst du mit dem exakten Fensternamen des Spiels aufrufen, also der, der in der Titelleiste steht.
  • GetWindowThreadProcessId holt sich die Prozess-ID.
  • OpenProcess gibt uns ein Handle zurück, mit dem wir auf den Prozess zugreifen können.
  • WriteProcessMemory schreibt an die gewünschte Speicherstelle im Prozess unseren Puffer.
  • CloseHandle gibt das Prozess-Handle wieder frei.
Goolix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83



BeitragVerfasst: So 05.11.06 19:56 
danke schön ;-)


zum cheaten:
das ist überhaupt nicht dreist. schließlich schreibe ich keien multiplayer-trainer sondern welche für den singleplayer. soll heißen, dass jeder sich selbst aussuchen kann ob er das tool nutzt oder nicht, ohne das irgendwer davon beeinträchtigt wird.

ich zum beispiel nutze trainer häufiger um mir direkt zum anfang einen überblick über den vollen funktionsumfang zu verschaffen.


zu der dreistigkeit hier zu fragen:
ich denke dafür ist das forum doch da, oder? ich hab hier ja ncihtmal nach einem quelltext gefragt, sondern wollte nur wissen, wie man speicherzugriff bekommt
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: So 05.11.06 20:07 
[OFFTOPIC]
Es ist schond dreist, egal ob man nun sich oder andere betrügt, wenn 10 Schuss vorgesehen sind, dann sind es halt nur 10 Schuss.
[/OFFTOPIC]

Und die Suche hätte bestimmt etwas ergeben :wink:

@Chryzler: Das ist der falsche Weg, so haben wir in ein paar Jahren nur noch eine fragende Jugend, die keine Antworten mehr selber findet, egal, ob Delphi oder sonst irgend etwas!

mfg

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: So 05.11.06 20:32 
user profile iconKroko hat folgendes geschrieben:
@Chryzler: Das ist der falsche Weg, so haben wir in ein paar Jahren nur noch eine fragende Jugend, die keine Antworten mehr selber findet, egal, ob Delphi oder sonst irgend etwas!

Wer nicht fragt bleibt dumm. :roll:
Du glaubst doch nicht im Ernst, dass ich den Quelltext besser nicht hinschreiben hätte sollen, sondern schreiben hätte sollen, dass er nach dem, was ich jetzt hingeschrieben habe, suchen soll?
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 06.11.06 06:16 
user profile iconChryzler hat folgendes geschrieben:
...
Du glaubst doch nicht im Ernst, dass ich den Quelltext besser nicht hinschreiben hätte sollen, sondern schreiben hätte sollen, dass er nach dem, was ich jetzt hingeschrieben habe, suchen soll?


Ja, im Ernst :!:

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!