Obsah fóra www.hojko.com
Game-Points
Hľadať  •  FAQ  •  IP  •  CS  •  Zoznam užívateľov  •  Karma  •  Závisláci  •  Registrácia
 Prihlásiť sa pre kontrolu súkromných správ  •  Prihlásenie





php+icq
Odoslať novú tému   Odpovedať na tému    Obsah fóra www.hojko.com -> Programovanie Choď na stránku 1, 2  Ďalšia 
 Moje príspevky :: Zobraziť predchádzajúcu tému :: Zobraziť nasledujúcu tému  
Autor Správa
final
Light Star
Light Star


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 04.12.2005
Príspevky: 206
Bydlisko: Prievidza
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 18 Jan 2006, 18:23    Predmet: php+icq Odpovedať s citátom  

Hi all,

ehm, nevie pls niekto, ako poslať cez php-čko message niekomu na icq?
dostal som taký tip, prezreť si icq protokol, trebars v zdrojákoch mirandy, ale nie že by som bol lenivý, čo vlastne som, takže sa mi tam nechce babrať v komplet procedurálne riešenom kode .) gúgla som prešiel snaď celého, ale výsledky boli len programy staré 4 roky, čiže nefunkčné a žiadne source code..
aa.. btw, pls shell_exec() vynechať.. bodlo by iba fsockopen()..

many thx ;P
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
roman3x
Medium Star
Medium Star



Stav: Odhlásený
Založený: 02.11.2005
Príspevky: 447

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 18 Jan 2006, 19:33    Predmet: Odpovedať s citátom  

niekde(a tusim viac krat) som videl php --> jabber a jabber servery uz maju casto transport na ICQ, tak mozno tak
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu Zobraziť autorove WWW stránky
final
Light Star
Light Star


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 04.12.2005
Príspevky: 206
Bydlisko: Prievidza
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 18 Jan 2006, 23:47    Predmet: Odpovedať s citátom  

HUH.. jabber jabber.. čo to? tuším chatovací program? abo ja neviem, viem, že to tu mám ako plugin v trilliane, ale ešte som nečekol čo to je zač..
skúsim pozrieť na nete, ale pochybujem, že to tak pôjde..
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
mastermind
Moderátor
Moderátor


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 09.02.2005
Príspevky: 4734

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 19 Jan 2006, 0:07    Predmet: Odpovedať s citátom  

jabber nie je chatovaci program ale protokol.
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
roman3x
Medium Star
Medium Star



Stav: Odhlásený
Založený: 02.11.2005
Príspevky: 447

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 19 Jan 2006, 10:52    Predmet: Odpovedať s citátom  

Finalway napísal:
HUH.. jabber jabber.. čo to? tuším chatovací program? abo ja neviem, viem, že to tu mám ako plugin v trilliane, ale ešte som nečekol čo to je zač..
skúsim pozrieť na nete, ale pochybujem, že to tak pôjde..

hadam si uz nasielhttp://www.jabber.sk/, presnejsie: http://www.jabber.sk/sluzby.php
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu Zobraziť autorove WWW stránky
final
Light Star
Light Star


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 04.12.2005
Príspevky: 206
Bydlisko: Prievidza
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 02 Jún 2006, 15:11    Predmet: Odpovedať s citátom  

mno, po dlhom čase trochu prekonaná lenivosť a trochu naštudovaný icq protokol z http://iserverd1.khstu.ru/oscar/ a výsledok icq trieda na posielanie správ do icq siete cez phpčko... ak by to dakto chcel, tak to tu máte..

Kód:

