<?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[WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe!]]></title><description><![CDATA[<p>Hi,<br />
also ich habe jetzt mal eine Weile getüftlet und mich entschieden, die MessageBoxA zu hooken eines fremden Processes, eigentlich klappt das auch super, statt der Original MessageBoxA wird meine eigene Funktion aufgerufen. Allerdings meldet sich im anschluss auch gleich der Debugger mit folgender Fehlermeldung:</p>
<p>A buffer overrun has occurred in WinApiVictim.exe which has corrupted the program's internal state. Press Break to debug the program or Continue to terminate the program.</p>
<p>Ich habe mir das ganze mal im OllyDebugger angeschaut, hier mal ein bild das den vergleich zeigt:<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://www.pictureupload.de/originals/pictures/090308183900_Weg.JPG" rel="nofollow">http://www.pictureupload.de/originals/pictures/090308183900_Weg.JPG</a></p>
<p>Und wenn er von meiner Funktion wieder zurück springt dann hängt sich das Programm beim nächsten Call auf. Hmm.... Muss ich da die überschriebenen Bytes sichern? und wenn ja, wie gehts dann weiter?</p>
<p>Ich hoffe ihr könnt mir da helfen?!</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207598/winapi-hooking-führt-zum-quot-buffer-overrun-quot-hilfe</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 06:44:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207598.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Mar 2008 17:39:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Sun, 09 Mar 2008 17:39:53 GMT]]></title><description><![CDATA[<p>Hi,<br />
also ich habe jetzt mal eine Weile getüftlet und mich entschieden, die MessageBoxA zu hooken eines fremden Processes, eigentlich klappt das auch super, statt der Original MessageBoxA wird meine eigene Funktion aufgerufen. Allerdings meldet sich im anschluss auch gleich der Debugger mit folgender Fehlermeldung:</p>
<p>A buffer overrun has occurred in WinApiVictim.exe which has corrupted the program's internal state. Press Break to debug the program or Continue to terminate the program.</p>
<p>Ich habe mir das ganze mal im OllyDebugger angeschaut, hier mal ein bild das den vergleich zeigt:<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://www.pictureupload.de/originals/pictures/090308183900_Weg.JPG" rel="nofollow">http://www.pictureupload.de/originals/pictures/090308183900_Weg.JPG</a></p>
<p>Und wenn er von meiner Funktion wieder zurück springt dann hängt sich das Programm beim nächsten Call auf. Hmm.... Muss ich da die überschriebenen Bytes sichern? und wenn ja, wie gehts dann weiter?</p>
<p>Ich hoffe ihr könnt mir da helfen?!</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471073</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sun, 09 Mar 2008 17:39:53 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Mon, 10 Mar 2008 15:13:20 GMT]]></title><description><![CDATA[<p>Hat keiner nen Plan?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471519</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Mon, 10 Mar 2008 15:13:20 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Mon, 10 Mar 2008 16:36:28 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>Muss ich da die überschriebenen Bytes sichern? und wenn ja, wie gehts dann weiter?</p>
</blockquote>
<p>Es sieht so aus, als ob Du hooking gar nicht verstanden hast...</p>
<p>Schau Dir Detours an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471574</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 10 Mar 2008 16:36:28 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Mon, 10 Mar 2008 16:36:51 GMT]]></title><description><![CDATA[<p>Veränderst Du denn Speicher im fremden Prozess? Kopierst Du Infos um?</p>
<p>Dann wundert es mich nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471575</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 10 Mar 2008 16:36:51 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Mon, 10 Mar 2008 16:53:07 GMT]]></title><description><![CDATA[<p>Naja ich suche mir die Funktion die ich hooken will, und an deren Adresse schreibe ich einen Jump zu meiner Funktion im speicher. nach beenden meiner Funktion springt er dann doch automatisch zurück hinter den Jump. Sicher dort wurden nun aber Bytes überschrieben, die kann ich doch aber nicht mehr da zwischen quetschen?!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5675">@Jochen</a>: Ich habe mir das Detours ja mal runter geladen gehabt aber ne richtige Doku habe ich nicht dazu gefunden, halt nur Funktionen und so, halt ohne Beschreibung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471588</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Mon, 10 Mar 2008 16:53:07 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Mon, 10 Mar 2008 18:33:16 GMT]]></title><description><![CDATA[<p>Wenn Du bytes einfach überschreibst und dann einfach irgendwo dahinter hinspringst, kann das logischerweise nicht gehen, da ja diese Bytes in der Ausführung fehlen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471655</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 10 Mar 2008 18:33:16 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Mon, 10 Mar 2008 20:03:40 GMT]]></title><description><![CDATA[<p>Weiß ich ja, abr wie kann ich das ausmerzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471721</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Mon, 10 Mar 2008 20:03:40 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Tue, 11 Mar 2008 18:37:12 GMT]]></title><description><![CDATA[<p>*Bitte, nicht vergessen!*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472318</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Tue, 11 Mar 2008 18:37:12 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 11:13:38 GMT]]></title><description><![CDATA[<p>soll ich dann evtl. die überschrieben bytes in meiner funktion dranhängen oder aehnliches?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472688</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Wed, 12 Mar 2008 11:13:38 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 12:01:37 GMT]]></title><description><![CDATA[<p>Sorry, im Moment bin ich gereizt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> wenn ich dem Heute-ist-total-in-Schlagwort &quot;Hooks&quot; hier im Forum begegne.<br />
Anscheinend schwappt hier eine Welle von &quot;Möchtegern-Profi-Programmierern&quot; über, die alles über Hooks Bescheid wissen oder wissen möchten.</p>
<p>Ist es Dir eigentlich klar, daß Du mit den manipulierten Bytes in andere Prozesse hineinpfuschst?<br />
Bist Du Dir überhaupt im klaren, daß Du von Deinem Prozess aus NIEMALS in den Adressraum eines anderen Prozesses einsehen kannst?<br />
Das ist der Sicherheitsmechanismus von WinNT um die Prozesse untereinander z.B. bei einem Absturz zu schützen.<br />
(Ich gehe davon aus, Du redest hier von ganz normalen Prozessen, und nicht von Kernel- oder gar Ring 0-Funktionen)<br />
Das sind Grundlagen, die man wissen müßte bevor man überhaupt irgendwas mit Hooks anfangen soll, die prozessübergreifend wirken.</p>
<p>Sowohl Martin Richter als auch Jochen Kalmbach SIND über jeden Zweifel erhaben absolut professionelle Programmierer.<br />
Und sie haben Dir hier erklärt das das so nicht geht wie Du das beschrieben hast. <strong>Wie sollen wir Dir da noch helfen?</strong> <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=":confused:"
      alt="😕"
    /></p>
<p>Speziell Du, mein Freund TObi, scheinst ein sehr hartnäckiger Typ zu sein.<br />
Jochen hatte Dir schon mal Detours empfohlen, lese mal Deinen eigenen Beitrag von anno dazumal: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-206993-and-highlight-is-.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-206993-and-highlight-is-.html</a></p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472724</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Wed, 12 Mar 2008 12:01:37 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 12:06:37 GMT]]></title><description><![CDATA[<blockquote>
<p>Bist Du Dir überhaupt im klaren, daß Du von Deinem Prozess aus NIEMALS in den Adressraum eines anderen Prozesses einsehen kannst?</p>
</blockquote>
<p>ReadProcessMemory <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/1472733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472733</guid><dc:creator><![CDATA[..........]]></dc:creator><pubDate>Wed, 12 Mar 2008 12:06:37 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 13:37:27 GMT]]></title><description><![CDATA[<p>Sicher.<br />
Aber ich möchte nicht mit Detours arbeiten, sondern irgendwo sehen das ich das auch alleine schafe und nicht mit schon fertigen Funktionen aus libs.<br />
Sicher ist mir auch klar das der Process abrauchen wird wenn ich da Bytes überschreibe und die nun mal nicht mehr für das Prgramm auffindbar sind. Ich hab mir da ja auch schon ein paar gedanken gemacht wie ich das umgehen kann und bin zu dieser Idee gekommen, so wie ich es ja auch schon in einigen Tutorials gesehen habe.</p>
<p>(Alles Process intern!)</p>
<p>*(1) Ich suche mir die Funktion die ich hooken will (MessageBoxA) aus der user32.dll und besorge mir deren Addresse</p>
<p>(2) Ich suche die Adresse meiner Funktion</p>
<p>(3) Da es meistens long jumps sind um auf Funktionen um zuleiten, werden 5Bytes benötigt, also schau ich im OllyDbg ob ich evtl. Bytes auseinander reiße oder nicht ( War nicht der Fall )</p>
<p>(4) Ich allociere in meiner Anwendung genug Speicher um: 1. den Sprung zu meiner Funktion im speicher / 2. die x zu sichernden Bytes / 3. den Sprung zurück zur original funktion zu machen bzw dahinter, zu speichern. Das macht am Ende 15Bytes die zu allocieren sind: 5 Sprung zur Funktion + 5 zu sichern + 5 Sprung zurück.</p>
<p>(5) Ich rechne alle Sprung weiten aus hin und zurück und schreibe dann alles so der reihe nach in den Speicher</p>
<p>(6) Nun schreibe ich von der zu hookenden Funktion ein Sprung zu diesen Speicher der alles beinhalten (4)*</p>
<p>Ich habe mir das alles mal Stück für Stück im Debugger angeschaut und festgestellt, das er exakt die 15Bytes sichert aber nachdem er den Jump zu meiner Funktion macht und diese ausgeführt hat springt er gleich zur Orignalen Funktion zurück ohne das er die anderen gesicherten Bytes ausführt die ihn da ja nun fehlen.</p>
<p>Wieso ist das so?</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472851</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Wed, 12 Mar 2008 13:37:27 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 13:50:19 GMT]]></title><description><![CDATA[<p>Wenn Du JPs verwendest wundert mich dasin keiner Weise!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472873</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 12 Mar 2008 13:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 15:48:14 GMT]]></title><description><![CDATA[<p>wieso?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473030</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Wed, 12 Mar 2008 15:48:14 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 15:51:37 GMT]]></title><description><![CDATA[<p>Weil Du einen Call nicht durch einen Jump ersetzen kannst...</p>
<p>Wie sieht den exakt, der Code im Assembler aus, den Du ersetzt?<br />
Und wie exakt ersetzt du ihn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473040</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 12 Mar 2008 15:51:37 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 16:41:15 GMT]]></title><description><![CDATA[<p>Hier noch mal ein Bild hoffe es ist alles zu sehen.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://www.pictureupload.de/originals/pictures/120308174835_Unbenannt.JPG" rel="nofollow">http://www.pictureupload.de/originals/pictures/120308174835_Unbenannt.JPG</a></p>
<p>Doch mir ich gerade da fehlt noch ein Jmp zurück, doch das ist im moment nicht das Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473114</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Wed, 12 Mar 2008 16:41:15 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 17:44:31 GMT]]></title><description><![CDATA[<p>was sind eigentlich hooks ?????? <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473173</guid><dc:creator><![CDATA[dumm]]></dc:creator><pubDate>Wed, 12 Mar 2008 17:44:31 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Wed, 12 Mar 2008 18:44:42 GMT]]></title><description><![CDATA[<p>Einmal hier <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="😉"
    /><br />
<a href="http://de.wikipedia.org/wiki/Captain_Hook" rel="nofollow">http://de.wikipedia.org/wiki/Captain_Hook</a></p>
<p>und dann evtl. noch mal hier<br />
<a href="http://msdn2.microsoft.com/en-us/library/ms644959.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms644959.aspx</a></p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473200</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Wed, 12 Mar 2008 18:44:42 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Thu, 13 Mar 2008 07:10:00 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23776">@ToBi</a>: Was DU hier machst ist für mich ignorant und unfassbar.<br />
Du versuchst mit den Mitteln eines Realschülers Mondraketen zu bauen!</p>
<p>Genau das hatte ich geahnt, was Du hier gebastelt hast.</p>
<p>Warum glaubst Du, dass nach dem umbiegen und dem einfügen eines JPs hinter dem JP weitere Code ausgeführt wird?</p>
<p>Du machst einen JP in Deinen HOOK! Von dort einen JP (EINEN JP!!!!!) in Deinen Code. Wie soll er denn zurückkommen.</p>
<p>Das wäre eine Lösung:<br />
- JP in deinen neuen Code block<br />
- CALL in Deinen Code.<br />
- ausführen der geischerten Bytes (auf vollständigen op-codeist zu achten. Nicht alle 5 Byte Kombinationen sind plausibel<br />
- JP zurück hinter Deinen 1. JP</p>
<p>PS: Ich werde Dir nicht mehr helfen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473413</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 13 Mar 2008 07:10:00 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Thu, 13 Mar 2008 11:18:59 GMT]]></title><description><![CDATA[<p>Hae, aber das tue ich doch da oben( sprich im Bild ), ich mache einen Jump zu meiner Codestelle, ok und hier mach ich nen Jump, aber wenn ich nen Call drauß mache ist es doch genau wie in deiner Anleitung, bis auf das ich noch ein Sprung zurück zum Anfang machen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473517</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Thu, 13 Mar 2008 11:18:59 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Thu, 13 Mar 2008 12:15:38 GMT]]></title><description><![CDATA[<p>WO springst Du da bitte zu 77D50510?<br />
Und WO führst Du &quot;move edi, edi&quot;, &quot;push ebp&quot; und &quot;mov ebp,esp&quot; aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473566</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 13 Mar 2008 12:15:38 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Thu, 13 Mar 2008 12:42:28 GMT]]></title><description><![CDATA[<p>Ok, ich habe das jetzt nach Martins Anleitung gemacht und es geht auch ohne abrauchen und so, ABER die MessageBoxA wird trotzdem ausgeführt. Ich hab mir das im Debugger angesehen und es sieht irgendwie so aus als ob sich die MessageBox in der Funktion selbst nochmal aufruft?</p>
<p>Hier mal der Ausschnitt aus dem Debugger:</p>
<pre><code>77D5050B U&gt;- E9 F0FABC88             JMP     00920000
77D50510     833D 1C04D777 00        CMP     DWORD PTR DS:[77D7041C],0
77D50517     74 24                   JE      SHORT USER32.77D5053D
77D50519     64:A1 18000000          MOV     EAX,DWORD PTR FS:[18]
77D5051F     6A 00                   PUSH    0
77D50521     FF70 24                 PUSH    DWORD PTR DS:[EAX+24]
77D50524     68 F40AD777             PUSH    USER32.77D70AF4
77D50529     FF15 1812D177           CALL    DWORD PTR DS:[&lt;&amp;KERNEL32.InterlockedCompareExchange&gt;]    ; kernel32.InterlockedCompareExchange
77D5052F     85C0                    TEST    EAX,EAX
77D50531     75 0A                   JNZ     SHORT USER32.77D5053D
77D50533     C705 F00AD777 01000000  MOV     DWORD PTR DS:[77D70AF0],1
77D5053D     6A 00                   PUSH    0
77D5053F     FF75 14                 PUSH    DWORD PTR SS:[EBP+14]
77D50542     FF75 10                 PUSH    DWORD PTR SS:[EBP+10]
77D50545     FF75 0C                 PUSH    DWORD PTR SS:[EBP+C]
77D50548     FF75 08                 PUSH    DWORD PTR SS:[EBP+8]
77D5054B     E8 2D000000             CALL    USER32.MessageBoxExA
77D50550     5D                      POP     EBP                                                      ; DivertIT.00401273
77D50551     C2 1000                 RETN    10
77D50554     90                      NOP
77D50555     90                      NOP
77D50556     90                      NOP
77D50557     90                      NOP
77D50558     90                      NOP
77D50559 U&gt;  8BFF                    MOV     EDI,EDI
77D5055B     55                      PUSH    EBP
77D5055C     8BEC                    MOV     EBP,ESP
77D5055E     6A FF                   PUSH    -1
77D50560     FF75 18                 PUSH    DWORD PTR SS:[EBP+18]                                    ; DivertIT.00401130
77D50563     FF75 14                 PUSH    DWORD PTR SS:[EBP+14]
77D50566     FF75 10                 PUSH    DWORD PTR SS:[EBP+10]
77D50569     FF75 0C                 PUSH    DWORD PTR SS:[EBP+C]
77D5056C     FF75 08                 PUSH    DWORD PTR SS:[EBP+8]
77D5056F     E8 F1590100             CALL    USER32.MessageBoxTimeoutW
77D50574     5D                      POP     EBP                                                      ; DivertIT.00401273
77D50575     C2 1400                 RETN    14
77D50578     90                      NOP
77D50579     90                      NOP
77D5057A     90                      NOP
77D5057B     90                      NOP
77D5057C     90                      NOP
77D5057D U&gt;  8BFF                    MOV     EDI,EDI
77D5057F     55                      PUSH    EBP
77D50580     8BEC                    MOV     EBP,ESP
77D50582     6A FF                   PUSH    -1
77D50584     FF75 18                 PUSH    DWORD PTR SS:[EBP+18]                                    ; DivertIT.00401130
77D50587     FF75 14                 PUSH    DWORD PTR SS:[EBP+14]
77D5058A     FF75 10                 PUSH    DWORD PTR SS:[EBP+10]
77D5058D     FF75 0C                 PUSH    DWORD PTR SS:[EBP+C]
77D50590     FF75 08                 PUSH    DWORD PTR SS:[EBP+8]
77D50593     E8 505A0100             CALL    USER32.MessageBoxTimeoutA
77D50598     5D                      POP     EBP                                                      ; DivertIT.00401273
77D50599     C2 1400                 RETN    14
</code></pre>
<p>Also Zeile 1 ist der Sprung zu meiner Codestelle. dann nach lande ich zurück in Zeile 2, und dann wird noch mal MessageBoxA aufgerufen? Die stelle ist dann aber nich gehookt, das verstehe ich nicht ganz?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473593</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Thu, 13 Mar 2008 12:42:28 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Thu, 13 Mar 2008 16:22:07 GMT]]></title><description><![CDATA[<p><a href="http://www.hackerboard.de/thread.php?threadid=36201&amp;hilightuser=18020" rel="nofollow">http://www.hackerboard.de/thread.php?threadid=36201&amp;hilightuser=18020</a> &lt;&lt; da hab ich detourhooking erklaert, dort befindet sich auch funktionierender Code</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473768</guid><dc:creator><![CDATA[dmesg]]></dc:creator><pubDate>Thu, 13 Mar 2008 16:22:07 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Thu, 13 Mar 2008 17:45:55 GMT]]></title><description><![CDATA[<p>Hm, mein funktioniert ja jetzt auch, meine Funktion wird ausgeführt, aber die eigentlich gehookte MessageBoxA kommt trotzdem, weil sie sich in sich lebst noch einmal aufruft?</p>
<p>EDIT:<br />
Ich habe mir mal dein code angesehen und eigentlicch machst du das selbe wie ich nur das ich statt alles mit _asm zu schreiben mit WriteProcessMemory() gearbeitet habe, dass ist doch eigentlich nicht weiter schlimm oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473809</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Thu, 13 Mar 2008 17:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Thu, 13 Mar 2008 18:16:36 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>Also Zeile 1 ist der Sprung zu meiner Codestelle. dann nach lande ich zurück in Zeile 2, und dann wird <strong>noch mal</strong> MessageBoxA aufgerufen?</p>
</blockquote>
<p>Nicht &quot;noch mal&quot; sondern &quot;immer noch&quot;.</p>
<p>Die Funktion MessageBoxA ist simpel gesagt eine Adresse, die in Zeile 1 <em>anfängt !!!</em> (und bis incl. Zeile 19 geht).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473844</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 13 Mar 2008 18:16:36 GMT</pubDate></item><item><title><![CDATA[Reply to WinApi hooking führt zum &amp;quot;Buffer Overrun!&amp;quot;, hilfe! on Thu, 13 Mar 2008 18:34:22 GMT]]></title><description><![CDATA[<p>Hm und wie koennte ich das nun &quot;richtig&quot; hooken? so das die MsgBox nicht kommt? Bzw. was mich noch interessiert, ist das bei allen Api Funktionen so?</p>
<p>EDIT:<br />
Müsste ich evtl. dann für jeden Funktion die ich evtl. hooken will im Debugger schaun wie groß die ist? und dann x Bytes dahinter springen? bzw zum return der funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473852</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Thu, 13 Mar 2008 18:34:22 GMT</pubDate></item></channel></rss>