Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi QIP - Hook auf WSARecv: Woher bekommt QIP die Buffer Länge (https://www.delphipraxis.net/109126-qip-hook-auf-wsarecv-woher-bekommt-qip-die-buffer-laenge.html)

Zacherl 24. Feb 2008 23:01


QIP - Hook auf WSARecv: Woher bekommt QIP die Buffer Länge
 
Hey,

ich versuche QIP um neue Funktionalitäten zu ergänzen und hooke daher die WSARecv Funktion um direkt Befehle aus dem ICQ Protokoll zu verändern. Das Hooken und Entschlüsseln des Protokolles funktioniert wunderbar. Nun wollte ich mich ans manipulieren ranwagen und stellte folgendes fest:

lpBuffers vom Typ WSABuf stellt bei QIP einen Buffer für die Funktion zu Verfügung welcher EXAKT die Größe der Ankommenden Daten besitzt. Dies ist etwas blöd für mich, wenn mein veränderter Befehl länger ist als die Größe des Buffers. Neu alloziieren hatte keine Wirkung, da QIP die Größe des Buffers sich schon gemerkt hat und diese auch stur verwendet. Auch unabhängig davon welchen Wert lpNumberOfBytesRecvd hat.

Kann ich irgendwie über Result oder dwFlags tricksen, so dass QIP denkt der Buffer reiche nicht aus? Oder kann ich evtl. die WinSock Funktion hooken über welche QIP die Größe der ankommenden Daten ermittelt? Recv() ist es auf jeden Fall schonmal nicht, das habe ich getestet.

Wäre nett, wenn mir da jemand auf die Sprünge helfen könnte :)

Gruß

Zacherl 27. Feb 2008 11:26

Re: QIP - Hook auf WSARecv: Woher bekommt QIP die Buffer Län
 
* push *

sirius 27. Feb 2008 11:47

Re: QIP - Hook auf WSARecv: Woher bekommt QIP die Buffer Län
 
evtl. ioctlsocket mit dem Parameter FIONREAD


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz