/pr/ - Программирование
Заголовок  
Текст
Изображение
Перейти к   
  • Поддерживаемые типы файлов: gif, jpg, png
  • Запрещено: детская порнография/эротика
Файл png(320×350)
КашираКашира Анонимус 14 Сентября 2011 в 22:27:03 ID: 82439
Пилим свою вайпалку на Python ITT. Сейчас я очень устал я лягу спать, а вообще отпишу завтра ночью по МСК. Это просто что бы не забыть :3
Кашира Анонимус 15 Сентября 2011 в 20:19:37 ID: 82627
И опять, я за вас ничего не делаю, что бы у каждого сосницкого не было вайпалки. А написать её не так и сложно. Итак, скачиваем Python бесплатно без регистрации и открываем новый файл. Нам нужны три библиотеки, которые мы и подключаем. Этоurllib, urllib2 и cookielib.
__all__ = ['gen_boundary', 'encode_and_quote', >MultipartParam',
'encode_string', 'encode_file_header', 'get_body_size', 'get_headers',
'multipart_encode']
Пробиваем далее. Это - основное через что можно подключится через HTTP в Python. А так же это позволяет посылать over 9000 GET-запросов на сервер от одного IP (proxy) что тоже намекает.
Кашира Анонимус 15 Сентября 2011 в 20:22:12 ID: 82633
try:
import uuid
def gen_boundary():
return uuid.uuid4().hex
except ImportError:
import random, sha
def gen_boundary():
bits = random.getrandbits(160)
return sha.new(str(bits.hexdigest()
Returns
Returns a random string to use as the boundary for a message (не могу в русский язык). Так же подключаем SHA и прочие вещи. Затем ещё раз добавляет новые библиотеки (и одну старую, ещё раз). Это urllib, re, os, mimetypes.
Анонимус 16 Сентября 2011 в 14:07:13 ID: 82911
Чтото не догоняю зачем uuid и sha...
Алсо если кому интересно есть вайпалка абузелки апачана
Анонимус 16 Сентября 2011 в 14:18:39 ID: 82913
ID: 82911
Чтото не догоняю зачем uuid и sha...
Алсо если кому интересно есть вайпалка абузелки апачана

Выкладывай
Кашира Анонимус 16 Сентября 2011 в 14:58:38 ID: 82922
Файл png(320×350)
Кашира
ID: 82911
Чтото не догоняю зачем uuid и sha...
Алсо если кому интересно есть вайпалка абузелки апачана
Что бы cookie забирал у сервера. А зачем нужен UUID, если есть более надёжная привязка по /dev/sda? Вот тут-то я промахнулся. Я пишу как умею, а умею я через UUID.
Кашира Анонимус 16 Сентября 2011 в 18:34:49 ID: 83070
try:
from email.header import Header
except ImportError:
# Python 2.4
from email.Header import Header

def encode_and_quote(data):
"""If ``data`` is unicode, return urllib.quote_plus(data.encode("utf-8"
otherwise return urllib.quote_plus(data)"""
if data is None:
return None

if isinstance(data, unicode):
data = data.encode("utf-8")
return urllib.quote_plus(data)

def _strify(s):
"""If s is a unicode string, encode it to UTF-8 and return the results,
otherwise return str(s), or None if s is None"""
if s is None:
return None
if isinstance(s, unicode):
return s.encode("utf-8")
return str(s)

Кашира Анонимус 16 Сентября 2011 в 18:48:12 ID: 83094
class MultipartParam(object):
def __init__(self, name, value=None, filename=None, filetype=None,
filesize=None, fileobj=None, cb=None):
self.name = Header(name).encode()
self.value = _strify(value)
if filename is None:
self.filename = None
else:
if isinstance(filename, unicode):
# Encode with XML entities
self.filename = filename.encode("ascii", "xmlcharrefreplace")
else:
self.filename = str(filename)
self.filename = self.filename.encode("string_escape").\
replace('"', '\\"')
self.filetype = _strify(filetype)

self.filesize = filesize
self.fileobj = fileobj
self.cb = cb

if self.value is not None and self.fileobj is not None:
raise ValueError("Only one of value or fileobj may be specified")

if fileobj is not None and filesize is None:
# Try and determine the file size
try:
self.filesize = os.fstat(fileobj.fileno(.st_size
except (OSError, AttributeError):
try:
fileobj.seek(0, 2)
self.filesize = fileobj.tell()
fileobj.seek(0)
except:
raise ValueError("Could not determine filesize")

def __cmp__(self, other):
attrs = ['name', 'value', 'filename', 'filetype', 'filesize', 'fileobj']
myattrs = [getattr(self, a) for a in attrs]
oattrs = [getattr(other, a) for a in attrs]
return cmp(myattrs, oattrs)

def reset(self):
if self.fileobj is not None:
self.fileobj.seek(0)
elif self.value is None:
raise ValueError("Don't know how to reset this parameter")

@classmethod
def from_file(cls, paramname, filename):
"""Returns a new MultipartParam object constructed from the local
file at ``filename``.

``filesize`` is determined by os.path.getsize(``filename``)

``filetype`` is determined by mimetypes.guess_type(``filename``)[0]

``filename`` is set to os.path.basename(``filename``)
"""

return cls(paramname, filename=os.path.basename(filename),
filetype=mimetypes.guess_type(filename)[0],
filesize=os.path.getsize(filename),
fileobj=open(filename, "rb"
Анонимус 16 Сентября 2011 в 20:06:57 ID: 83231
ID: 83228
Что за символы?
Кашира делает нам основы вайпалок
Кашира Анонимус 16 Сентября 2011 в 21:58:41 ID: 83330
Файл png(320×350)
Кашира
Весь серверный модуль для подключений по HTTP, так как я вчера библиотеки обновил и переписал скрипт, решил не томить и выложить весь. Теперь нам нужно ещё два модуля, один для отправки сообщений, второй для генерации текста.

import urllib, urllib2,cookielib

__all__ = ['gen_boundary', 'encode_and_quote', 'MultipartParam',
'encode_string', 'encode_file_header', 'get_body_size', 'get_headers',
'multipart_encode']

try:
import uuid
def gen_boundary():
return uuid.uuid4().hex
except ImportError:
import random, sha
def gen_boundary():
bits = random.getrandbits(160)
return sha.new(str(bits.hexdigest()

import urllib, re, os, mimetypes
try:
from email.header import Header
except ImportError:
# Python 2.4
from email.Header import Header

def encode_and_quote(data):
if data is None:
return None

if isinstance(data, unicode):
data = data.encode("utf-8")
return urllib.quote_plus(data)

def _strify(s):
if s is None:
return None
if isinstance(s, unicode):
return s.encode("utf-8")
return str(s)

class MultipartParam(object):
def __init__(self, name, value=None, filename=None, filetype=None,
filesize=None, fileobj=None, cb=None):
self.name = Header(name).encode()
self.value = _strify(value)
if filename is None:
self.filename = None
else:
if isinstance(filename, unicode):
# Encode with XML entities
self.filename = filename.encode("ascii", "xmlcharrefreplace")
else:
self.filename = str(filename)
self.filename = self.filename.encode("string_escape").\
replace('"', '\\"')
self.filetype = _strify(filetype)

self.filesize = filesize
self.fileobj = fileobj
self.cb = cb

if self.value is not None and self.fileobj is not None:
raise ValueError("Only one of value or fileobj may be specified")

if fileobj is not None and filesize is None:
# Try and determine the file size
try:
self.filesize = os.fstat(fileobj.fileno(.st_size
except (OSError, AttributeError):
try:
fileobj.seek(0, 2)
self.filesize = fileobj.tell()
fileobj.seek(0)
except:
raise ValueError("Could not determine filesize")

def __cmp__(self, other):
attrs = ['name', 'value', 'filename', 'filetype', 'filesize', 'fileobj']
myattrs = [getattr(self, a) for a in attrs]
oattrs = [getattr(other, a) for a in attrs]
return cmp(myattrs, oattrs)

def reset(self):
if self.fileobj is not None:
self.fileobj.seek(0)
elif self.value is None:
raise ValueError("Don't know how to reset this parameter")

@classmethod
def from_file(cls, paramname, filename):
return cls(paramname, filename=os.path.basename(filename),
filetype=mimetypes.guess_type(filename)[0],
filesize=os.path.getsize(filename),
fileobj=open(filename, "rb"

@classmethod
def from_params(cls, params):
if hasattr(params, 'items'):
params = params.items()

retval = []
for item in params:
if isinstance(item, cls):
retval.append(item)
continue
name, value = item
if isinstance(value, cls):
assert value.name == name
retval.append(value)
continue
if hasattr(value, 'read'):
# Looks like a file object
filename = getattr(value, 'name', None)
if filename is not None:
filetype = mimetypes.guess_type(filename)[0]
else:
filetype = None

retval.append(cls(name=name, filename=filename,
filetype=filetype, fileobj=value
else:
retval.append(cls(name, value
return retval

def encode_hdr(self, boundary):
boundary = encode_and_quote(boundary)

headers = ["--%s" % boundary]

if self.filename:
disposition = 'form-data; name="%s"; filename="%s"' % (self.name,
self.filename)
else:
disposition = 'form-data; name="%s"' % self.name

headers.append("Content-Disposition: %s" % disposition)

if self.filetype:
filetype = self.filetype
else:
filetype = "text/plain; charset=utf-8"

headers.append("Content-Type: %s" % filetype)

headers.append("")
headers.append("")

return "\r\n".join(headers)

Кашира Анонимус 16 Сентября 2011 в 21:59:13 ID: 83332
def encode(self, boundary):
if self.value is None:
value = self.fileobj.read()
else:
value = self.value

if re.search("^--%s$" % re.escape(boundary), value, re.M):
raise ValueError("boundary found in encoded string")

return "%s%s\r\n" % (self.encode_hdr(boundary), value)

def iter_encode(self, boundary, blocksize=4096):
total = self.get_size(boundary)
current = 0
if self.value is not None:
block = self.encode(boundary)
current += len(block)
yield block
if self.cb:
self.cb(self, current, total)
else:
block = self.encode_hdr(boundary)
current += len(block)
yield block
if self.cb:
self.cb(self, current, total)
last_block = ""
encoded_boundary = "--%s" % encode_and_quote(boundary)
boundary_exp = re.compile("^%s$" % re.escape(encoded_boundary),
re.M)
while True:
block = self.fileobj.read(blocksize)
if not block:
current += 2
yield "\r\n"
if self.cb:
self.cb(self, current, total)
break
last_block += block
if boundary_exp.search(last_block):
raise ValueError("boundary found in file data")
last_block = last_block[-len(encoded_boundary)-2:]
current += len(block)
yield block
if self.cb:
self.cb(self, current, total)

def get_size(self, boundary):
if self.filesize is not None:
valuesize = self.filesize
else:
valuesize = len(self.value)

return len(self.encode_hdr(boundary + 2 + valuesize

def encode_string(boundary, name, value):
return MultipartParam(name, value).encode(boundary)

def encode_file_header(boundary, paramname, filesize, filename=None,
filetype=None):
return MultipartParam(paramname, filesize=filesize, filename=filename,
filetype=filetype).encode_hdr(boundary)

def get_body_size(params, boundary):
size = sum(p.get_size(boundary) for p in MultipartParam.from_params(params
return size + len(boundary) + 6

def get_headers(params, boundary):
headers = {}
boundary = urllib.quote_plus(boundary)
headers['Content-Type'] = "multipart/form-data; boundary=%s" % boundary
headers['Content-Length'] = str(get_body_size(params, boundary
return headers

Кашира Анонимус 16 Сентября 2011 в 22:03:20 ID: 83339
http://pastebin.com/fxfJunMQ
Конец тут, он почему-то не отправляется.
Модуль генерации текста лежит тут.
http://pastebin.com/KAC7tZSw
Модуль HTTP отправки перепишу и скину завтра. Ещё библиотеки не обновил.
Кашира Анонимус 17 Сентября 2011 в 20:29:47 ID: 83689
http://pastebin.com/yE5nt0uX
Написал и откомментировал модуль для proxy.
Кашира Анонимус 18 Сентября 2011 в 22:03:43 ID: 84032
За мной судя по всему уже выехали. Пропаду на неопределённое время.
Анонимус 18 Сентября 2011 в 22:04:53 ID: 84033
Файл jpg(216×233)
ID: 84032
За мной судя по всему уже выехали. Пропаду на неопределённое время.
Удачи, бро
Анонимус 19 Сентября 2011 в 08:17:58 ID: 84073
Ну вот. Удачи тебе.
Анонимус 19 Сентября 2011 в 12:06:31 ID: 84105
Кажира хуй
Анонимус 19 Сентября 2011 в 12:54:23 ID: 84132
ID: 84032
За мной судя по всему уже выехали
А что ты такого сделал?
Кашира Анонимус 19 Сентября 2011 в 13:21:45 ID: 84151
ID: 84132
А что ты такого сделал?
Ничего хорошего.
Анонимус 19 Сентября 2011 в 13:22:36 ID: 84152
Файл jpg(700×484)
ID: 84105
Кажира хуй
Кашира Анонимус 19 Сентября 2011 в 13:28:12 ID: 84156
Модуль для отправки сообщений (вайпалка, можно сказать).
http://pastebin.com/UpYR482D
Вроде так просто, но я специально кое-что выпилил что бы хитроумные сосницкие не завайпали всё и сразу.
Кашира Анонимус 19 Сентября 2011 в 13:28:45 ID: 84157
Все модули надо соединить в один, компилировать непосредственно вайпалку.
Анонимус 19 Сентября 2011 в 13:33:44 ID: 84161
ID: 84157
Все модули надо соединить в один, компилировать непосредственно вайпалку.
Хитроумные сосницкие скачают вайпалку на луркморе.
Кашира Анонимус 19 Сентября 2011 в 13:36:54 ID: 84166
ID: 84161
Хитроумные сосницкие скачают вайпалку на луркморе.
Это одно, а у меня - открытые исходники, можно под форумы переписать например.
Анонимус 19 Сентября 2011 в 13:39:05 ID: 84168
ID: 84166
Это одно, а у меня - открытые исходники, можно под форумы переписать например.
Лол.
http://lurkmore.ru/%D0%92%D0%B0%D0%B9%D0%BF#.D0.98.D1.81.D1.85.D0.BE.D0.B4.D0.BD.D0.B8.D0.BA.D0.B8_.D0.B2.D0.B0.D0.B9.D0.BF.D0.B0.D0.BB.D0.BE.D0.BA
Кашира Анонимус 19 Сентября 2011 в 13:41:05 ID: 84170
Ты меня разочаровал, на хуй так жить.
Анонимус 19 Сентября 2011 в 13:43:31 ID: 84174
ID: 84170
Ты меня разочаровал, на хуй так жить.
Я так и подумал, что ты расстроишься. Но зато ты теперь набыдокодишь что-нибудь новое.
Кашира Анонимус 19 Сентября 2011 в 13:44:23 ID: 84176
В голове так много идей, на деле так мало времени.
sage Анонимус 19 Сентября 2011 в 17:45:23 ID: 84341
urllib
Не осилил curl?
Анонимус 19 Сентября 2011 в 19:09:33 ID: 84363
ID: 84341
Не осилил curl?
python
компилировать

пацаны вы меня расстраиваете.
Кашира Анонимус 19 Сентября 2011 в 20:30:21 ID: 84374
ID: 84341
Не осилил curl?
Curl не нужен.
ID: 84363
пацаны вы меня расстраиваете.
Скрипты следует компилировать, если ты не знал. А не просто запускать.
Анонимус 23 Сентября 2011 в 21:16:09 ID: 85895
Вайпер-кун в треде. Задавайте свои ответы. Да это я вайпал борду месяц назад.
Анонимус 23 Сентября 2011 в 21:18:58 ID: 85897
ID: 85895
Да это я вайпал борду месяц назад.
А разве нас вайпали месяц назад?
Не могу выбрать. Анонимус 18 Октября 2011 в 08:25:14 ID: 100723
Файл png(246×246)
Не могу выбрать.
Где лучше?
Апачан или сосач?
Анонимус 18 Октября 2011 в 08:26:13 ID: 100724
Файл jpg(358×239)
ID: 100723
Где лучше?
Апачан или сосач?
Сосач конечно же.
Анонимус 18 Октября 2011 в 08:27:50 ID: 100725
ID: 100724
Сосач конечно же.
Удваиваю. В сравнении с Апачаном, Сосач - адекватнейший чан.
Сын Капитана Неодекватность Анонимус 18 Октября 2011 в 08:30:42 ID: 100727
ID: 100723
Где лучше?
Апачан или сосач?
В сортах говна не разбираюсь.
Анонимус 18 Октября 2011 в 08:31:48 ID: 100728
Файл jpg(340×480)
ID: 100727
В сортах говна не разбираюсь.
А у тебя и не спрашивали.
Анонимус 18 Октября 2011 в 08:32:47 ID: 100729
сырнач же
сырнач же Анонимус 18 Октября 2011 в 08:38:24 ID: 100732
Файл jpg(400×400)
сырнач же
сырнач же
Там цыгани ошиваются.
Анонимус 06 Ноября 2011 в 14:39:36 ID: 110608
ПИТОН СИЛА! КТО НЕ С НАМИ ТОТ ПАД НАМИ!
Анонимус 06 Ноября 2011 в 14:53:38 ID: 110617
class MultipartParam(object):
Вот это не пробовал использовать?
http://pypi.python.org/pypi/MultipartPostHandler/
Алсо, urllib2 не умеет в socks-прокси, если уж делать унивесальную флудилку, то через pycurl
Кашира Анонимус 06 Ноября 2011 в 15:36:50 ID: 110633
ID: 110617
Вот это не пробовал использовать?
http://pypi.python.org/pypi/MultipartPostHandler/
Алсо, urllib2 не умеет в socks-прокси, если уж делать унивесальн...
Я Socks подключаю отдельным модулем, импортом.
Kashira Анонимус 08 Ноября 2011 в 01:53:09 ID: 111933
socks.php
http://pastebin.com/qjJGT2wK
Kashira Анонимус 08 Ноября 2011 в 01:53:24 ID: 111934
ID: 111933
socks.php
http://pastebin.com/qjJGT2wK
Not PHP, aber Python. I lol'd.
Анонимус 23 Ноября 2011 в 14:26:47 ID: 118608
try:
import uuid
def gen_boundary():
return uuid.uuid4().hex
except ImportError:
import random, sha
def gen_boundary():
bits = random.getrandbits(160)
return sha.new(str(bits.hexdigest()
_______________________________________
def gen_boundary() два раза
Сначала не понел зачем это. Без подсветки и тем более без отступов читать не удобно. Попросите местного педалика, путь всавку кода как на нульче сделает.
Kashira Анонимус 23 Ноября 2011 в 22:28:34 ID: 118832
ID: 118608
_______________________________________
Сначала не понел зачем это. Без подсветки и тем более без отступов читать не удобно. Попросите местного педал...
Просили. Не сделают.