<?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[Typekonvertierung ?]]></title><description><![CDATA[<p>Hallo ich habe 2 Frage zu diesem Programm.</p>
<pre><code class="language-cpp">char code[] = &quot;\x31\xc0\xbb\x42\x24\x80\x7c\x66\xb8\x88\x13\x50\xff\xd3&quot;; // Sleep Befehl aufrufen

int main()
{

int (*func)();

func = (int (*) () ) code ;  // // Den shellcode an die adresse von func schreiben handelt es sich hier um eine Typkonvertierung im C style ???

(int)(*func)();  // Variable neu Deklarieren und dadurch den Shellcode in den Speicher schreiben ??
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/258186/typekonvertierung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 09:52:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258186.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Jan 2010 14:39:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Typekonvertierung ? on Thu, 07 Jan 2010 14:39:04 GMT]]></title><description><![CDATA[<p>Hallo ich habe 2 Frage zu diesem Programm.</p>
<pre><code class="language-cpp">char code[] = &quot;\x31\xc0\xbb\x42\x24\x80\x7c\x66\xb8\x88\x13\x50\xff\xd3&quot;; // Sleep Befehl aufrufen

int main()
{

int (*func)();

func = (int (*) () ) code ;  // // Den shellcode an die adresse von func schreiben handelt es sich hier um eine Typkonvertierung im C style ???

(int)(*func)();  // Variable neu Deklarieren und dadurch den Shellcode in den Speicher schreiben ??
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1834418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834418</guid><dc:creator><![CDATA[con_typ]]></dc:creator><pubDate>Thu, 07 Jan 2010 14:39:04 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Thu, 07 Jan 2010 15:01:05 GMT]]></title><description><![CDATA[<p>[quote=&quot;con_typ&quot;]Hallo ich habe 2 Frage zu diesem Programm.</p>
<pre><code class="language-cpp">func = (int (*) () ) code ;  // // Den shellcode an die adresse von func schreiben handelt es sich hier um eine Typkonvertierung im C style ???
</code></pre>
<p>Kein Standard-C++ - klar, aber ja, C-Style-Cast (bewirkt erst Array-zu-Pointer-Decay, dann Zeigerkonvertierung).</p>
<pre><code class="language-cpp">(int)(*func)();  // Variable neu Deklarieren und dadurch den Shellcode in den Speicher schreiben ??
</code></pre>
<p>Das ist ein Funktionsaufruf, der Rückgabewert, der schon int ist, wir nochmal explizit in int gecastet - überflüssig. Die Klammern um int verhindern, dass es sich um eine Deklaration handelt. Sinnvoller wäre zu schreiben</p>
<pre><code class="language-cpp">int (*func)() = (int (*) () ) code ;
func();
</code></pre>
<p>und gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834438</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 07 Jan 2010 15:01:05 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Thu, 07 Jan 2010 15:00:47 GMT]]></title><description><![CDATA[<blockquote>
<p>Den shellcode an die adresse von func schreiben handelt es sich hier um eine Typkonvertierung im C style ???</p>
</blockquote>
<p>Jein. Es handelt sich um einen C Style Cast, aber es wird nichts an die Adresse von func geschrieben, sondern dem Zeiger func wird die Adresse von code zugewiesen.</p>
<blockquote>
<p>Variable neu Deklarieren und dadurch den Shellcode in den Speicher schreiben ??</p>
</blockquote>
<p>Nein. Es wird die Funktion an der Adresse func aufgerufen. Was der Shellcode ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834439</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 07 Jan 2010 15:00:47 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Thu, 07 Jan 2010 15:33:58 GMT]]></title><description><![CDATA[<p>OK thx erst mal für die Antworten aber eine Frage ist noch offen.</p>
<p>Was bedeutet: Array-zu-Pointer-Decay</p>
<p>Klar was ein Array und was Pointer sind weiss ich aber was bedeutet Decay ?</p>
<p>Und ist das hier dann so richtig ? ( Ich will wissen ob ich es verstanden habe )</p>
<pre><code class="language-cpp">func = (int (*) () )code; 

/*/ int steht hier für den Datentyp in den die Funktion gecastet werden soll.
(*) &lt;-- Sagt das es sich bei der Funktion um eine Pointer Funktion handelt.

()  &lt;--- Sagt einfach das man dem Zeiger von func die Adresse von code zuweist.

code; &lt;--- Welcher wert soll dem Pointer zugewiesen werden
</code></pre>
<p>:xmas1: :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834459</guid><dc:creator><![CDATA[con_typ]]></dc:creator><pubDate>Thu, 07 Jan 2010 15:33:58 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Thu, 07 Jan 2010 16:30:59 GMT]]></title><description><![CDATA[<p>con_typ schrieb:</p>
<blockquote>
<p>Was bedeutet: Array-zu-Pointer-Decay</p>
</blockquote>
<p>Das heißt, wenn man ein Array an irgendetwas (zum Beispiel eine Funktion) übergibt, dann wird nicht das Array übergeben, sondern ein Pointer auf das erste Element des Arrays. Ist eine grundlegende Eigenschaft der Sprache C, die unter anfängern sehr viel Verwirrung stiftet. Deshalb werden Arrays in C++ auch gerne mal in Klassen geschachtelt, damit das nicht passiert.</p>
<p>Deine Interpretaion des Codestücks ist ziemlich falsch:</p>
<pre><code class="language-cpp">func = (int (*) () )code;
</code></pre>
<p>Alles in den Klammern ist der Typ auf den gecastet werden soll:</p>
<pre><code class="language-cpp">int (*) ()
</code></pre>
<p>Das ist ein Zeiger auf eine Funktion ohne Argumente, die einen int zurückgibt. Klingt komplex, ist es auch. Wenn du das wirklich verstehen willst, solltest du dich mal mit Funktionszeigern beschäftigen.</p>
<p>Das rechts von den Klammern ist dann das, was gecastet werden soll, hier das Array 'code', welches aber wie oben gesagt als ein Pointer auf sein erstes Element an die Castfunktion übergeben wird. Es wird also ein Pointer auf char in einen Pointer auf eine Funkton umgewandelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834514</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 07 Jan 2010 16:30:59 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Thu, 07 Jan 2010 18:49:49 GMT]]></title><description><![CDATA[<p>Kennst du zufällig eine gute Seite wo man sich darüber einlesen kann ?</p>
<p>Ein paar Sachen habe ich heute schon darüber gelesen.</p>
<p>Aber so etwas habe ich keinem Tutorial so etwas gefunden.: func = (int (*) () )code;</p>
<p>Solche Sachen hab ich z.b. schon verstanden aber das Hilft mir hier nicht wirklich weiter <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>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int (*ptr)(int var2);
int func(int var1);

int main ()
{

int zahl = 30;
   ptr = func;   

  (*ptr)(zahl);

   zahl = 40;  

   (*ptr)(zahl); 

system(&quot;PAUSE&quot;);
}

int func(int var1)
{
   cout &lt;&lt; &quot;Ausgabe: &quot; &lt;&lt; var1 &lt;&lt; endl;
}
</code></pre>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int *ptr(int var);    

int main ()
{

int var;

var = *ptr(20);  

cout &lt;&lt; var;    

system(&quot;PAUSE&quot;);
}

int *ptr(int var)
{

return &amp;var;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1834624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834624</guid><dc:creator><![CDATA[con_typ]]></dc:creator><pubDate>Thu, 07 Jan 2010 18:49:49 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Fri, 08 Jan 2010 19:09:25 GMT]]></title><description><![CDATA[<p>Kann mir den keiner sagen wo ich mich da einlesen kann ? <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/1835236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835236</guid><dc:creator><![CDATA[con_typ]]></dc:creator><pubDate>Fri, 08 Jan 2010 19:09:25 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Fri, 08 Jan 2010 19:12:58 GMT]]></title><description><![CDATA[<p><a href="http://www.function-pointer.org/" rel="nofollow">http://www.function-pointer.org/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835237</guid><dc:creator><![CDATA[Cox]]></dc:creator><pubDate>Fri, 08 Jan 2010 19:12:58 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Fri, 08 Jan 2010 19:13:51 GMT]]></title><description><![CDATA[<p>Google doch einfach mal!</p>
<p><a href="http://www.newty.de/fpt/index.html" rel="nofollow">http://www.newty.de/fpt/index.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835239</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Fri, 08 Jan 2010 19:13:51 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Fri, 08 Jan 2010 19:26:46 GMT]]></title><description><![CDATA[<p>Das hab ich auch letzdens schon mal gefunden aber da steht nicht was ich suche. <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/1835254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835254</guid><dc:creator><![CDATA[con_typ]]></dc:creator><pubDate>Fri, 08 Jan 2010 19:26:46 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Fri, 08 Jan 2010 19:53:17 GMT]]></title><description><![CDATA[<p>Und wir wissen nicht, was du suchst. Deinen präzise gestellten Fragen wurde präzise geantwortet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835285</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Fri, 08 Jan 2010 19:53:17 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Fri, 08 Jan 2010 20:46:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">return ((int(*)()) &quot;\x31\xc0\xbb\x42\x24\x80\x7c\x66\xb8\x88\x13\x50\xff\xd3&quot;)();
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835314</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 08 Jan 2010 20:46:32 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Sat, 09 Jan 2010 13:19:16 GMT]]></title><description><![CDATA[<p>So langsam verstehe ich glaub ich wie das funktioniert.</p>
<p>Zeigt der Pointer auf die Adresse vom Shellcode muss ja eigentlich oder ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835549</guid><dc:creator><![CDATA[con_typ]]></dc:creator><pubDate>Sat, 09 Jan 2010 13:19:16 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Sun, 10 Jan 2010 12:47:54 GMT]]></title><description><![CDATA[<p>Weiss das denn keiner ? <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/1836201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836201</guid><dc:creator><![CDATA[con_typ]]></dc:creator><pubDate>Sun, 10 Jan 2010 12:47:54 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Sun, 10 Jan 2010 13:52:58 GMT]]></title><description><![CDATA[<p>con_typ schrieb:</p>
<blockquote>
<p>Zeigt der Pointer auf die Adresse vom Shellcode muss ja eigentlich oder ?</p>
</blockquote>
<p>Du musst ja wissen, wo der Shellcode liegt, wenn du ihn ausführen willst. Also ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836256</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 10 Jan 2010 13:52:58 GMT</pubDate></item><item><title><![CDATA[Reply to Typekonvertierung ? on Mon, 11 Jan 2010 15:40:01 GMT]]></title><description><![CDATA[<p>Ok ty dann habe ich es jetzt verstande. <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/1836861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836861</guid><dc:creator><![CDATA[con_typ]]></dc:creator><pubDate>Mon, 11 Jan 2010 15:40:01 GMT</pubDate></item></channel></rss>