<?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[Anwendung soll sich selber löschen]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>zu dieser Thematik habe ich den Thread in der WinApi FAQ gelesen.<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39360.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39360.html</a></p>
<p>Dort wurde dieser Codeschnipsel vorgestellt:</p>
<pre><code>#include &lt;windows.h&gt;
int main(int argc, char *argv[])
{
   HMODULE module = GetModuleHandle(0);
   CHAR buf[MAX_PATH];
   GetModuleFileName(module, buf, sizeof buf);
   CloseHandle(HANDLE(4));
   __asm {
      lea eax, buf
      push 0
      push 0
      push eax
      push ExitProcess
      push module
      push DeleteFile
      push UnmapViewOfFile
      ret
   }
   return 0;
}
</code></pre>
<p>Ich habe nun versucht ihn in AT&amp;T Assembler Syntax für den GCC unter dem MinGW Studio zu bringen:</p>
<pre><code>#include &lt;windows.h&gt;
int main(int argc, char *argv[]) {
   HMODULE module = GetModuleHandle(0);
   CHAR buf[MAX_PATH];
   GetModuleFileName(module, buf, sizeof buf);
   CloseHandle(HANDLE(4));

__asm__ (&quot;lea %eax, buf\n\t&quot;
			&quot;push 0\n\t&quot;
			&quot;push 0\n\t&quot;
			&quot;push %eax\n\t&quot;
			&quot;push ExitProcess\n\t&quot;
			&quot;push module\n\t&quot;
			&quot;push DeleteFile\n\t&quot;
			&quot;push UnmapViewOfFile\n\t&quot;
			&quot;ret&quot;);
   return 0;
}
</code></pre>
<p>Er meldet dann natürlich &quot;undefined reference to `ExitProcess'&quot;, ...<br />
In einem anderen Thread wurde geschrieben das man nur eine Compileroption (&quot;-masm=intel&quot;) setzen bräuchte um Intel Assembler Syntax zu benutzen. Das funktioniert bei mir aber nicht. <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-41479.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-41479.html</a></p>
<p>Wie packe ich die Adresse von ExitProcess? Oder kann ich irgendwie den Intel ASM im MinGW Studio benutzen?</p>
<p>Vielen Dank</p>
<p>Flippy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154976/anwendung-soll-sich-selber-löschen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 18:21:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154976.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Aug 2006 13:09:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anwendung soll sich selber löschen on Tue, 01 Aug 2006 13:09:54 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>zu dieser Thematik habe ich den Thread in der WinApi FAQ gelesen.<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39360.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39360.html</a></p>
<p>Dort wurde dieser Codeschnipsel vorgestellt:</p>
<pre><code>#include &lt;windows.h&gt;
int main(int argc, char *argv[])
{
   HMODULE module = GetModuleHandle(0);
   CHAR buf[MAX_PATH];
   GetModuleFileName(module, buf, sizeof buf);
   CloseHandle(HANDLE(4));
   __asm {
      lea eax, buf
      push 0
      push 0
      push eax
      push ExitProcess
      push module
      push DeleteFile
      push UnmapViewOfFile
      ret
   }
   return 0;
}
</code></pre>
<p>Ich habe nun versucht ihn in AT&amp;T Assembler Syntax für den GCC unter dem MinGW Studio zu bringen:</p>
<pre><code>#include &lt;windows.h&gt;
int main(int argc, char *argv[]) {
   HMODULE module = GetModuleHandle(0);
   CHAR buf[MAX_PATH];
   GetModuleFileName(module, buf, sizeof buf);
   CloseHandle(HANDLE(4));

__asm__ (&quot;lea %eax, buf\n\t&quot;
			&quot;push 0\n\t&quot;
			&quot;push 0\n\t&quot;
			&quot;push %eax\n\t&quot;
			&quot;push ExitProcess\n\t&quot;
			&quot;push module\n\t&quot;
			&quot;push DeleteFile\n\t&quot;
			&quot;push UnmapViewOfFile\n\t&quot;
			&quot;ret&quot;);
   return 0;
}
</code></pre>
<p>Er meldet dann natürlich &quot;undefined reference to `ExitProcess'&quot;, ...<br />
In einem anderen Thread wurde geschrieben das man nur eine Compileroption (&quot;-masm=intel&quot;) setzen bräuchte um Intel Assembler Syntax zu benutzen. Das funktioniert bei mir aber nicht. <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-41479.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-41479.html</a></p>
<p>Wie packe ich die Adresse von ExitProcess? Oder kann ich irgendwie den Intel ASM im MinGW Studio benutzen?</p>
<p>Vielen Dank</p>
<p>Flippy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108512</guid><dc:creator><![CDATA[Flippy]]></dc:creator><pubDate>Tue, 01 Aug 2006 13:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to Anwendung soll sich selber löschen on Tue, 01 Aug 2006 13:16:07 GMT]]></title><description><![CDATA[<p><a href="http://www.catch22.net/tuts/selfdel.asp" rel="nofollow">http://www.catch22.net/tuts/selfdel.asp</a> ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108517</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 01 Aug 2006 13:16:07 GMT</pubDate></item><item><title><![CDATA[Reply to Anwendung soll sich selber löschen on Tue, 01 Aug 2006 13:26:50 GMT]]></title><description><![CDATA[<p>Vielen Dank <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/1108528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108528</guid><dc:creator><![CDATA[Flippy]]></dc:creator><pubDate>Tue, 01 Aug 2006 13:26:50 GMT</pubDate></item><item><title><![CDATA[Reply to Anwendung soll sich selber löschen on Tue, 01 Aug 2006 19:52:55 GMT]]></title><description><![CDATA[<p>Als Tipp würde ich sagen, dass die Methode mit der Batchdatei am sichersten und einfachsten ist. Aber das steht ja auch alles hier im FAQ <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/1108809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108809</guid><dc:creator><![CDATA[-=Chris=-]]></dc:creator><pubDate>Tue, 01 Aug 2006 19:52:55 GMT</pubDate></item></channel></rss>