• Trainer
  • Forums
  • Suche
  • Members
  • Kalender
  • Hilfe
  • Extras
Forum stats
Show team
Neue Beiträge ansehen
Heutige Beiträge ansehen
Home of Gamehacking - Archiv
Login to account Create an account
Login
Benutzername:
Passwort: Passwort vergessen?
 



  Home of Gamehacking - Archiv Coding Delphi Kleine Hilfe zu WriteProcessMemory gesucht...

Seiten (7): « Zurück 1 ... 3 4 5 6 7
Ansichts-Optionen
Kleine Hilfe zu WriteProcessMemory gesucht...
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#61
25.09.2012, 20:06 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2012, 20:10 von iNvIcTUs oRCuS.)
(25.09.2012, 19:33)Acubra schrieb: Bei sILeNt heLLsCrEAm's CodeCave würde ich jedoch zunächst die Flags speichern (pushfd/popfd), da du durch den cmp (compare) Befehl das Z-Flag veränderst.

Brauch ich nich zu sichern weil ich ja den Compare mit in die Codecave verlagert habe.
Und da in der Codecave auch der zugehörige bedingte Sprung enthalten ist brauchts halt keine Sicherung weil das Zero Flag neu gesetzt wird.
Wenn nicht, dann müsste ich natürlich das Flag vorher sichern. Wink
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
darius83 Offline
Junior Member
**
Beiträge: 34
Themen: 2
Registriert seit: Sep 2012
Bewertung: 0
#62
27.09.2012, 22:19 (Dieser Beitrag wurde zuletzt bearbeitet: 28.09.2012, 00:01 von darius83.)
Hmm soweit hab ich das ganze jetzt verstanden... muss ich jetzt aber doch das Berechnen von Sprungadressen lernen :/ muss ja irgendwie das je in der Codecave schreiben...
Berechnung ist klar... Zieladresse - Startadresse - 6, klappt auch, wenn ich das manuell mache in CE, nur wie setze ich das ganze in Delphi jetzt um?

LG Darius83

Edit1: Ah, ich glaube, ich habs schon... mal schaun Wink

Edit2: So habs mal so gelöst:
[code=delphi]
// Konstanten
PROCESS : String = 'game.dat'; // Prozessname des Spiels
GOLDSAMMELN: Integer = $0050A65D; // Adresse Gold
JmpGoldCave:array[0..10] of byte = ($68,$00,$00,$00,$00,$C3,$90,$90,$90,$90,$90);
GoldCaveByte:array[0..0] of byte = ($01);
GoldCave:array[0..43] of byte = ($80,$3D,$00,$00,$00,$00,$01,$75,$0E,$81,$40,$38,
$10,$27,$00,$00,$C6,$05,$00,$00,$00,$00,$00,$8B,
$58,$38,$39,$1D,$68,$69,$9E,$00,$0F,$84,$00,$00,
$00,$00,$68,$00,$00,$00,$00,$C3);

