А вам приходят сообщения от друзей с просьбами отослать куда-нибуть СМС или заглянуть в галерею где ваша знакомая позирует ню? А все потому, что пользуются сомнительным ПО и ходят на сомнительные сайты.
Мы сейчас напишем скрипт, который будет размещать картинки-граффити на стене. Писал под себя, так что любителям удобств напильник в руки и удачи. Напишем на 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 влазит спокойно…
Всем спасибо. С Днем Победы.