![]() |
WSARecv Hook: Paket blockieren
Peace, ich hoffe diesmal kann mir jemand helfen.
Ich habe eine DLL in eine Applikation injiziert. Die DLL Hook nun WSARecv und soll die ankommenden Pakete verwalten. Bestimmte Pakete sollen geblockt werden sprich die Anwendung darf sie nicht erhalten.Ich dachte es funktioniert indem ich von der Callback funktion den Rückgabewert auf -1 setze. Pseudocode
Delphi-Quellcode:
Aber das Paket kommt dennoch an, jemand einen Vorschlag?
function Callback(...): Int;stdcall;
begin // ... if Paket = böse then Result := -1; end; |
Re: WSARecv Hook: Paket blockieren
Zitat:
|
Re: WSARecv Hook: Paket blockieren
Ist die Callback-Funktion quasi "dein" WSARecv? Naja, MSDN lesen sollte da helfen. Rückgabewert könnte man SOCKET_ERROR probieren, dazu noch ein WSASetLastError(WSAEWOULDBLOCK). Und eventuell ein Hook auf select() wenn, das Programm so arbeitet (mit Hilfe von select() wird ermittelt, ob ein Socket Daten im Puffer hat, die abrufbar sind, meine ich). Wäre interessant zu wissen, was du genau vorhast :)
|
Re: WSARecv Hook: Paket blockieren
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
Probiere ich gleich einmeal
dazu noch ein WSASetLastError(WSAEWOULDBLOCK)
Delphi-Quellcode:
Wird auch gleich probiert ;)
Und eventuell ein Hook auf select() wenn, das Programm so arbeitet (mit Hilfe von select() wird ermittelt, ob ein Socket Daten im Puffer hat, die abrufbar sind, meine ich)
|
Re: WSARecv Hook: Paket blockieren
Das wirst du so nicht in den Griff bekommen. Wie gesagt arbeiten die Sockets in deiner Anwendung overlapped. In deiner Callback musst du zuerst die ungehookte Originalfunktion WSARecv aufrufen, damit überhaupt Daten in den Buffer eingelesen werden, die du auf "böse" prüfen kannst.
Das eigentliche Problem ist hier, dass der WSARecv Aufruf bereits eine Callback Routine aufruft, in der die Daten dem Programm zur Verfügung gestellt und weiterverarbeitet werden. Ein Lösungsansatz, den wir ja schon, wenn auch nicht ganz zufriedenstellend, probiert haben, wäre es die Callback Funktion temporär umzubiegen. Dann könntest du die Daten im Paket ohne Weiteres modifizieren oder das Paket komplett blocken. Je nachdem musst du die Callback Funktion dann am Ende der Hook Callback von Hand neu aufrufen. Zitat:
Zitat:
Meine Vermutung war es, dass ein Thread darauf wartet, dass das Event aktiviert wird und dann eine Art Datenverarbeitungsroutine aufruft. Deshalb setzten wir hEvent auf ein von uns erstelltes, irrelevantes Eventhandle befor die Original WSARecv Funktion aufgerufen wird. Am Ende der Hook Callback Funktion wurde SetEvent() auf das Original Eventhandle angewendet. Es war mehr eine Vermutung, dass es so funktionieren könnte, die gehookte Anwendung allerdings beendete sich unmittelbar mit einem "Critical Error". |
Re: WSARecv Hook: Paket blockieren
Ich dachte Callback() wäre die Gehookte WSARecv() Funktion. Von Overlapped stand hier doch noch gar nix? Aber wenn das so ist, muss man das Problem wohl anders angehen...
|
Re: WSARecv Hook: Paket blockieren
Du solltest wirklich mal damit rausrücken, was genau Du mit den ganzen Hooks und co was Du hier nachfragst machen willst. Ggf. gibt es eine einfachere Methode.
Außerdem könntest Du deinen ![]() [edit]Kann es sein, dass Du bei der Angabe gegen den Verhaltenskodex 2.2 verstößt?[/edit] |
Re: WSARecv Hook: Paket blockieren
Zitat:
|
Re: WSARecv Hook: Paket blockieren
Warez und Serials?
Also ich sehe weder einen Downloadlink noch eine Serial ...... Aber hier im Board ist ja eh alles womit man etwas "böses" machen könnte extrem negativ und verbote. Sorry ich vergaß! Aber das man mit sockets trojaner bauen kann interessiert ja keinen. Übrigens meine Hochkriminelle-Anwendung ist eine Banlist gegen Cheater! |
Re: WSARecv Hook: Paket blockieren
Leute :mrgreen: Also seine Callback ist eine gehookte WSARecv() API. Allerdings stellt der Parameter lpCompletionRoutine ja z.b. auch eine Callback Funktion da. War wohl nur eine missverständliche Ausdrucksweise.
Er will eine "Banlist" für WC3 programmieren. So ein Programm gibt es bereits und das Ganze dient auch nicht dazu das Spiel zu manipulieren um Vorteile zu erlangen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz