<?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[Kommandozeilen Argumente von anderem Prozess ändern]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>also ich hab folgendes Problem:</p>
<p>Mein Programm braucht ein zusätzliches Programm welches als .exe in den Resourcen liegt.<br />
Um diese .exe auszuführen ohne sie auf die Festplatte zu schreiben benutz ich diese Technik: <a href="http://www.security.org.sg/code/loadexe.html" rel="nofollow">www.security.org.sg/code/loadexe.html</a></p>
<p>Ich erstelle mit CreateProcess also einen neuen Prozess von irgendeiner .exe im<br />
SUSPENDED Mode, schreibe dort dann die .exe aus den Resourcen rein und RESUME dann<br />
den Prozess.</p>
<p>Ich möchte dem Programm allerdings Kommandozeilen Argumente übergeben und komm einfach nicht drauf wie ich das machen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>Wenn ich den ursprungs Prozess mit welchen erstelle bekommt sie das eigentliche Programm ( das aus den Resourcen ) nicht, wahrscheinlich weil ich das ursprungs Programm vor dem überschreiben mit dem Programm aus den Resourcen aus dem Speicher entferne...</p>
<p>Wär sehr Dankbar für jede Hilfe <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>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235405/kommandozeilen-argumente-von-anderem-prozess-ändern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 05:51:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235405.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Mar 2009 19:06:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kommandozeilen Argumente von anderem Prozess ändern on Sun, 01 Mar 2009 19:06:59 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>also ich hab folgendes Problem:</p>
<p>Mein Programm braucht ein zusätzliches Programm welches als .exe in den Resourcen liegt.<br />
Um diese .exe auszuführen ohne sie auf die Festplatte zu schreiben benutz ich diese Technik: <a href="http://www.security.org.sg/code/loadexe.html" rel="nofollow">www.security.org.sg/code/loadexe.html</a></p>
<p>Ich erstelle mit CreateProcess also einen neuen Prozess von irgendeiner .exe im<br />
SUSPENDED Mode, schreibe dort dann die .exe aus den Resourcen rein und RESUME dann<br />
den Prozess.</p>
<p>Ich möchte dem Programm allerdings Kommandozeilen Argumente übergeben und komm einfach nicht drauf wie ich das machen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>Wenn ich den ursprungs Prozess mit welchen erstelle bekommt sie das eigentliche Programm ( das aus den Resourcen ) nicht, wahrscheinlich weil ich das ursprungs Programm vor dem überschreiben mit dem Programm aus den Resourcen aus dem Speicher entferne...</p>
<p>Wär sehr Dankbar für jede Hilfe <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>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1672508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1672508</guid><dc:creator><![CDATA[loadExe]]></dc:creator><pubDate>Sun, 01 Mar 2009 19:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to Kommandozeilen Argumente von anderem Prozess ändern on Tue, 03 Mar 2009 17:54:09 GMT]]></title><description><![CDATA[<p>*push*<br />
Keiner eine Antwort? <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/1673610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673610</guid><dc:creator><![CDATA[loadExe]]></dc:creator><pubDate>Tue, 03 Mar 2009 17:54:09 GMT</pubDate></item><item><title><![CDATA[Reply to Kommandozeilen Argumente von anderem Prozess ändern on Tue, 03 Mar 2009 19:48:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct RTL_USER_PROCESS_PARAMETERS { // PEB-&gt;ProcessParameters
	ULONG          MaximumLength;
	ULONG          Length;
	ULONG          Flags;
	ULONG          DebugFlags;
	PVOID          ConsoleHandle;
	ULONG          ConsoleFlags;
	HANDLE         StdInputHandle;
	HANDLE         StdOutputHandle;
	HANDLE         StdErrorHandle;
	UNICODE_STRING CurrentDirectoryPath;
	HANDLE         CurrentDirectoryHandle;
	UNICODE_STRING DllPath;
	UNICODE_STRING ImagePathName;
	UNICODE_STRING CommandLine;
...
</code></pre>
<p>Ich sehe was zu tun ist, und Du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673669</guid><dc:creator><![CDATA[sapero]]></dc:creator><pubDate>Tue, 03 Mar 2009 19:48:56 GMT</pubDate></item><item><title><![CDATA[Reply to Kommandozeilen Argumente von anderem Prozess ändern on Tue, 03 Mar 2009 20:44:04 GMT]]></title><description><![CDATA[<p>Super, 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="🙂"
    /><br />
Mehr brauch ich gar nicht, von da an gehts (denk ich jedenfalls mal) alleine weiter</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673692</guid><dc:creator><![CDATA[loadExe]]></dc:creator><pubDate>Tue, 03 Mar 2009 20:44:04 GMT</pubDate></item><item><title><![CDATA[Reply to Kommandozeilen Argumente von anderem Prozess ändern on Wed, 04 Mar 2009 21:43:47 GMT]]></title><description><![CDATA[<p>Also ich brauch trotzdem nochmal Hilfe..<br />
Ich kann bei meinem eigenen Prozess jetzt die CommandLine auslesen, ABER wenn ich einen anderen Prozess auslesen will funktionierts nicht.<br />
Und zwar, wenn ich CommandLine.Buffer auslesen will geht das nicht, und er meint was vonwegen &quot;Only part of a ReadProcessMemory or WriteProcessMemory request was completed.&quot;<br />
Read ProcessMemory hat in der Tat 0 Bytes gelesen, CommandLine.Length ist aber richtig ausgelesen worden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>Hier ist mein Code, ich hab kA was ich da noch machen soll..</p>
<pre><code class="language-cpp">CreateProcess( &quot;coutArgv.exe&quot;, &quot;test&quot; , NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &amp;si, &amp;pi);
    HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pi.dwProcessId); // GetCurrentProcessId()

    NTSTATUS dwStatus = gNtQueryInformationProcess(hProcess,0,basicInfo,sizeof(smPROCESS_BASIC_INFORMATION),NULL);

    if(true) // dwStatus &gt; 0 
    {

        smPEB peb;
        if(basicInfo-&gt;PebBaseAddress)
            if(ReadProcessMemory(hProcess, basicInfo-&gt;PebBaseAddress, &amp;peb, sizeof(peb), NULL))
            {                
                smRTL_USER_PROCESS_PARAMETERS peb_upp;

                ReadProcessMemory(hProcess, peb.ProcessParameters, &amp;peb_upp, sizeof(peb_upp), NULL);    
                cout &lt;&lt; &quot;LastError() &quot; &lt;&lt; GetLastError() &lt;&lt; endl; // hier noch 0
                ReadProcessMemory(hProcess, peb_upp.CommandLine.Buffer, &amp;buf, peb_upp.CommandLine.Length, &amp;r);

                cout &lt;&lt; &quot;LastError() &quot; &lt;&lt; GetLastError() &lt;&lt; endl; // hier 299
                cout &lt;&lt; &quot;Read: &quot; &lt;&lt; r &lt;&lt; endl; // ist hier 0
           }

    }
</code></pre>
<p>Schon mal 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="🙂"
    /><br />
mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674406</guid><dc:creator><![CDATA[OnceAgainAProblem_&#x2F;]]></dc:creator><pubDate>Wed, 04 Mar 2009 21:43:47 GMT</pubDate></item><item><title><![CDATA[Reply to Kommandozeilen Argumente von anderem Prozess ändern on Wed, 04 Mar 2009 22:48:11 GMT]]></title><description><![CDATA[<p>Schaumal was setzt in peb_upp.CommandLine.Buffer. Ich sehe 0x498 (0x10000=UmgebungVars), also das mußt ein offset sein:<br />
pointer = RTL_USER_PROCESS_PARAMETERS* + CommandLine.Buffer</p>
<pre><code class="language-cpp">ReadProcessMemory(hProcess, peb_upp.CommandLine.Buffer + peb.ProcessParameters,
</code></pre>
<p>Bis jetzt ist alles gut, aber wozu OpenProcess gleich nach CreateProcess?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674411</guid><dc:creator><![CDATA[sapero]]></dc:creator><pubDate>Wed, 04 Mar 2009 22:48:11 GMT</pubDate></item><item><title><![CDATA[Reply to Kommandozeilen Argumente von anderem Prozess ändern on Thu, 05 Mar 2009 14:40:22 GMT]]></title><description><![CDATA[<p>Juhu, das klappt <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>Das OpenProcess hab ihc nur gemacht weils mit CreateProcess und dem Handle aus pi nicht gegangen ist, dachte das liegt vll da dran <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>Vielen Dank für eure Hilfe, is echt ein top Forum, zumal man nichtmal zum registrieren gezwungen wird wenn man mal eben eine<br />
Frage hat und es wird einem eigentlich immer und kompetent geholfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>mfg</p>
<p>P.S: Mal schaun ob ich nochmal Hilfe brauch, aber ich hoff nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674686</guid><dc:creator><![CDATA[loadExe]]></dc:creator><pubDate>Thu, 05 Mar 2009 14:40:22 GMT</pubDate></item></channel></rss>