Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

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

  Alt 25. Feb 2008, 00:01
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ß
  Mit Zitat antworten Zitat