Обход noGraffiti на vkontakte.ru
Сегодня я расскажу тебе один способ, как все-таки загрузить граффити на страницу ВКонтакте. Ведь не секрет, что с выходом FlashPlayer 10, пустая страница с наднисью noGraffiti стала знакома многим линуксоидам-пользователям ВКонтакте...
Итак, наметим план действий: мы нарисуем картинку в графическом редакторе, загрузим ее с помощью Python-скрипта и подтвердим в браузере.
Начнем. Создаем новый рисунок:
- Тип изображения: png (Формат изображений PNG)
- Ширина: 586 пикселов
- Высота: 293 пиксела
Я для этих целей использую GIMP, ты же можешь использовать свой любимый графический редактор. Рисуем на нем свое граффити, сохраняем. Предположим, что мы сохранили его с именем graffiti.png в папку ~/uploader.
В эту же папку сохрани наш скрипт, например, под именем guploader.py.
#!/usr/bin/python import hashlib import base64 import pycurl import os from StringIO import * #Based on http://showmecode.com/code/675/ by mayhem #Translated into class by Ulltor (ulltor@gmail.com) class GUploader: def __init__(self, userID, myID, myEMail, myPassword, myRemixId, graffitiFile): self.userID = userID self.myID = myID self.myEMail = myEMail self.myPassword = hashlib.md5(myPassword).hexdigest() self.myRemixId = myRemixId self.graffitiFile = os.path.abspath(graffitiFile); self.curl = pycurl.Curl() self.st = StringIO() def __del__(self): self.curl.close() def pngsigMD5(self): pngsize = os.path.getsize(self.graffitiFile) pngcontent = open(self.graffitiFile, 'rb').read(pngsize) pngsigB64 = base64.b64encode(pngcontent)[0:1024] return hashlib.md5(pngsigB64).hexdigest() def makeCookie(self): return 'remixlang=0; remixchk=5; remixautobookmark=14; remixmid=' + self.myID + '; remixemail=' + self.myEMail + '; remixpass=' + self.myPassword + '; remixsid=' + self.myRemixId + ';' def config(self): def setoptArray(curlObj, optArray): for optName, optValue in optArray.iteritems(): opt = getattr(pycurl, optName) curlObj.setopt(opt, optValue) options = { "URL" : 'http://vkontakte.ru/graffiti.php?to_id=' + self.userID + '&group_id=0', "WRITEFUNCTION" : self.st.write, "HTTPPOST" : [ ('Signature', self.pngsigMD5()), ('Filedata', (pycurl.FORM_FILE, self.graffitiFile)), ('Upload','Submit Query') ], "REFERER" : 'http://vkontakte.ru/swf/Graffiti.swf?15', "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', "COOKIE" : self.makeCookie(), "HTTPHEADER" : [ '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', ], } setoptArray(self.curl, options) def execute(self): self.curl.perform() def GetValue(self): return self.st.getvalue() #Imperative part begining upl = GUploader( 'ID юзера, на стену которого вешается картинка', 'мой ID', 'мой e-mail в формате username%40example.com', 'мой пароль', 'мой RemixId', 'graffiti.png') upl.config() upl.execute()
Не забудь заменить нужные строки валидную информацию. Подсказка: чтобы узнать свой RemixId, нужно на своей странице ВКонтакте набрать в адресной строке:
javascript:document.write(document.cookie);
Там найдешь всю информацию.
Сделай скрипт исполняемым:
$chmod +x guploader.py
Теперь устави нужные пакеты (на примере *buntu):
$sudo apt-get install python-pycurl
PyCurl утянет за собой Python и libcurl.
Самое время питону приняться за работу:
$./guploader.py
Как только ты снова увидишь приглашение терминала, переходи по ссылке http://vkontakte.ru/graffiti.php?act=last. Любуйся результатом :)
- ulltor's blog
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 5819 просмотров


Комментарии
У кого-то получилось загрузить хоть один граффити?
сабж
сабж, или не сабж но мне
сабж, или не сабж но мне помогло
способы проще
http://leolik.blogspot.com/2009/06/adobe-flash-plugin-v10-vkontakteru.html
способ с GreaseMonkey с прошлой недели работать перестал, но утилита работает, как надо. и даже позволяет загружать картинки на стену не меняя пропорций - так, что они отображаются целиком.
Тут есть другое решение
Тут решение (см.: Товарищи, свершилось!)
Ребята что то не работает((
Ребята что то не работает(( Есть еще какие ни будь действенные способы?