Forum: Netzwerke
Delphi
by Fridolin Walther,
22. Jun 2009
Ja sorry, kleiner Fehler meinerseits ...
function SetTcpEntry(pTcpRow : PMibTcpRow) : DWORD; stdcall; external 'iphlpapi.dll';
... muss es heißen.
Ja, die Port Nummern sind allgemein zu hoch. Mal schauen woran das liegt.
Forum: Netzwerke
Delphi
by Fridolin Walther,
22. Jun 2009
Ich hab eh grad bisschen Zeit. Ich glaub ich bau einfach mal einen kleinen Netstat Nachbau mit der Option Verbindungen zu killen ;).
Forum: Netzwerke
Delphi
by Fridolin Walther,
22. Jun 2009
Und mit SetTcpEntry kannst Du die Verbindung dann schließen.
Forum: Netzwerke
Delphi
by Fridolin Walther,
22. Jun 2009
GetExtendedTcpTable und GetExtendedUdpTable wären dokumentierte Methoden ab Windows XP SP2 um an die Verbindungen der Prozesse zu kommen. Es existieren noch einige undokumentierte Möglichkeiten (AllocateAndGetTcpExTableFromStack, Enumerieren der Handles usw.). Code zum schließen eines Sockets von außerhalb des Prozesses hab ich letztens grade erst gesehen irgendwo. Aber ich hab vergessen wo. Ich...
Forum: Netzwerke
Delphi
by Fridolin Walther,
22. Jun 2009
Prinzipiell könntest Du periodisch die aktiven Verbindungen des Warcraft 3 Prozesses enumerieren und die Leitung einfach kappen, die Dir nicht passen. Das Endergebnis ist letztlich das Selbe (-> Spieler mit gebannten IPs können nicht mitspielen), kommt allerdings ohne Hooks aus und stellt für Warden keinen Banngrund da. Anders als lustige WinSock Hooks. Die mochte Warden in der Vergangenheit...
Forum: Netzwerke
Delphi
by Fridolin Walther,
22. Jun 2009
Wie hookst Du? Code Overwriting? IAT? EAT? Winsock hat einige spezielle Checks ob Hooks aktiv sind oder nicht, die bestimmte Hookarten erkennen. Daher die Frage.
Wie sehen die Funktionsdefinitionen aus? Unhooking ist übrigens auch eine relativ schlechte Idee. Es gibt dutzende Stolperfallen durch Threading etc.. Ich würd da von abraten.
Deine Log Funktion ist übrigens nicht Thread Safe.
...