GameHacking

Decipher
Hi,

habe hier eben nen Thread über GameHacking gelesen, der aber ziemlich früh abbrach. Deswegen frage ich ob jemand mir bei der erstellung von Trainern oder Savegameeditoren helfen kann bzw. ob es irgendwo Tuts dazu gibt.

Mit TSearch kenn ich mich halbwegs aus doch weiss ich nicht wie ich sowas in Delphi umsetzten kann.

Greetz
FastJack2
zwei völlig verschiedene themen .... für einen trainer musst du die daten im ram hacken, ein savegameeditor schreibt nur eine datei um ...

für savegameeditoren:
einfach ein wenig mit nem hex editor spielen und die offsets merken und dann ein prog schreiben was die bytes ersezt ... is meisst schon genug ...
ggf sind die positionen der werte variabel, dann werden sie vielleicht durch eine bestimmte bytefolge eingeleitet oder am anfang der datei wird eine position dafür angegeben ... is von spiel zu spiel anders ....

für trainer:
kein plan Augenzwinkern

greetz
-FastJack2
Decipher
Das mit dem Hexeditor ist klar.

Also wie mann ein Savegame hackt ist mir klar.
Wie ich Werte in Ram schreibe auch (nur nicht bei Delphi).

Kannst du mir vielleicht Themen sagen die ich mir dann in der Onlinehilfe anschauen kann?
FastJack2
schua mal unter den beiden befehlen nach:

ReadProcessMemory()
WriteProcessMemory()

sind funktionen zum lesen/schreiben aus/in dem/den ram

greetz
-FastJack2
Decipher
THX werde mal schauen

Achja...ich habe mal diesen Trainer für Solitär geschrieben :-). Das war aber nur mithilfe von TSearch und TMK (würg). Das mit den Punkten geht, aber sobald man die Zeit anhält...na ihr werdet schon sehen. Wisst ihr vielleicht wodran sowas liegen könnte ?
FastJack2
gib mal bitte bescheid obs brauchbar war ;)
hätt auch interesse an nem schnipsel source falls du da was brauchbares auf die beine gestellt hat ;)

greetz
-FastJack2
Decipher
Ja nur damit bekomme ich leider keinen Trainer hin da ich diese Online Hilfe einfahc nich raffe da ich noch zu wenig über Delphi weiss. Ich hab ma irgendwo im Netz nen Schnipsel geshen. HAb ihn mir auch gesaved aber ich finde ihn einfach nicht wieder Mauer
FastJack2
wenn ich mal nen ruhiges stündchen hab schau ich mir die beiden befehle mal genauer an und kann dir denn vielleicht nen schnipselchen code geben aber wie gesagt das kan noch gut ne woche oder so dauern Augenzwinkern

greetz
-FastJack2
Decipher
THX hab ich schon gefunden :-)
Big Deal
ich rate dir in diesem gebiet dich mit assembler auseinander zu setzen.
denn im bereich reverse engineering kommst du nicht drum herum. smile
perle
ich kann ja auch nen kurzes Beispiel geben, wie man z.b. die Zeit in "Mine Sweeper" *g* zurücksetzt.

Zuerst sollte man sich mit einem Memoryscanner die passende Speicheradresse besorgen, ich habe es z.b. mit TSearch gemacht. Hier ist es besonders einfach, da es eine eindeutige Adresse gibt : 100579C

nun schreibt man sich ein geeignetes Delphi programm dafür :

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure ResetTime ;
var
  HWinMine, HProcess : HWND;
  value              : Integer;
  pid,written        : Cardinal;
begin
  HWinMine := FindWindow(nil,'MineSweeper');             // Fenster Handle holen
  if HWinMine = 0 then Showmessage('Spiel nicht gefunden');
  GetWindowThreadProcessId(HWinMine,@pid);           // ProcessID holen
  HProcess := OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);   // Process öffnen
  value := 0;        // Einzusetzender Wert
  WriteProcessMemory(HProcess,ptr($100579C),@value,4,written);    
  CloseHandle(HProcess);
end;