<?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[Memory-Such-Funktion, habe keinen Zugriff auf die Adresse]]></title><description><![CDATA[<p>Ich möchte den Speicherbereich zwischen 0x080000B0 und 0x08FF00B0 nach einem String<br />
absuchen, aber ich kann die Adresse nicht vergrößern</p>
<p>Aber seht selbst:</p>
<pre><code class="language-cpp">LPVOID current = (LPVOID)0x080000B0;
	bret=ReadProcessMemory(hopen, current, &amp;data, 5, 0);
	current++;
</code></pre>
<pre><code class="language-cpp">LPVOID current = (LPVOID)0x080000B0;
	bret=ReadProcessMemory(hopen, current, &amp;data, 5, 0);
	current += (LPVOID)0x00010000;
</code></pre>
<p>Der Compiler sagt</p>
<pre><code>error C2036: 'LPVOID' : unknown size
</code></pre>
<p>Aber es hat ja ne size, wie spreche ich denn den Pointer selbst an?</p>
<p>Danke schonmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/161566/memory-such-funktion-habe-keinen-zugriff-auf-die-adresse</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 22:54:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/161566.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Oct 2006 10:11:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Memory-Such-Funktion, habe keinen Zugriff auf die Adresse on Sun, 08 Oct 2006 10:11:54 GMT]]></title><description><![CDATA[<p>Ich möchte den Speicherbereich zwischen 0x080000B0 und 0x08FF00B0 nach einem String<br />
absuchen, aber ich kann die Adresse nicht vergrößern</p>
<p>Aber seht selbst:</p>
<pre><code class="language-cpp">LPVOID current = (LPVOID)0x080000B0;
	bret=ReadProcessMemory(hopen, current, &amp;data, 5, 0);
	current++;
</code></pre>
<pre><code class="language-cpp">LPVOID current = (LPVOID)0x080000B0;
	bret=ReadProcessMemory(hopen, current, &amp;data, 5, 0);
	current += (LPVOID)0x00010000;
</code></pre>
<p>Der Compiler sagt</p>
<pre><code>error C2036: 'LPVOID' : unknown size
</code></pre>
<p>Aber es hat ja ne size, wie spreche ich denn den Pointer selbst an?</p>
<p>Danke schonmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1151335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151335</guid><dc:creator><![CDATA[Listing]]></dc:creator><pubDate>Sun, 08 Oct 2006 10:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to Memory-Such-Funktion, habe keinen Zugriff auf die Adresse on Sun, 08 Oct 2006 10:38:21 GMT]]></title><description><![CDATA[<p>Listing schrieb:</p>
<blockquote>
<pre><code>error C2036: 'LPVOID' : unknown size
</code></pre>
<p>Aber es hat ja ne size, wie spreche ich denn den Pointer selbst an?</p>
</blockquote>
<p>Nein. 'LPVOID' ist 'void*' und das hat eben keine Größe und kann daher auch nicht in Zeigerarithmetik verwendet werden. Verwende 'BYTE*', um in Einerschritten hochzuzählen ('BYTE' sollte unter Windows die kleinste adressierbare Einheit darstellen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1151358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151358</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 08 Oct 2006 10:38:21 GMT</pubDate></item><item><title><![CDATA[Reply to Memory-Such-Funktion, habe keinen Zugriff auf die Adresse on Sun, 08 Oct 2006 10:46:51 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Listing schrieb:</p>
<blockquote>
<pre><code>error C2036: 'LPVOID' : unknown size
</code></pre>
<p>Aber es hat ja ne size, wie spreche ich denn den Pointer selbst an?</p>
</blockquote>
<p>Nein. 'LPVOID' ist 'void*' und das hat eben keine Größe und kann daher auch nicht in Zeigerarithmetik verwendet werden. Verwende 'BYTE*', um in Einerschritten hochzuzählen ('BYTE' sollte unter Windows die kleinste adressierbare Einheit darstellen).</p>
</blockquote>
<p>Wie soll das denn Funktionieren?<br />
Die Funktion &quot;ReadMemory&quot; verlangt LPVOID als Adressen-Paramenter,<br />
könttest du bitte ein Beispiel machen, damit ich dir folgen kann?<br />
Danke schonmal für deine Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1151363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151363</guid><dc:creator><![CDATA[Listing]]></dc:creator><pubDate>Sun, 08 Oct 2006 10:46:51 GMT</pubDate></item><item><title><![CDATA[Reply to Memory-Such-Funktion, habe keinen Zugriff auf die Adresse on Sun, 08 Oct 2006 10:53:11 GMT]]></title><description><![CDATA[<p>Listing schrieb:</p>
<blockquote>
<p>Wie soll das denn Funktionieren?<br />
Die Funktion &quot;ReadMemory&quot; verlangt LPVOID als Adressen-Paramenter</p>
</blockquote>
<p>Das ist doch egal, Du brauchst doch eh ein 'reinterpret_cast', da kannst Du zwischen den Zeigern hin- und hercasten, wie Du lustig bist. Und nach 'void*' kann man eh implizit casten:</p>
<pre><code class="language-cpp">BYTE* current = reinterpret_cast&lt;BYTE*&gt;(0x080000B0);
bret = ReadProcessMemory(hopen, current, &amp;data, 5, 0);
current++;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1151364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151364</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 08 Oct 2006 10:53:11 GMT</pubDate></item><item><title><![CDATA[Reply to Memory-Such-Funktion, habe keinen Zugriff auf die Adresse on Sun, 08 Oct 2006 11:07:40 GMT]]></title><description><![CDATA[<p>Das klappt nicht so ganz:</p>
<pre><code class="language-cpp">while(true)
	{
	 //LPVOID current = (LPVOID)0x08??00B0;
	 BYTE* current = reinterpret_cast&lt;BYTE*&gt;(0x00450000);
	 bret=ReadProcessMemory(hopen, current, &amp;data, 10, 0);
	 current++;
	 cout &lt;&lt; &quot;At the offset: &quot; &lt;&lt; current &lt;&lt; hex &lt;&lt; &quot; the Data is: &quot;;
	 cout &lt;&lt; hex &lt;&lt; data &lt;&lt; endl;
	  if(current == reinterpret_cast&lt;BYTE*&gt;(0x00450100))
	    {
	      bret=CloseHandle(hopen); 
	      return 0;
    	} 
	}
</code></pre>
<p>ergibt eine Endlosschleife...</p>
<p>Ausgabe:</p>
<pre><code>At the offset:  the Data is: 0
At the offset:  the Data is: 0
At the offset:  the Data is: 0
At the offset:  the Data is: 0
At the offset:  the Data is: 0
At the offset:  the Data is: 0
At the offset:  the Data is: 0
..............
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1151370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151370</guid><dc:creator><![CDATA[Listing]]></dc:creator><pubDate>Sun, 08 Oct 2006 11:07:40 GMT</pubDate></item><item><title><![CDATA[Reply to Memory-Such-Funktion, habe keinen Zugriff auf die Adresse on Sun, 08 Oct 2006 11:09:49 GMT]]></title><description><![CDATA[<p>Listing schrieb:</p>
<blockquote>
<p>ergibt eine Endlosschleife...</p>
</blockquote>
<p>Ja, Du setzt ja auch in jedem Schleifendurchlauf 'current' auf seinen Startwert zurück ...</p>
<pre><code class="language-cpp">BYTE* current = reinterpret_cast&lt;BYTE*&gt;(0x00450000);

while (current != reinterpret_cast&lt;BYTE*&gt;(0x00450100)) {
    bret = ReadProcessMemory(hopen, current++, &amp;data, 10, 0);
    cout &lt;&lt; hex &lt;&lt; data &lt;&lt; endl;
}
bret=CloseHandle(hopen);
</code></pre>
<p>/Edit: um Dir die Adresse von 'current' ausgeben zu lasse:</p>
<pre><code class="language-cpp">cout &lt;&lt; static_cast&lt;void*&gt;(current) &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1151371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151371</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 08 Oct 2006 11:09:49 GMT</pubDate></item><item><title><![CDATA[Reply to Memory-Such-Funktion, habe keinen Zugriff auf die Adresse on Sun, 08 Oct 2006 11:17:50 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Listing schrieb:</p>
<blockquote>
<p>ergibt eine Endlosschleife...</p>
</blockquote>
<p>Ja, Du setzt ja auch in jedem Schleifendurchlauf 'current' auf seinen Startwert zurück ...</p>
<pre><code class="language-cpp">BYTE* current = reinterpret_cast&lt;BYTE*&gt;(0x00450000);

while (current != reinterpret_cast&lt;BYTE*&gt;(0x00450100)) {
    bret = ReadProcessMemory(hopen, current++, &amp;data, 10, 0);
    cout &lt;&lt; hex &lt;&lt; data &lt;&lt; endl;
}
bret=CloseHandle(hopen);
</code></pre>
</blockquote>
<p>Sorry, das ist ein Fehler der mir , manchmal passiert <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 />
Jetzt geht es</p>
<p>Dankeschön <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1151372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151372</guid><dc:creator><![CDATA[Listing]]></dc:creator><pubDate>Sun, 08 Oct 2006 11:17:50 GMT</pubDate></item></channel></rss>