<?
class icq
      {
      var $soket,$input,$return,$bos_soket;
      var $flap_pozicia = 44;
      var $xor = "\xF3\x26\x81\xC4\x39\x86\xDB\x92\x71\xA3\xB9\xE6\x53\x7A\x95\x7C";
      function flap_poziadavok()
               {
               $this->flap_pozicia++;
               return pack('c',$this->flap_pozicia);
               }
      function spracuj($cislo,$icq=NULL,$pwd=NULL,$klient=NULL,$obsah=NULL,$cookie=NULL,$pre=NULL,$sprava=NULL)
               {
               // dlzky n a c pre flap: c=8 bitova, n=16 bitova
               $this->return  = '';
               switch($cislo)
                     {
                     case '1' : // vyhotovenie ziadosti o autorizaciu + XORovane heslo - http://iserverd1.khstu.ru/oscar/cli_ident.html
                                // je tam este jedna moznost pomocou md5 hashu, ale nakolko to je zdlhavejsi proces, vyberam tento
                     $this->return  = "\x00\x00\x00\x01";                            // verzia protokolu
                     $this->return .= "\x00\x01" . pack('n',strlen($icq)) . $icq;    // kanal . dlzka . icq_cislo
                     $this->return .= "\x00\x02" . pack('n',strlen($pwd)) . ($pwd ^ (substr($this->xor,0,strlen($pwd)))); // kanal . dlzka . xornute_heslo
                     $this->return .= "\x00\x03" . pack('n',strlen($klient)) . $klient; // kanal . dlzka . nazov_klienta
                     $this->return .= "\x00\x16" . pack('n',2) . pack('n',266);      // kanal . dlzka . id_klienta
                     $this->return .= "\x00\x17" . pack('n',2) . pack('n',4);        // kanal . dlzka . verzia_klienta
                     $this->return .= "\x00\x18" . pack('n',2) . pack('n',65);       // kanal . dlzka . vedlajsia_verzia
                     $this->return .= "\x00\x19" . pack('n',2) . pack('n',1);        // kanal . dlzka . najmensia_verzia
                     $this->return .= "\x00\x1A" . pack('n',2) . pack('n',3281);     // kanal . dlzka . vyrobna_verzia
                     $this->return .= "\x00\x14" . pack('n',4) . pack('N',85);       // kanal . dlzka . distribucne_cislo
                     $this->return .= "\x00\x0F" . pack('n',2) . "sk";               // kanal . dlzka . jazyk_klienta
                     $this->return .= "\x00\x0E" . pack('n',2) . "sk";               // kanal . dlzka . adresa_klienta
                     $this->return  = "\x2a\x01\x13" . $this->flap_poziadavok() . pack('n', strlen($this->return)) . $this->return; // FLAP . FLAP_id . dlzka . ziadost
                     break;
               
                     case '2' : // spracovanie output-u, kanal: 0x05: xx xx BOS server:port
                     $this->parsuj = explode("\x00", $obsah);
                     $this->return = substr($this->parsuj[4],1);
                     break;

                     case '3' : // spracovanie output-u, kanal: 0x06: xx xx cookie, cookie moze obsahovat oznacenie kanalu 0x06
                                // preto sa parsuje od prvej najdenej hodnoty, dlzka cookie je 2048 bitov
                     $this->parsuj = explode("\x06", $obsah);
                     $this->return = substr($this->fread, strlen($this->parsuj[0])+3);
                     break;
               
                     case '4' : // poslatie cookie BOS serveru - http://iserverd1.khstu.ru/oscar/cli_cookie.html
                     $this->return  = "\x00\x00\x00\x01"; // verzia protokolu
                     $this->return .= "\x00\x06" . pack('n', strlen($cookie)) . $cookie;   // kanal coookie . dlzka . cookie
                     $this->return  = "\x2a\x01\x13" . $this->flap_poziadavok() . pack('n', strlen($this->return)) . $this->return; //  flap . flap_id . dlzka . obsah
                     break;
               
                     case '5' : // vytvorenie ziadosti - http://iserverd1.khstu.ru/oscar/snac_01_17.html
                                // hodnoty mozu byt default, pokial by vsak neposlal niektoru z horeuvedenych rodin, vtedy server nevyhovie
                     $this->return  = "\x00\x01\x00\x17\x00\x00\x00\x00\x00\x17";
                     $this->return .= "\x00\x01\x00\x03\x00\x13\x00\x02\x00\x02\x00\x01\x00\x03\x00\x01";
                     $this->return .= "\x00\x15\x00\x01\x00\x04\x00\x01\x00\x06\x00\x01\x00\x09\x00\x01";
                     $this->return .= "\x00\x0A\x00\x01\x00\x0B\x00\x01";
                     $this->return  = "\x2a\x02\x13" . $this->flap_poziadavok() . pack('n', strlen($this->return)) . $this->return; // flap/flap_id . dlzka ziadosti . ziadost
                     break;
               
                     case '6' : // ziadost o rate limits - http://iserverd1.khstu.ru/oscar/snac_01_06.html
                     $this->return = "\x00\x01\x00\x06\x00\x00\x00\x00\x00\x06"; // rodiny
                     $this->return = "\x2a\x02\x13" . $this->flap_poziadavok() . pack('n', strlen($this->return)) . $this->return; // flap/flap_id . dlzka ziadosti . ziadost
                     break;
               
                     case '7' : // http://iserverd1.khstu.ru/oscar/snac_01_08.html
                     $this->return  = "\x2a\x2\x13" . $this->flap_poziadavok() . "\x0\x12\x0\x1\x0\x1e\x0"; // flap/flap_id, dlzka a default rodiny/SNAC rate-limits
                     $this->return .= "\x0\x1\x5e\xb4\x5c\x0\x6\x0\x4\x20\x8\x0\x20";
                     break;
               
                     case '8' : // http://iserverd1.khstu.ru/oscar/snac_01_1e.html
                                // status som nastavil na 0x0000 - online
                        // - http://iserverd1.khstu.ru/oscar/lists.html#user_status
                     $this->return  = "\x00\x01\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x06\x00\x04\x00\00\x00\x00";
                     $this->return  = "\x2a\x02\x13" . $this->flap_poziadavok() . pack('n', strlen($this->return)) . $this->return; // flap/flap_id . dlzka . obsah
                     break;
               
                     case '9' : // oboznamenie servera o tom, ze sme pripraveni na pouzivanie zakladnych funkcii
                                // http://iserverd1.khstu.ru/oscar/snac_01_02.html
                     $this->return  = "\x00\x01\x00\x02\x00\x00\x00\x00\x00\x00\x00";
                     $this->return .= "\x01\x00\x03\x01\x10\x02\x8a\x00\x02\x00\x01\x01\x01\x02\x8a";
                     $this->return .= "\x00\x03\x00\x01\x01\x10\x02\x8a\x00\x15\x00\x01";
                     $this->return .= "\x01\x10\x02\x8a\x00\x04\x00\x01\x01\x10\x02\x8a";
                     $this->return .= "\x00\x06\x00\x01\x01\x10\x02\x8a\x00\x09\x00";
                     $this->return .= "\x01\x01\x10\x02\x8a\x00\x0a\x00\x01\x01\x10\x02\x8a";
                     $this->return  = "\x2a\x02\x13" . $this->flap_poziadavok() . pack('n', strlen($this->return)) . $this->return;
                     break;
               
                     case '10' : // vypracovanie ziadosti a zaslatie spravy
                     $pre = str_replace('-', '', $pre);
                     $this->return = "\x0\x0\x0\x0" . $sprava; // kanal pre spravu . sprava
                     $this->return = "\x5\x1\x0\x1\x31\x1\x1" . pack('n', strlen($this->return)) . $this->return; // oznacenie spravy . dlzka . kanal+sprava
                     $this->return = "\x0\x4\x0\x6\x0\x0\x1\x5e\xb8\xe3\x0\x0\x0\x0\x1\x5e\xb8\xe6\x0\x1" . pack('c', strlen($pre)) . $pre . "\x0\x2" . pack('n', strlen($this->return)) . $this->return;
                     $this->return = "\x2a\x2\x13" . $this->flap_poziadavok() . pack('n', strlen($this->return)) . $this->return;
                     break;
                     }
               return $this->return;
               }
      function pripoj($icq_cislo,$icq_heslo)
               {
               $icq_cislo = str_replace('-', '', $icq_cislo);
               $this->soket = fsockopen('login.icq.com','5190'); // zacina spojenie s autorizacnym serverom
                     
               $this->fread = fread($this->soket, 10); // precita sa welcome "sprava"
                     
               $this->input = $this->spracuj(1,$icq_cislo,$icq_heslo,'ultra vyborny ;)');
               fwrite($this->soket, $this->input);     // posle sa ziadost o autorizaciu
                     
               $this->fread = fread($this->soket, 310);// server vracia icq, BOS server:port, a aut. cookie
                     
               @fclose($this->soket); // konci spojenie s autorizacnym serverom
                     
               if(strlen($this->fread) < 289)
                 {
                 return 0; // odstaveny log-in, alebo zle icq cislo/heslo, http://iserverd1.khstu.ru/oscar/auth_failed.html
                 }

               $this->srv        = explode("\x3a", $this->spracuj(2,0,0,0,$this->fread));
               $this->bos_server = $this->srv[0];
               $this->bos_port   = $this->srv[1];
               $this->cookie     = $this->spracuj(3,0,0,0,$this->fread);
                 
               $this->bos_soket = fsockopen($this->bos_server, $this->bos_port); // zacina spojenie s BOS serverom

               fread($this->bos_soket, 2048); // cita sa uvitacia sprava

               $this->input = $this->spracuj(4,0,0,0,0,$this->cookie);
      
               fwrite($this->bos_soket, $this->input);
         
               fread($this->bos_soket, 2048); // server vracia http://iserverd1.khstu.ru/oscar/snac_01_03.html
           
               $this->input = $this->spracuj(5);
         
               fwrite($this->bos_soket, $this->input);
         
               fread($this->bos_soket, 2048); // server vracia http://iserverd1.khstu.ru/oscar/snac_01_18.html
         
               $this->input = $this->spracuj(6);
         
               fwrite($this->bos_soket, $this->input);
         
               fread($this->bos_soket, 2048); // server vracia http://iserverd1.khstu.ru/oscar/snac_01_07.html
         
               $this->input = $this->spracuj(7);
         
               fwrite($this->bos_soket, $this->input);
         
               fread($this->bos_soket, 2048);
         
               $this->input = $this->spracuj(8);
         
               fwrite($this->bos_soket, $this->input);
         
               fread($this->bos_soket, 2048);
         
               $this->input = $this->spracuj(9);
         
               fwrite($this->bos_soket, $this->input); // po tomto je icq on-line a moze sa poslat sprava
               }
      function sprava($pre,$sprava)
               {
               $this->input = $this->spracuj(10,0,0,0,0,0,$pre,$sprava);
               @fwrite($this->bos_soket, $this->input); // poslatie spravy
               }
      function odpoj()
               {
               @fclose($this->bos_soket); // konci spojenie s BOS serverom
               }
      }
// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

$icq = new icq;

$icq->pripoj('icq','heslo');

$icq->sprava('komu','sprava');
$icq->sprava('komu','dalsia sprava');

$icq->odpoj();
?>
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
Nosferatu
Medium Expert
Medium Expert



Stav: Odhlásený
Založený: 24.05.2005
Príspevky: 129

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 05 Jún 2006, 21:51    Predmet: Odpovedať s citátom  

Kvalitna prácička, díki moc.. Kde si si preštudoval ICQ protokol plz? Exclamation
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
lammer
VIP
VIP


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 24.04.2004
Príspevky: 2098

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 06 Jún 2006, 0:10    Predmet: Odpovedať s citátom  

nice work veru
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu Zobraziť autorove WWW stránky
final
Light Star
Light Star


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 04.12.2005
Príspevky: 206
Bydlisko: Prievidza
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 07 Jún 2006, 14:29    Predmet: Odpovedať s citátom  

thx Cool ... nosferatu, prečítaj si moju správu ešte raz Wink je tam link
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
Nosferatu
Medium Expert
Medium Expert



Stav: Odhlásený
Založený: 24.05.2005
Príspevky: 129

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 08 Jún 2006, 22:18    Predmet: Odpovedať s citátom  

sry Very Happy , diki moc, mrknem, len kto má ľúštiť tu anglinu Razz .. a čo také skype, sice to funguje trochu inak Confused
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
mastermind
Moderátor
Moderátor


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 09.02.2005
Príspevky: 4734

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 09 Jún 2006, 0:10    Predmet: Odpovedať s citátom  

