Привет народ. В общем,есть такая задача: К примеру,нужно попробовать пропарсить фотографии с ЛС пользователей фотостраны Как выяснилось,после отправки фото в личных сообщениях ссылка приобретает такой вид : https://iAA.fotocdn.net/sBB/CCC/messenger_m/DDD/EEEEEFFFFF.jpg AA - число от 00 до 11 BB - число от 23 и обычно до 29 CCC - числа от 150 до 255 обычно DDD - числа от 200 до 255 обычно EEEEE - число юзера,которому (или от кого) адресовано фото FFFFFF - тоже рандомное число,но растущее Причем фото по ссылке после удаления остается доступным,даже если оно из личных сообщений (пример: https://i07.fotocdn.net/s28/157/messenger_m/245/2689660060.jpg ) Есть ли способ брутануть и пропарсить изображения при помощи каких либо алгоритмов (перебор всех рандомных чисел в ссылках) и каким образом это можно осуществить. Знаю,задача тяжелая (т.к может существовать over9000 кол-ва вариантов ссылок) но все же #1A moment ago
брутить можно что угодно это тер вер, влом вспоминать, если коротко x = AA * BB * CCC * DDD * EEEEE(hex?) * FFFFFF(hex?) y = время_одного_запроса_к_серверу * x если "y" для тебя приемлемо - бруть
в 2 раза обсчитался 450000х(FFFFFF - тоже рандомное число,но растущее) )))) ну кто ж в 1 поток брутит....можно сократить время в p раз , где р - количество потоков
Ахаха) Да не,это не hex числа)) Я просто латинскими буквами цифры пронумеровал для удобства ( вместо "FFFFF" может быть , 89472 или 89654,ну ясна суть же) Я не собираюсь абсолютно все числа брутить с 0,до 999 То есть у меня есть определенные критерии чисел,которые я собираюсь брутить Нужно как то реализовать метод перебора этих самых чисел,допустим,использовать алгоритм Я пытался уже составить что то в этом роде с помощью программы loginpassgenerator Но там через 5 минут работы выходит txt файл на 1 ГБ А эти ссылки ещё нужно как то парсить ( думал использовать download master,но у него из-за проверки доступности на ссылку целых 5 сек уходит)
так и в чем проблема? с технической точки зрения это реализовать не сложно если ты хочешь чтобы это сделали за тебя - так не бывает если нужен совет - конкретизируй любой язый программирования в полной мере поддерживает работу по http протоколу(кроме конечно perl6, засранцы облажались просто на ровном месте), изучи хотя бы один
Я просто хотел узнать,есть ли готовые решения этой задачи,может кто то уже занимался этим вопросом) Я как то давно видел что то в этом роде,но это было посвящено вконтактику. В общем то Каким образом можно написать алгоритм,что бы он перебирал варианты,в заданых мной пределах,и желательно бы,чтобы эта программа работала на сервере.,допустим и сохраняла результат на FTP (хотя,это не так уж и важно))
есть! http://cppstudio.com/post/348/ https://stackoverflow.com/questions/3430810/wget-download-with-multiple-simultaneous-connections
Code: <?php error_reporting(E_ALL); /* https://i07.fotocdn.net/s28/157/messenger_m/245/2689 660060.jpg ) https://i07.fotocdn.net/s29/24/messenger_xl/109/2701 552663.jpg https://i08.fotocdn.net/s29/102/messenger_xl/415/2701631077.jpg */ $count=0; $ya=false; while (!$ya){ $url="https://i0".rand(0,9).".fotocdn.net/s".rand(23,29)."/".rand(10,255)."/messenger_xl/".rand(100,900)."/".rand(1000,9999)."".rand(10000,999999).".jpg"; echo "<a target=_blank href=$url>$url</a>"; if (@fopen($url, "r")) { echo " Файл существует"; $ya=true; } else { echo " Файл не найден"; } echo "<br>"; $count++; if ($count>5) exit; //sleep(1); } ?>
Спасибо.Разобрался как скрипт работет) Вот парсил бы он еще найденные файлы на ftp,было б вообще шикарно)
Немного доделал скрипт : 1.Если ссылка актуальна он записывает ее в save.txt 2.Генерирует за раз 50 ссылок 3.Обновляет страницу каждые 5 секунд (типо автоматизация =) ) Но пока не одной актуальной ссылки не нашел . Code: <?php error_reporting(E_ALL); /* https://i07.fotocdn.net/s28/157/messenger_m/245/2689 660060.jpg ) https://i07.fotocdn.net/s29/24/messenger_xl/109/2701 552663.jpg https://i08.fotocdn.net/s29/102/messenger_xl/415/2701631077.jpg */ header("refresh: 5;"); $count=0; $ya=false; while (!$ya){ $url="https://i0".rand(0,9).".fotocdn.net/s".rand(23,29)."/".rand(10,255)."/messenger_xl/".rand(100,900)."/".rand(1000,9999)."".rand(10000,999999).".jpg"; echo "<a target=_blank href=$url>$url</a>"; if (@fopen($url, "r")) { echo " yes"; $file = "save.txt"; $rez = $ya; //file_put_contents($file, $url); file_put_contents($file, PHP_EOL .$url , FILE_APPEND); $ya=true; } else { echo " nooooooooooooo"; } echo "<br>"; $count++; if ($count>50) exit; //sleep(1); } ?>
Я тоже сделал такой скриптик на питоне для сервиса https://prnt.sc/ Зависимости: pip3 install requests bs4 Spoiler: Code Code: import requests as rq import random from bs4 import BeautifulSoup headers={ 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' } chars_mix="qwertyuiopasdfghjklzxcvbnm1234567890" chars="qwertyuiopasdfghjklzxcvbnm" n=int(input("Number of url's:")) for k in range(1,n+1): url='https://prnt.sc/'+random.choice(chars) for i in range(5): url+=random.choice(chars_mix) page=rq.get(url,headers=headers) page=BeautifulSoup(page.text,"html.parser") photo=str(page.find("meta",{"name":"twitter:image:src"})) photo_url=photo if photo_url[15:17]=="//": print (str(k)+")",url,"removed") elif photo_url[23:28]=="i.img": try: f1=rq.get(photo_url[15:46]) filename=str(url[16:22])+".png" open(filename,"wb").write(f1.content) print (str(k)+")",url,"imgur saved") except: print(str(k)+")",url,"imgur not saved") elif photo_url[69:73]==".png": f1=rq.get(photo_url[15:73]) filename=str(url[16:22])+".png" open(filename,"wb").write(f1.content) print (str(k)+")",url,"saved") elif photo_url[79:83]==".png": f1=rq.get(photo_url[15:83]) filename=str(url[16:22])+".png" open(filename,"wb").write(f1.content) print (str(k)+")",url,"saved")
для https://prnt.sc/ у меня на с# написан парсер запускаешь и он сохраняет все что нашел в папку с программой https://yadi.sk/d/JX8i9xugC6cExQ