<?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[Assembler in C++]]></title><description><![CDATA[<p>Hallo,<br />
habe folgendes Problem.Habe einen einfachen Testcode Pointer gebastelt um ein paar sachen auszuprobieren.Der Code sieht wie folgt aus:</p>
<pre><code class="language-cpp">#include &lt;Windows.h&gt;

int main (int argc, char **argv)
{

    BYTE code[2] = {0xCD, 0x0D};

    BYTE *i = code;

    _asm
    {
        mov eax,0x00401028
        call EAX
    }

return 0;
}
</code></pre>
<p>Im BYTE Array ist im Prinzip nichts anderes als der Mnenomic für Int13 angegeben. Wenn ich nun mein Programm starte dann springt der Call EAX auch in meinen Array jedoch macht der nicchts anderes als das hier:</p>
<pre><code class="language-asm">mov         byte ptr [ebp-4],0CDh
mov         byte ptr [ebp-3],0Dh
</code></pre>
<p>Das ist ja natürlich nicht das was ich will!Hab es auch schon mit char versucht was allerdings auch nichts brachte.Wie kann ich mein Problem lösen?(Ich habe ja zuerst mal ganz trivial an das NoExcuteBit gedacht. Also das diie Ausführung von<br />
Speicherbereichen die Stings ect enthalten verboten ist.Kann das sein)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194374/assembler-in-c</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 06:39:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194374.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 Oct 2007 20:10:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Assembler in C++ on Fri, 05 Oct 2007 20:10:54 GMT]]></title><description><![CDATA[<p>Hallo,<br />
habe folgendes Problem.Habe einen einfachen Testcode Pointer gebastelt um ein paar sachen auszuprobieren.Der Code sieht wie folgt aus:</p>
<pre><code class="language-cpp">#include &lt;Windows.h&gt;

int main (int argc, char **argv)
{

    BYTE code[2] = {0xCD, 0x0D};

    BYTE *i = code;

    _asm
    {
        mov eax,0x00401028
        call EAX
    }

return 0;
}
</code></pre>
<p>Im BYTE Array ist im Prinzip nichts anderes als der Mnenomic für Int13 angegeben. Wenn ich nun mein Programm starte dann springt der Call EAX auch in meinen Array jedoch macht der nicchts anderes als das hier:</p>
<pre><code class="language-asm">mov         byte ptr [ebp-4],0CDh
mov         byte ptr [ebp-3],0Dh
</code></pre>
<p>Das ist ja natürlich nicht das was ich will!Hab es auch schon mit char versucht was allerdings auch nichts brachte.Wie kann ich mein Problem lösen?(Ich habe ja zuerst mal ganz trivial an das NoExcuteBit gedacht. Also das diie Ausführung von<br />
Speicherbereichen die Stings ect enthalten verboten ist.Kann das sein)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1378861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1378861</guid><dc:creator><![CDATA[secondsun*gmx.de]]></dc:creator><pubDate>Fri, 05 Oct 2007 20:10:54 GMT</pubDate></item><item><title><![CDATA[Reply to Assembler in C++ on Fri, 05 Oct 2007 20:59:09 GMT]]></title><description><![CDATA[<p><a href="mailto:secondsun@gmx.de" rel="nofollow">secondsun@gmx.de</a> schrieb:</p>
<blockquote>
<p>Wie kann ich mein Problem lösen?</p>
</blockquote>
<p>Du musst EAX mit der <em>Adresse</em> von &quot;code[2]&quot; initialisieren. Probier mal :</p>
<pre><code class="language-cpp">_asm {
   LEA  EAX,code
   CALL EAX
 }
</code></pre>
<p>Viel Spass im Stack ! <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/1378876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1378876</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 05 Oct 2007 20:59:09 GMT</pubDate></item><item><title><![CDATA[Reply to Assembler in C++ on Fri, 05 Oct 2007 22:08:51 GMT]]></title><description><![CDATA[<p>nein,das bringt auch niichts:-( im array steht ja dann immer noch das selbe wie vorher auch...daran hatte ich nämlich auch schon gedacht.habe aber direkt den zeiger initialisiert und hab dann versucht über den zeiger drauf zuzgreifen..aber ist ja alles hubug denn dadurch ändert sich ja nicht die &quot;struktur&quot; im array:-(</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1378920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1378920</guid><dc:creator><![CDATA[secondsun*gmx.de]]></dc:creator><pubDate>Fri, 05 Oct 2007 22:08:51 GMT</pubDate></item><item><title><![CDATA[Reply to Assembler in C++ on Sat, 06 Oct 2007 00:36:41 GMT]]></title><description><![CDATA[<p>Ach so, ich dachte Du wolltest nur den Code in &quot;code[]&quot; ausführen. Was soll sich denn an den Werten oder an der Initialisierung des Arrays ändern ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1378960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1378960</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 06 Oct 2007 00:36:41 GMT</pubDate></item><item><title><![CDATA[Reply to Assembler in C++ on Sat, 06 Oct 2007 05:41:57 GMT]]></title><description><![CDATA[<p><a href="mailto:secondsun@gmx.de" rel="nofollow">secondsun@gmx.de</a> schrieb:</p>
<blockquote>
<p>Im BYTE Array ist im Prinzip nichts anderes als der Mnenomic für Int13 angegeben.</p>
</blockquote>
<p>Dir ist bewusst, dass Du unter *Windows* arbeitest und nicht mehr unter DOS?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1378971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1378971</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 06 Oct 2007 05:41:57 GMT</pubDate></item><item><title><![CDATA[Reply to Assembler in C++ on Sat, 06 Oct 2007 10:33:45 GMT]]></title><description><![CDATA[<p>ja,dessen bin ich mir bewusst!!!ich hätte auch mov karlotto, hanswurst nehmen können...aber int war das was mit gerade einfiel:-)außerdem ist es schön kurz...ja,natürlich möchte ich den code in code[] ausführen...wenn ich das programm jjedoch im debug modus laufen lasse und jeden einzelen schritt verfolge dann sehe ich ja(in assedmbler) das in code[] NICHT int13 drin steht sondern das über den moc befehlt daten einfach nur abgespeichert werden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379057</guid><dc:creator><![CDATA[secondsun*gmx.de]]></dc:creator><pubDate>Sat, 06 Oct 2007 10:33:45 GMT</pubDate></item></channel></rss>