<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem mit WriteProcessMemory]]></title><description><![CDATA[<p>hi leute!<br />
Leider muss ich euch schonwieder nerven, und zwar weil mein Programm mal wieder mist macht!<br />
Alsooo:<br />
Ich will einen trainer schreiben, der einen Wert eines Spiels während der laufzeit so ändert, das ich unendlich leben, undendlich munition ect. habe.<br />
Dieses mache ich mit hilfe von WriteProcessMemory. Hier ein teil des codes:</p>
<pre><code class="language-cpp">unsigned adresse = 0x00412502;
int      offset  = 0x8B7C2414;
...
WriteProcessMemory(hproc,(LPVOID)adresse,&amp;offset,4,NULL);
</code></pre>
<p>Das Problem ist, das der offset 8B7C2414, welcher ja 4 byte groß ist, nicht korrekt in die adresse 00412502 eingetragen wird. Er landet irgendwie wild verteilt in den daneben liegenden Adressen.Wenn ich nur einen byte eintragen will (z.B 90) dann klappt alles wunderbar, nur wenn es dann mehrere sein sollen, gibt es probleme. Weiß jemand wie ich das machen muss?</p>
<p>Danke im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/45476/problem-mit-writeprocessmemory</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 00:58:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/45476.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Aug 2003 01:14:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit WriteProcessMemory on Mon, 11 Aug 2003 01:14:55 GMT]]></title><description><![CDATA[<p>hi leute!<br />
Leider muss ich euch schonwieder nerven, und zwar weil mein Programm mal wieder mist macht!<br />
Alsooo:<br />
Ich will einen trainer schreiben, der einen Wert eines Spiels während der laufzeit so ändert, das ich unendlich leben, undendlich munition ect. habe.<br />
Dieses mache ich mit hilfe von WriteProcessMemory. Hier ein teil des codes:</p>
<pre><code class="language-cpp">unsigned adresse = 0x00412502;
int      offset  = 0x8B7C2414;
...
WriteProcessMemory(hproc,(LPVOID)adresse,&amp;offset,4,NULL);
</code></pre>
<p>Das Problem ist, das der offset 8B7C2414, welcher ja 4 byte groß ist, nicht korrekt in die adresse 00412502 eingetragen wird. Er landet irgendwie wild verteilt in den daneben liegenden Adressen.Wenn ich nur einen byte eintragen will (z.B 90) dann klappt alles wunderbar, nur wenn es dann mehrere sein sollen, gibt es probleme. Weiß jemand wie ich das machen muss?</p>
<p>Danke im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/328857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/328857</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Mon, 11 Aug 2003 01:14:55 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WriteProcessMemory on Mon, 11 Aug 2003 07:40:05 GMT]]></title><description><![CDATA[<p>Erstens, bei WriteProcessMemory übergibst du nicht die Adresse des Offset's sondern die Adresse des Wertes (Weisst du überhaupt was ein Offset ist?)<br />
Zweitens, die Wert-Variable muss man umkehren in 0x14247c8b oder man nimmt ein array.<br />
Drittens, die Frage gehört ins Winapi Forum, denn ich sehe hier keine MFC-spezifischen Fragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/328953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/328953</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 11 Aug 2003 07:40:05 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WriteProcessMemory on Mon, 11 Aug 2003 15:11:04 GMT]]></title><description><![CDATA[<p>Hoppla! Ich habe die Opcodes mit Offset verwechselt!<br />
Ich denke mal das der offset ein wert einer adresse ist, beispielsweise der wert wie viel Munition man noch hat.<br />
Was ich jetzt ändern will, sind die Opcodes.<br />
Wie gesagt, wirft mein Programm da alles durcheinander.<br />
Wie muss ich das jetzt machen?</p>
<p>Danke im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/329458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/329458</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Mon, 11 Aug 2003 15:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WriteProcessMemory on Mon, 11 Aug 2003 16:22:16 GMT]]></title><description><![CDATA[<p>einfach die Variable umdrehen, sowie ich es oben gepostet habe<br />
oder man nummt ein BYTE Array:</p>
<pre><code class="language-cpp">BYTE byValue[] = {0x8b,0x7c,0x24,0x14};
//...
::WriteProcessMemory(hProcess,(LPVOID)0x412502,(LPCVOID)byValue,sizeof(byValue)/sizeof(*byValue),NULL);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/329506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/329506</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 11 Aug 2003 16:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WriteProcessMemory on Mon, 11 Aug 2003 22:33:41 GMT]]></title><description><![CDATA[<p>Jau danke klappt wunderbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Dein code hat aber einen kleinen fehler und zwar muss man<br />
sizeof(byValue) nicht durch sizeof(*byValue), sondern einfach durch 2 teilen, sonst kommt wieder schrott in den speicher, aber trotzdem danke, hast mich auf den richtigen weg gebracht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/329711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/329711</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Mon, 11 Aug 2003 22:33:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WriteProcessMemory on Mon, 11 Aug 2003 23:09:33 GMT]]></title><description><![CDATA[<p>hmm mist, irgendwie funktioniert es so doch nicht. Da ist noch irgendwo ein fehler. Er schreibt die bytes jetzt an die richtigen stellen, aber das problem das ich jetzt habe, das er den folgenden adressen irgendeinen müll zuordnet. Das liegt sicher daran, das die puffer größe von byValue nicht richtig ermittelt wird. Wie muss ich das richtig machen? Ich Probiere schon ne Stunde rum, aber finde kein ergebnis.</p>
<p>Danke im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/329721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/329721</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Mon, 11 Aug 2003 23:09:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WriteProcessMemory on Mon, 11 Aug 2003 23:12:38 GMT]]></title><description><![CDATA[<p>Nö, warum durch 2? Du hast 4 Elemente in deinem BYTE Array, ein char ist 1 Byte groß.</p>
<p>EDIT:<br />
dann würde ich anstelle von sizeof die Anzahl der Elemente schreiben, in deinem Fall sind es 4</p>
]]></description><link>https://www.c-plusplus.net/forum/post/329722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/329722</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 11 Aug 2003 23:12:38 GMT</pubDate></item></channel></rss>