<?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[Im Speicher lesen und schreiben]]></title><description><![CDATA[<p>Wazzuuuuuup?? (ist doch mal 'ne alternative zum ständigen 'Hi')<br />
Ihr kennt doch sicher GameWiz? Eine kurze Beschreibung falls nicht:<br />
Mit dem Tool kann man den Speicher der aktiven Programme manipulieren.<br />
Wenn man zum Beispiel bei Spielen schummeln will, also mehr Geld oder<br />
Ressourcen, so sucht man nach dem Wert im Speicher und wenn die richtige<br />
Addresse gefunden wurde, so gibt man nun einen neuen Wert und schon ist<br />
genug Geld da um sich die Welt kaufen zu können.<br />
Ich will nun ein eigenes Tool programmieren, das mir den Speicher überwacht<br />
und ich somit die Heisenbugs bekämpfen kann.<br />
Das Problem: ich hab keine Ahnung mit welchen Befehlen man im RAM lesen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/74355/im-speicher-lesen-und-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 15:29:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/74355.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 May 2004 16:32:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Wed, 19 May 2004 16:32:25 GMT]]></title><description><![CDATA[<p>Wazzuuuuuup?? (ist doch mal 'ne alternative zum ständigen 'Hi')<br />
Ihr kennt doch sicher GameWiz? Eine kurze Beschreibung falls nicht:<br />
Mit dem Tool kann man den Speicher der aktiven Programme manipulieren.<br />
Wenn man zum Beispiel bei Spielen schummeln will, also mehr Geld oder<br />
Ressourcen, so sucht man nach dem Wert im Speicher und wenn die richtige<br />
Addresse gefunden wurde, so gibt man nun einen neuen Wert und schon ist<br />
genug Geld da um sich die Welt kaufen zu können.<br />
Ich will nun ein eigenes Tool programmieren, das mir den Speicher überwacht<br />
und ich somit die Heisenbugs bekämpfen kann.<br />
Das Problem: ich hab keine Ahnung mit welchen Befehlen man im RAM lesen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523569</guid><dc:creator><![CDATA[INTEGER]]></dc:creator><pubDate>Wed, 19 May 2004 16:32:25 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Wed, 19 May 2004 16:36:52 GMT]]></title><description><![CDATA[<p>Mit dem C++-Standard geht das sicherlich nicht. Du kannst natürlich versuchen deinem Pointer die Werte 1 bis zur Größe des verfügbaren RAMs zuweisen, und jedesmal den Pointer dereferenzieren, aber manche Leute meinen das Programm bricht dann aus unerklärlichen Gründen ab und löscht die Festplatte (Insider *g*).</p>
<p>Also für welches Betriebssystem willst du die Software erstellen?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523572</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Wed, 19 May 2004 16:36:52 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Wed, 19 May 2004 16:39:10 GMT]]></title><description><![CDATA[<p>WinXP, aber C++ baut doch auf C auf und mit C hat man doch ständig mit dem Speicher rumgespielt oder irre ich mich da?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523575</guid><dc:creator><![CDATA[INTEGER]]></dc:creator><pubDate>Wed, 19 May 2004 16:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Wed, 19 May 2004 16:43:01 GMT]]></title><description><![CDATA[<p>aber windows kann, wie die meisten anderen os auch, dafür sorgen, dass ein programm nicht auf fremden speicher zugreiffen kann. und da spielts dann keine rolle ob man java, c++, c oder Assembler programmiert. aber netterweise bieten die betreibssysteme möglichkeiten doch auf fremden speicher zuzugrifen. aber das ist dann eben eine frage des os und nicht der programmiersprache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523577</guid><dc:creator><![CDATA[japro]]></dc:creator><pubDate>Wed, 19 May 2004 16:43:01 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Wed, 19 May 2004 16:45:26 GMT]]></title><description><![CDATA[<p>INTEGER schrieb:</p>
<blockquote>
<p>WinXP</p>
</blockquote>
<p>-&gt; Ab ins WinAPI-Forum <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="🙂"
    /></p>
<p>Du kannst ja wie gesagt auch mit C/C++ auf den gesamten Speicher zugreifen - aber das Betriebssystem registriert, dass du auf fremden Speicher zugreifen willst und lässt dich dabei voll im Stich -&gt; es tötet dein Prorgamm. &quot;0x00000005 Access Violation&quot; heißt der Fehler unter Windows genau <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="🙂"
    /></p>
<p>Damit du Zugriff auf fremden Speicher bekommst musst du dir zuvor vom Betriebssystem die Erlaubnis dafür holen.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523579</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Wed, 19 May 2004 16:45:26 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Wed, 19 May 2004 16:47:48 GMT]]></title><description><![CDATA[<p>Naja, dann könnt ihr eben den Thread verschieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523581</guid><dc:creator><![CDATA[INTEGER]]></dc:creator><pubDate>Wed, 19 May 2004 16:47:48 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Wed, 19 May 2004 16:49:01 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=403" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/523583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523583</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 19 May 2004 16:49:01 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Wed, 19 May 2004 20:26:12 GMT]]></title><description><![CDATA[<p><a href="http://msdn.microsoft.com/library/en-us/debug/base/readprocessmemory.asp" rel="nofollow">ReadProcessMemory</a><br />
<a href="http://msdn.microsoft.com/library/en-us/debug/base/writeprocessmemory.asp" rel="nofollow">WriteProcessMemory</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/523679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523679</guid><dc:creator><![CDATA[HAR]]></dc:creator><pubDate>Wed, 19 May 2004 20:26:12 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Wed, 19 May 2004 20:28:35 GMT]]></title><description><![CDATA[<p>Schau dir mal <a href="http://msdn.microsoft.com/library/en-us/debug/base/writeprocessmemory.asp" rel="nofollow">WriteProcessMemory</a> an <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="🙂"
    /></p>
<p>edit: zu langsam</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523681</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 19 May 2004 20:28:35 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Thu, 20 May 2004 09:37:48 GMT]]></title><description><![CDATA[<p>Irgentwie bekomm ich es nicht hin.</p>
<pre><code>DWORD ID;
HANDLE process;
int data = x;
int add = 0x429B40;
DWORD size;

ID = GetWindowThreadProcessId(hwnd,NULL);
process = OpenProcess(NULL,NULL,ID);
ReadProcessMemory(process,&amp;add,&amp;data,1,NULL);
</code></pre>
<p>Wenn ich jetzt data ausgeben lass, hat es immer noch den Wert x.<br />
An der Addresse 429B40 sollte aber 10 stehen. Was mach ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523831</guid><dc:creator><![CDATA[INTEGER]]></dc:creator><pubDate>Thu, 20 May 2004 09:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Thu, 20 May 2004 12:37:36 GMT]]></title><description><![CDATA[<p>Schau dir mal dir Parameter von OpenProcess nochmal genauer an <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="😉"
    /><br />
Wenn du nur lesen willst sollte PROCESS_VM_READ als 1. Parameter reichen - und beim 2. einfach FALSE <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/523916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523916</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 20 May 2004 12:37:36 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Thu, 20 May 2004 13:27:47 GMT]]></title><description><![CDATA[<p>Ja, ich habs jetzt. Statt ID = GetWindowThreadProcessId(hwnd,NULL); muss es<br />
GetWindowThreadProcessId(hwnd,&amp;ID); heisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523961</guid><dc:creator><![CDATA[INTEGER]]></dc:creator><pubDate>Thu, 20 May 2004 13:27:47 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Thu, 20 May 2004 14:22:43 GMT]]></title><description><![CDATA[<p>Um anderen die Arbeit zu erspraren hab ich den Code hochgeladen:<br />
<a href="http://mitglied.lycos.de/yhva/Test05.cpp" rel="nofollow">http://mitglied.lycos.de/yhva/Test05.cpp</a><br />
Er ist zwar nicht ganz sauber, aber man hat dann wenigstens ein kleines Beispiel.</p>
<p>Ich bin dafür, dass eine Upload-Section eingeführt wird, damit schon gelöste Probleme<br />
für alle verfügbar sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524007</guid><dc:creator><![CDATA[INTEGER]]></dc:creator><pubDate>Thu, 20 May 2004 14:22:43 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Thu, 20 May 2004 14:40:03 GMT]]></title><description><![CDATA[<p>Du kannst doch einfach direkt den Code hier posten - oder ist der so lang?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524021</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 20 May 2004 14:40:03 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Thu, 20 May 2004 14:43:26 GMT]]></title><description><![CDATA[<p>Bzgl. Uploadsection, die gibts bei uns nicht. Wir haben uns auf eine FAQ geeinigt (siehe unten) - ich finde übrigens, dass der Thread ganz brauchbar dafür ist <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>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524027</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 20 May 2004 14:43:26 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Thu, 20 May 2004 19:46:49 GMT]]></title><description><![CDATA[<p>Ich warte mal noch ein Weilchen, denn nach dem Verschieben könnt ihr ja nichts mehr dazu posten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/524222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524222</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 20 May 2004 19:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to Im Speicher lesen und schreiben on Fri, 21 May 2004 07:21:12 GMT]]></title><description><![CDATA[<p>Aber in diesem kleinen sample liest/schreibst du ja von deinem eigenen prozess (wenn ich mich nich verlesen hab, bin noch ziemlich müde -.-)<br />
Wenn du aber auf virtuellen speicher anderer Prozesse zugreifst wird das schon interressanter.<br />
Da geht das dann mit dem lesen und schreiben nichtmehr soleicht. Um nur was zu lesen musst du dir mit VirtualProtectEx() erstmal die rechte dafür holen.<br />
wenn du was ÜBERschreiben willst (muss dann aber bitweise von der gleichen größe sein bzw. muss nicht, aber sonst ists quatsch 8)) musst du dir auch die rechte holen.<br />
Wenn du was neues dazuschreiben willst, musst du mit VirtualAllocEx() arbeiten um für dich speicher zu reservieren.<br />
Ich hoffe ich konnte trotz in meinem müdem Zustand helfen</p>
<p>mfg jghj</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524373</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Fri, 21 May 2004 07:21:12 GMT</pubDate></item></channel></rss>