Nosferatu napísal:
sry Very Happy , diki moc, mrknem, len kto má ľúštiť tu anglinu Razz .. a čo také skype, sice to funguje trochu inak Confused
ak sa nemylim tak skype pouziva uzavrety protokol. takze tam toho vela nenastudujes...
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
hojko
Site Admin
Site Admin


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 24.04.2004
Príspevky: 14671
Bydlisko: Európa
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 09 Jún 2006, 1:16    Predmet: Odpovedať s citátom  

Tento script by sa dal dobre pouzit aj na spammovanie icq, ci je to osetrene protokolom tak, ze sa zablokuje icq cislo???
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu Zobraziť autorove WWW stránky
final
Light Star
Light Star


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 04.12.2005
Príspevky: 206
Bydlisko: Prievidza
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 09 Jún 2006, 19:36    Predmet: Odpovedať s citátom  

mastermind, uzavretý protokol? ehm.. vysvetlíš pls?
každopádne si sosni nejaký soft, prezeraj si pakety ktoré skype posiela, domýšľaj si čo je čo, ako to robili tí odkiaľ som študoval icq protokol.. (aspoň tak tipujem, že robili).. daj to sem a môžem sa pokúsiť o niečo..

hojko, no dá sa.. medzi každú deviatu správu treba dať sleep(1), na jednu sekundu to počká a posiela ďalej.. bo icq server ťa odpojí ak posieláš za sebou veľa správ.. + je to spravené tak, že to zaradenie flap formátu je od 44 do 256, takže max. pošleš cca 210 správ.. mohol by som to prerobiť, aby to bralo do 256^2, (menil by som aj prvú hodnotu zaradenia - \x13).. ak by ste chceli, ale až zajtra bo idem preč teraz..
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
gwixt
Addict
Addict


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 24.09.2005
Príspevky: 3479
Bydlisko: Trash-Can
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 12 Jún 2006, 10:15    Predmet: Odpovedať s citátom  

