Entwickler-Ecke
Windows API - #0 in pchar für writeprocessmemory
DOCa Cola - Mi 31.05.06 18:20
Titel: #0 in pchar für writeprocessmemory
Meine frage bezieht sich auf das
Spieletrainer erstellen [
http://www.delphi-library.de/viewtopic.php?t=34077&postdays=0&postorder=asc&start=240] tutorial
dort ist in den weiteren kommentaren folgendes gepostet worden
Delphi-Quelltext
1: 2: 3: 4:
| var s: pchar; begin s:=#144#144#144#144; WriteProcessMemory(HandleWindow,ptr($4609F0),s,length(s),write); |
nun muss ich aber genau den hexwert 00 an ein programm schicken. wie kann ich das erreichen?
wenn ich ein pchar "
'Test'+#00" an meine WriteProcessMemory funktion übergebe, schneidet er direkt nach 'Test' ab und das 00 wird nicht mehr in den speicher geschrieben...
Ydobon - Mi 31.05.06 18:47
WriteProcessMemory interessiert sich nicht für das Nullbyte, es will einfach eine Adresse und verwendet von der ab die angegebene Anzahl von Bytes. Length liefert aber nur die Länge bis zu #0 und damit zu wenig. Falls es wirklich nur das letzte Byte ist, leg bei Lenght noch eins drauf. Ansonsten nimm nicht unbedingt PChar, Strings haben z.B. eine eigene Längenzählung, für solche Fälle scheint auch PByteArray recht gut geeignet zu sein.
DOCa Cola - Mi 31.05.06 18:53
stimmt, du hast recht, daran habe ich nicht gedacht, danke! es handelt sich tatsächlich immer nur um das letzte byte
gruß DOCa Cola
cherrymoon69 - Di 19.02.08 16:39
und was lann ich tin wenn die beiden letzten bytes 00 sind?
wie müßte dann der code aussehen?
danke.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!