Nasza-klasa – automatyczne dodawanie znajomych
- Mateusz Żeromski | 2008-09-06 | Ciekawostki Php
Drocząc się ostatnio z moją narzeczoną (tak tak, już niedługo ślub :) ), o znajomych na naszej klasie postanowiłem napisać automat do zapraszania znajomych na naszej klasy. Okazało się to dość ciekawym zadaniem oraz pokazało mi jak łatwo jest zdobyć popularność na tym serwisie i innych :)
Jaki jest cel?
Cel jest czysto edukacyjny i sprawdzałem go na sobie i moich znajomych gotowych do przeprowadzenia testu. Kod jaki udostępniam również służy do celów edukacyjnych, czyli jak można wykorzystać php’a do innych celów niż „hello world”.
Jak to działa?
Skrypcik jest prosty, działa tak samo jak człowiek, który chce zaprosić znajomych :). Otóż działa to tak:
- 1. Logowanie
- 2. Wejście na profil wybranej osoby
- 3. Spisanie wszystkich jej znajomych
- 4. Zaproszenie ich wszystkich :)
Jak widać wszystko ładnie i prosto. :)
Czy to działa?
Jak by napisać rozbudowany system do obsługi serwisów społecznościowych, z obsługą błędów, wyjątków itp itp – to by działało, w tym stanie jakim ja prezentuje, jest tylko skryptem do analizy. Każdy średnio zaawansowany programista php może spokojnie coś takiego napisać, więc również nie ujawniam metody hakowania NK.Dodatkowo serwis Nasza-klasa wykrywa takie akcje i blokuje login na x sekund, więc taki system musiałby uwzględniać takie blokady. No ale dobra przejdźmy do konkretów.
Skrypt
Do działania potrzeba biblioteki snoopy http://sourceforge.net/projects/snoopy/, oraz phpQuery http://code.google.com/p/phpquery/. Polecam uruchamiać w terminalu, z limi poleceń, ponieważ wtedy widać logi na bierząco. Aha skrypt nie będzie działać jak powinien z założenia, bo na szczęście NK blokuje takie akcje, więc proszę nie mieć nadziei że wszystko zadziała jak powinno :)
Jest to okrojona wersja mojego skryptu, nawet nie wiem czy działa, bo po okrojeniu nie sprawdziłem, a co :). Umieszczam ten skrypt tylko i wyłaczenie w celach edukacyjnych :).
Źródło
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | <? /** * nasza-klasa - zapraszacz * * @author Mateusz Żeromski mateusz/zeromski.com.pl * @link http://blog.zeromski.com.pl/ * @link http://sourceforge.net/projects/snoopy/ * @link http://code.google.com/p/phpquery/ */ set_time_limit(0); //definiujemy dwie zmienne base i id define('BASE', 'http://nasza-klasa.pl/'); define('ID', '00000'); // tutaj wpisujemy id znajomego //dane do logowania define('LOGIN', 'LOGIN'); define('PASSWORD', 'HASLO'); //ladujemy biblioteki include "lib/Snoopy.class.php"; require('lib/phpQuery.php'); //logujemy się $submit_url = BASE."login"; $snoopy = new Snoopy; $submit_url = BASE."login"; $submit_vars["login"] = LOGIN; $submit_vars["password"] = PASSWORD; $snoopy->submit($submit_url,$submit_vars); //sciagamy strone ze znajomymi //WERSJA OKROJONA - sciaga tylko pierwszą stronę :) $snoopy->fetch(BASE.'friends/'.ID); $page = $snoopy -> results; //tworzymy tablice ze znajomymi $friends = array(); phpQuery::newDocument($page); foreach(pq('.avatar_photo a') as $link) $friends[] = trim(pq($link) -> attr('href')); //pętla zapraszająca // wersja okrojona - zapraszamy osoby tylko z pierwszej strony znajomych $all = count($friends); $i=0; foreach($friends as $friend){ $i++; //sciagamy strone profilu $snoopy->fetch(BASE.$friend); $html = $snoopy -> results; //ustawioamy parser phpQuery::newDocument($html); //wynajdujemy zmienne "tokenowe" //na NK zaprasza sie znajomych formularzem :) $name = trim(pq('#profile_top .avatar_name') -> html()); $token = pq('.profile_buttons form') -> find('input@[name=t]') -> val(); $token = trim($token); $action = BASE.trim(pq('.profile_buttons form') -> attr('action')); //wysylamy zaporszenie $submit_url = $action; $submit_vars = array(); $submit_vars["t"] = $token; $snoopy->submit($submit_url,$submit_vars); //wypisujemy log $progress = round($i/$all,4)*100; $progress .= "%\t $i z $all \t zostalo ".($all-$i); $progress .= "\tzaprosiłem $name\n"; echo $progress; } ?> |
Podsumowanie
No cóż tu można napisać – takie rozwiązanie daje ogromne możliwości, lecz jak dla mnie działa takiego są nieetyczne :). Ale mówiąc od strony programistycznej, nawet jak by w jakims serwisie był token obrazkowy, służący do zapraszania (na NK jest normalnie wpisany w kodzie), to łatwo można zrobić system, że ktoś(człowiek) widzi tylko token rozczytuje do, wpisuje do systemu, a system zaprasza delikwenta do którego był przypisany ten token. Odpowiednio programując system można bardzo łatwo symulować zachowanie człowieka, tak dokładnie że żaden system nie rozpozna różnicy :).
Idąc dalej, można wykonać sieć serwerów która będzie sama tworzyła konta i zapraszała ludzi do na utworzone konta. Tak dokładnie wygląda spam, itp. Nikomu nie polecam takie działania, bo za SPAM można otrzymać karę 5 tys zł (od jednej osoby).
Dobra to koniec :), aha i proszę pamiętać skąd i od kogo macie ten skrypt :)
1 Agent Nieruchomości 2008-09-27 17:13:31
Idąc dalej, można wykonać sieć serwerów która będzie sama tworzyła konta i zapraszała ludzi do na utworzone konta. Tak dokładnie wygląda spam, itp. Nikomu nie polecam takie działania, bo za SPAM można otrzymać karę 5 tys zł (od jednej osoby).
dobrze, ze to doczytalem… ;-)))
2 ja 2008-10-14 13:00:13
A
3 Anonim 2008-10-15 20:50:25
sroka bozena
4 Anonim 2008-12-17 13:38:35
To nie SPAM, tylko „przeglądarka internetowa” z funkcją automatycznego zapraszania znajomych.
5 Curl 2009-04-06 22:26:27
A nie prościej użyć CURLa?
6 amos1411 2009-07-16 16:31:29
Witam,
Nie mam pojecia o programowaniu. Ile bys sobie zazyczyl za przygotowanie czegos podobnego z tym ze musoalo by zaprosic wszystkich znajomych danej osoby. Potrzebuje uzyc cos takiego w celu nieszkodzacym spolecznosci.
Dzieki
7 ds 2009-08-02 14:17:15
Ty huju zajebany spamerze zajebana mac przestan takie programy robic dziecko neostrady
8 Mateusz Żeromski 2009-08-02 19:51:03
@amos1411 – mateusz@zeromski.com.pl, skrypt raczej nie jest na sprzedaż :)
oj chłopie @ds
Za taki tekst mogę Ciebie pozwać do sądu i miałbyś tylko kłopot. W każdym wpisie zostawiasz IP, bez problemu można dotrzeć do Ciebie, wszystko jest wszędzie logowane – u mnie na serwerze, w tpsa i u ciebie na kompie, ehhh
Zresztą zobacz na swój IP
Autor : ds (IP: 83.29.12.132 , bnw132.neoplus.adsl.tpnet.pl)
Czyżbyś to ty właśnie był dzieckiem neo? Jeżeli jesteś taki jurny to pochwal się jak się nazywasz i co robisz. A jak nie masz odwagi się podpisać pod swoimi myślami to spadaj na fotka.pl czy inne dziadostwo, ten blog nie jest dla Ciebie.
9 sceptic 2009-08-06 15:54:42
Techniczny geniusz, ale Ci ludzie na podstawie dotychczasowych doświadczeń będą sobie wyobrażać, że jakiś człowiek ich kliknął i oczekiwać, że im wszystkim ręcznie odpowiesz na losowe pytania w stylu „co słychać”. Szybko przeminie tryumf towarzyski ;> Taki spam to tylko z „kup wiagrę” ma sens, a nie w relacjach towarzyskich.
10 sceptic 2009-08-06 15:56:29
Równie dobrze możesz paralizatorem w tłocznym pociągu metra ludzi kopać i postulować fakt, że nawiązałeś z nimi kontakt. ;>
11 Mateusz Żeromski 2009-08-10 09:28:00
@sceptic – zgadzam się z Tobą dlatego ja nie mam już konta na NK. Jedyna społeczność internetowa w której biorę udział to flaker – ale tylko ze względu na informacje a nie znajomości, zdjęcia i inne takie takie :)
12 Ja 2009-08-13 11:39:22
jak to mam uruchomic?
wrzucic na serwer i wywolac sesje czy jak?
13 Damczyn 2009-09-24 09:48:13
Siemka, nie znam sie na programowaniu, nie wiem w ogóle gdzie to powklejać, ten tekst i pobrane pliki, dlatego odnosze sie do was z prośbą o jak najlepsze opisanie co gdzie jak ^^ klawisz po klawiszu ;)
Używam opere 9.5 ;)
14 Krzysiek 2009-10-17 08:02:11
Mateusz – weź no napisz skrypt co chociaż wykropkuje takie słowa żeby takie Ds-ie , co im coś nie poszło nie zaśmiecały bloga ! Oni są z innego podwórka!( zresztą podobno powinno być Ch…)
Nk można nie lubić , ale sie sprawdza – sam znalazłem paru ludzi co ich szukałem 20 lat.
ale swoją drogą przydała by się funkcja – Napisz do wszystkich znajomych.
Próbowałem napisać taki skrypt , ale sie nieudało!
Krzysiek z dysortografią
15 Sebastian 2009-10-26 13:23:40
Niezły pomysł.
Niezłe komentarze swoją drogą :D
Pozdrawiam
16 jurecki 2009-11-08 22:31:48
A ja takie coś napisałem w skrypcie shellowym używając wget – według mnie prościej i przejrzyściej.
Teraz pracuję nad skryptem, który ściąga wszystkich znajomych i ich znajomych itd. i tworzy w bazie danych sieć powiązań pomiędzy osobami.
17 Prawko 2009-11-11 00:13:54
Dobry pomysł, ale w złych rękach może posłużyć np spamerowi.
Pozdrawiam
18 Sebastian 2009-12-19 11:56:31
Coś nie działa, wywalało błąd na ladowaniu snoopy i phpquery, wiec je sciagnolem, wrzucilem do jednego katalogu, w skrypcie przy ladowniu usunolem przedroski lib/ zauploadowalem, nie wywala bledu, ale rowniez nic sie nie dzieje, any one help ?
Pozdrawiam,
Sebastian
19 Mateusz Żeromski 2009-12-23 11:30:13
Witam
Komentarze w tym wpisie zostały zablokowane.
Pozdrawiam
Mateusz