Finalway napísal:
mastermind, uzavretý protokol? ehm.. vysvetlíš pls?
uzavrety sa mysli ze ho nikto okrem vyvojarov skype nepozna ....

icq je myslim otvoreny protocol ... keby bol uzavrety asi by nebolo tolko icq klientov (miranda, trilian, licq, gaim atd....)
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
mastermind
Moderátor
Moderátor


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 09.02.2005
Príspevky: 4734

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 12 Jún 2006, 12:19    Predmet: Odpovedať s citátom  

presne ako napisal gwixt k icq protokolu existuje urcite nejaka dokumentacia. pri skype nie... a keby to mali robit len na zaklade odsnifovanych paketov tak este dodnes nevedia ako to funguje Smile
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    Časy uvádzané v GMT + 1 hodina
Odoslať novú tému   Odpovedať na tému    Obsah fóra www.hojko.com -> Programovanie Choď na stránku 1, 2  Ďalšia
Strana 1 z 2

 
Prejdi na:  
Nemôžete odosielať nové témy do tohto fóra
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre
Nemôžete hlasovať v tomto fóre
Nemôžete pripájať súbory do tohto fóra
Môžete sťahovať súbory v tomto fóre


Powered by phpBB © 2005 phpBB Group, phpBB SEO, © Hojko 2004-2008

[ Vygenerované za: 0.2s ] :: [ 16 Queries ] :: [ 68,126 stránok za dnes ] :: [ Dnes DB: 1,189,844 ] :: [ Max DB: 2,334,336 Queries ]