А вам приходят сообщения от друзей с просьбами отослать куда-нибуть СМС или заглянуть в галерею где ваша знакомая позирует ню? А все потому, что пользуются сомнительным ПО и ходят на сомнительные сайты.
Мы сейчас напишем скрипт, который будет размещать картинки-граффити на стене. Писал под себя, так что любителям удобств напильник в руки и удачи. Напишем на PHP (да-да, на этом тупом тормознутом языке для говнокодеров и школьников) а заодно и подучим работу с cURL, и загрузку с его помощью файлов на сервер.
Итак, из инструментов нам нужен снифер и flash-декомпилятор. Снифер нам выдаст параметры запроса:
'Signature' => цифровая подпись отправляемой на сервер картинки,
'Filedata' => собственно картинка в формате PNG и размером 586Х293,
'Upload' => строка 'Submit Query'
… а флеш-декомпилятор для того, чтобы узнать, каким образом формируется цифровая подпись:
Signature = md5 от первого килобайта base64-кода PNG-картинки
Собственно код:
UPD: В связи со сменой системы авторизации в контакте, скрипт уже не рабочий. В будущем переделаю.
Рядом со скриптом положить файлик PNG размером 586Х293 и названием graffiti.png. Запускать из консоли.
Когда скрипт отработает, необходимо зайти по адресу vkontakte.ru/graffiti.php?act=last и подтвердить загруженную картинку. Если не грузится, возможно картинка слишком большая по весу. Лимит по весу не вычислял, но килобайт 100-150 влазит спокойно…
Всем спасибо. С Днем Победы.
Мы сейчас напишем скрипт, который будет размещать картинки-граффити на стене. Писал под себя, так что любителям удобств напильник в руки и удачи. Напишем на PHP (да-да, на этом тупом тормознутом языке для говнокодеров и школьников) а заодно и подучим работу с cURL, и загрузку с его помощью файлов на сервер.
Итак, из инструментов нам нужен снифер и flash-декомпилятор. Снифер нам выдаст параметры запроса:
'Signature' => цифровая подпись отправляемой на сервер картинки,
'Filedata' => собственно картинка в формате PNG и размером 586Х293,
'Upload' => строка 'Submit Query'
… а флеш-декомпилятор для того, чтобы узнать, каким образом формируется цифровая подпись:
Signature = md5 от первого килобайта base64-кода PNG-картинки
Собственно код:
UPD: В связи со сменой системы авторизации в контакте, скрипт уже не рабочий. В будущем переделаю.
<? //http://vkontakte.ru/graffiti.php?act=last $userID = 'komu_ID'; $myID = 'otkogo_ID'; $myEMail = 'moi_login_v_kontakte%40mail.ru'; $myRemixId = 'f2a72a32c5b112da4e1701b0815614f34c680278918fbc08c4d3ed70'; $myPassword = md5('pass'); $graffitiFile = 'graffiti.png'; $vh = curl_init(); $options = Array ( CURLOPT_URL => 'http://vkontakte.ru/graffiti.php?to_id=' . $userID . '&group_id=0', CURLOPT_POST => 1, CURLOPT_POSTFIELDS => Array ( 'Signature' => md5(substr(base64_encode(file_get_contents($graffitiFile)), 0,1024)), //'Filedata' => file_get_contents($graffitiFile), 'Filedata' => '@' . realpath($graffitiFile), 'Upload' => 'Submit Query', ), CURLOPT_REFERER => 'http://vkontakte.ru/swf/Graffiti.swf?15', CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729) FirePHP/0.2.4', CURLOPT_COOKIE => 'remixlang=0; remixchk=5; remixautobookmark=14; remixmid=' . $myID. '; remixemail=' . $myEMail. '; remixpass=' . $myPassword . '; remixid=' . $myRemixId . ';', CURLOPT_HTTPHEADER => Array ( 'Host: vkontakte.ru', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language: ru,en-us;q=0.7,en;q=0.3', 'Accept-Encoding: gzip,deflate', 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7', 'Keep-Alive: 300', 'Connection: keep-alive', ), CURLOPT_RETURNTRANSFER => true, ); curl_setopt_array($vh, $options); curl_exec($vh); curl_close($vh); Header("Location: http://vkontakte.ru/graffiti.php?act=last"); ?>
Рядом со скриптом положить файлик PNG размером 586Х293 и названием graffiti.png. Запускать из консоли.
Когда скрипт отработает, необходимо зайти по адресу vkontakte.ru/graffiti.php?act=last и подтвердить загруженную картинку. Если не грузится, возможно картинка слишком большая по весу. Лимит по весу не вычислял, но килобайт 100-150 влазит спокойно…
Всем спасибо. С Днем Победы.