Ähm, ich glaub, du hast noch nicht ganz verstanden wie das Programm funktioniert, wobei ich es ja auch nicht so ausführlich erklärt habe

. Es läuft etwas anders.
Der Vorteil, den man sich zu Nutzen machen kann, ist, dass ICQ mit 2 Servern kommuniziert. Erst mit dem Login-Server und nachdem er dann einen Login-Cookie erhalten hat, loggt sich ICQ beim sogenannten BOSS-Server ein. Was ich jetzt gemacht habe, ist einfach einen weiteren Server und Client zwischen ICQ und den ICQ-Login-Server zu packen. Der Server, der bei mir dann auf 127.0.0.1:5190 läuft (von ICQ aus gesehen), kommuniziert mit ICQ und gaukelt ihm vor, dass es sich richtig einloggt und so weiter, damit ICQ die verschiedenen Schritte, die es benötigt, um richtig ausgeführt zu werden, durchführt. Mein selbst geschriebener Client nimmt die eigentliche Kommunikation mit dem ICQ-Login-Server vor. Dazu kann man in dem Programm die ICQ-Nummer und den Passwort-Hash eingeben. Bei ICQ selbst kann man im Prinzip irgendwas eingeben, weil meinem selbstgeschriebenen Server vollkommen egal ist, was da für eine ICQ-Nummer und was für ein Passwort kommt. Sobald mein Client dann den Auth-Response mit dem Login-Cookie bekommen hat, übergibt er ihn an meinen Server und der wiederum an ICQ selbst. Danach wird diese Verbindung automatisch von ICQ aus geschlossen und ICQ verbindet sich mithilfe des erhalteten Auth-Response mit dem BOSS-Server, womit mein Programm dann überhaupt nichts mehr zu tun hat. Mein Programm schaltet und waltet nur solange es um den Login-Server geht. Anschließend ist man dann ganz normal mit ICQ mit dem in meinem Programm angegebenen ICQ-Account verbunden. Verstanden?
Also ja: Das Programm sendet und empfängt auch SNACs.
Den SNAC, um mit dem Passwort-Hash dann auch das Passwort zu ändern, habe ich jetzt nicht zusätzlich eingebaut, da es dafür ja schon ein Programm gibt. Wäre allerdings mit ein paar weiteren Zeilen auch noch möglich.
Jan