//bei Spielstart
BaseAddr := VirtualAllocEx(Pidhandle,NIL,2048,MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
Caveadress1 := Cardinal(BaseAddr)+$0000;
WriteBytesToMem(Pidhandle, GOLDSAMMELN, Written, JmpGoldCave);
Caveadress1 := Caveadress1+$0010;
WriteProcessMemory(Pidhandle, Pointer(GOLDSAMMELN+$01), @Caveadress1, 4, Written);
WriteBytesToMem(Pidhandle,Caveadress1,Written,GoldCave);
Caveadress1 := Caveadress1-$0010;
WriteProcessMemory(Pidhandle, Pointer(Caveadress1+$12), @Caveadress1, 4, Written);
WriteProcessMemory(Pidhandle, Pointer(Caveadress1+$22), @Caveadress1, 4, Written);
ByteVar := $50A6C8-(Caveadress1+$30)-$6;
WriteProcessMemory(Pidhandle, Pointer(Caveadress1+$32), @ByteVar, 4, Written);
ByteVar := $50A668;
WriteProcessMemory(Pidhandle, Pointer(Caveadress1+$37), @ByteVar, 4, Written);

//bei Hotkey
WriteBytesToMem(Pidhandle,Caveadress1,Written,GoldCaveByte);
[/code]
Es gibt 10 verschiedene Typen von Personen, die, die ich mag und die, die ich nicht verstehen kann...
Suchen
Antworten
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#63
28.09.2012, 01:51 (Dieser Beitrag wurde zuletzt bearbeitet: 28.09.2012, 01:51 von iNvIcTUs oRCuS.)
Kleiner Fehler deinerseits...
[code=Delphi]ByteVar := $50A6C8-(Caveadress1+$30)-$6;[/code]

So wirds korrekterweise geschrieben...
[code=Delphi]ByteVar := $50A6C8-(Caveadress1+$30)-6;[/code]

grEEtZ sILeNt heLLsCrEAm
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
darius83 Offline
Junior Member
**
Beiträge: 34
Themen: 2
Registriert seit: Sep 2012
Bewertung: 0
#64
28.09.2012, 22:49
Öhm, ist es nicht völlig egal, ob ich mit HexWerten rechne oder mit DezimalWerten? Muss doch lediglich drauf achten, dass der Wert beim angeben auch stimmt... Ich meine, $6 und 6 sind ja vom Wert identisch... Das alles sollte eigentlich keinen Unterschied machen:

$50A6C8-(Caveadress1+$30)-$6;
$50A6C8-(Caveadress1+$30)-6;
5285576-(Caveadress1+$30)-6;
$50A6C8-(Caveadress1+48)-$6;
$50A6C8-(Caveadress1+48)-6;
5285576-(Caveadress1+48)-$6;
5285576-(Caveadress1+48)-6;

Wenn ich das jetzt falsch sehe, bitte ich um Aufklärung Wink

LG Darius83

P.S.: Hatte die 6 auch nur als Hex angegeben, weil der Rest auch in Hex geschrieben war Wink
Es gibt 10 verschiedene Typen von Personen, die, die ich mag und die, die ich nicht verstehen kann...
Suchen
Antworten
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#65
29.09.2012, 02:50
Besser hätte ich es auch nicht erklären können.
Musst eben nur aufpassen das du die Werte nicht durcheinander haust.
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
Acubra Offline
Trainermaker
****
Beiträge: 904
Themen: 127
Registriert seit: Oct 2010
Bewertung: 6
#66
29.09.2012, 15:20
Hey,
die Hex Werte von 0-9 sind mit den Dezimalen gleich. Aber 10dec ist z.B A Hex. Also ab 10 muss man schon aufpassen.
"Auf dieser Welt gibt es mehr Scheisse als auf Festivalklos"
[Bild: hoglogo_smalpxga.jpg]
Homepage Suchen
Antworten
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#67
29.09.2012, 20:01
@Acubra
Das ist richtig...
Aber wie auch schon darius schrieb - In Delphi ist es egal wie gerrechnet wird.
Und wie ich schon schrieb darf man dann die Werte eben nicht durcheinanderhauen.

Mit dem "$" wird der Compiler angewiesen den Wert als HEX Wert zu interprtieren. Klar bei Zahlen/Zeichen von 0 bis 9 ist das definitiv egal, wenn man aber z.B. in der Annahme geht von einem Wert den Wert 10 (zehn) zu subtrahieren, man aber schreibt $10 dann wird natürlich nicht 10 sondern 16 subtrahiert.

Aber ich denke darius hats kapiert, besser hätte man es können wie gesagt nicht erklären.
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
Share Thread:            
Seiten (7): « Zurück 1 ... 3 4 5 6 7


  • Druckversion anzeigen
  • Thema abonnieren


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste

  • Kontakt
  • Forum team
  • Forum stats
  • Nach oben
 
  • RSS-Synchronisation
  • Lite mode
  • Home of Gamehacking - Archiv
  • Help
 
Forum software by © MyBB - Theme © iAndrew 2014



Linearer Modus
Baumstrukturmodus