~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
DUHOVKIN
Most2
Nausicaa
Vort
Xeha
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob_afk
poriori_
profetikla
soos
un
weko
whothefuckami_
orignal
рестарт илиты через 10 минут
Vort
с полуночи опять засирание трафиком пошло. после перерыва в 5 дней
weko
[05:38:51] <Vort> с полуночи опять засирание трафиком пошло. после перерыва в 5 дней
weko
Ага
weko
Жирные туннели
weko
Как всегда
whothefuckami
О ебать атака
whothefuckami
Routers: 32334 Floodfills: 17198 LeaseSets: 232
whothefuckami
Пацаны
whothefuckami
Client Tunnels: 65 Transit Tunnels: 21564
whothefuckami
Пацаны блять
whothefuckami
Сделайте что-то
whothefuckami
Или всё уже сделано?
whothefuckami
Tunnel creation success rate: 4%
whothefuckami
Ацетон кажись лежит
weko
Floodfills: 9115 L
weko
Ну а что
weko
Что можно было сделать "по быстрому", уже сделано
weko
И варианты как атакуют и как исправить я тоже предлагал ещ5 в тот раз
weko
Ещё*
weko
Могу предложить уменьшить лимит на туннели
weko
Транзитные
weko
У атаки как будто тот же сценарий
weko
Сначала трафик, потом эта херня
weko
Возможно даже комбинировано в этот раз
Vort
утром засирания флудфилами не было кстати
weko
Не было
weko
Я смотрел
weko
Vort: нужно решить что будем с этим делать
weko
Помнишь же что я предлагал?
weko
Могу сюда скопировать что я только что в другой канал писал как про этл
weko
Какие есть другие варианты
Vort
про флудфилы не помню
Vort
"что будем с этим делать" - анализировать netdb для начала
weko
[10:06:06] <weko> For general fix, we must recognize fake FFs (most easy - simple ping with i2p's transport), and block its FFs (and IPs) for long time (week, for example).
weko
[10:06:06] <weko> Also, maybe we need do not flood FFs, that we not check yet.
weko
[10:07:25] <weko> Ofc, we can do some stupid things, like searching patter of fake FFs, but it is temporary and just hot fix "for works"
weko
[10:08:08] <weko> Floodfills: 18861
weko
[10:08:20] <weko> Just for understand.
weko
[10:13:58] <weko> We recognize router as FF if it have cap "F", but we need more verification for recognize reality of this FF.
weko
[10:16:21] <weko> Spam with fake FFs is problem, because router trying get info about RIs and LSs mostly on fake FFs (witch do not sent answer), and this is reason of small TCSR
weko
[10:17:40] <weko> Critically small*
weko
Vort: значит нужен инструмент анализа
weko
И желательно статистики
weko
Но что именно мы хотим найти?
Vort
weko: по сути, ты покритиковал архитектуру i2p :) флудфилы - флудят. логично блин
weko
Я предложил конкретный вариант механизма защиты от подрбного
weko
Как и в тот раз я писал про этр
Vort
"Но что именно мы хотим найти?" - как минимум, есть ли отличия от прошлого флуда
weko
И что это даст?
Vort
ну если это тупой повтор - то можно так же тупо повторить "секретный патч"
weko
Механизм то тот же
weko
Vort: ну я вот уже скопировал его
weko
Буду сейчас вставлять
Vort
расскажи, поможет ли
weko
Но вопрос в том, чтобы исправить полноценно
Vort
да понятно
weko
Vort: давай, сейчас. Там ещё строчки съехали скорее всего
weko
))
weko
Пока что собираю
Vort
я посмотрел - принцип атаки очень похож. и патч скорее всего "поможет"
weko
Ну ты же знаешь на чём патч основан?
weko
Вот это и смотрм
Vort
поэтому и сказал что поможет
weko
Окей
weko
Сейчас ещё проверим имперически
Vort
тут ещё возможна эксплуатация бага, который мы так и не отловили: в логах много RouterInfo: Can't open file
weko
Есть идея как +- быстро реализовать мою идею кстати
Vort
хотя может это просто из-за повышенной нагрузки
weko
Не знаю
weko
Я не знаю про этот баг
weko
В любом случае атака эксплуатация бага ))
weko
[10:42:28] <weko> Есть идея как +- быстро реализовать мою идею кстати
weko
Нужна только функция "проверки" флудфила
weko
case eSSU2BlkRouterInfo:
relaybot
13sam: Роутеры: 3814 Флудфилы: 3433 Лизсеты: 0
relaybot
13sam: Клиентские туннели: 23 Транзитные туннели:
R4SAS
изучаю корку одного из серверов
R4SAS
догадываюсь где проблема
R4SAS
weko: Vort:
weko
А
R4SAS
Blinded message
weko
Он у меня не заработал
weko
Наверное не туда пихнул
weko
Там строчки поехали просто
R4SAS
скорее всего
weko
По логам там ломается файл router.info
R4SAS
не только
R4SAS
я вижу что хуйня еще в RI прилетаемых
weko
Видимо обработка router.info полагается на ту функцию, в которой патч
weko
Ну а там понятно почему ломается
R4SAS
перезапускаюсь
R4SAS
скоро вернусь
acetone_web
Вот это да)
acetone_web
Атакуют будь здоров значится
acetone_web
Туннели не строятся почти что
Vort
сейчас после перезапуска уже 20 минут пытаюсь к irc.ilita подключиться
Vort
при том, что я на 99% уверен что сервер работает
acetone_web
У меня на впске с баунсером оказывается i2pd упал (всего скорее ООМ, т.к. впска оч слабая). Надо бы в дефолтный системд сервис указать релоад по умолчанию
Vort
acetone_web: о характере атаки в курсе?
Vort
700 мегов RAM у меня на флудфиле до рестарта было
acetone_web
абсолютно не в курсе, вот заглянул после прогулки, а тут ничего не подключается
Vort
спам фейковыми RI флудфилов. надо ставить "секретный патч"
Vort
ну или ждать пока orignal другой метод реализует
Vort
[17:18:23] <~orignal> короче рассказываю план действий
Vort
[17:18:44] <~orignal> 1.на не флудфиле незапршенные флудфилы не принимаем
Vort
[17:19:07] <~orignal> 2. если флудфил то принимаем непосредственно с него естественно если совпадает адрес
Vort
[17:19:28] <~orignal> 3. если приходит через флуд то принимаем только ранее известные
Vort
[17:19:57] <~orignal> жду конструктивной критики
acetone_web
критиковать не могу, это самое что нинаесть похожее на план со времен первой подобной атаки
Vort
спам RI - это главное в атаке. но помимо этого с полуночи ещё пошла новая волна мусорного трафика
Vort
RI пошли утром-днём
Vort
вот так выглядит на картинке: paste.i2pd.xyz/?6b6e79b86d4c47ef#5eCXVTgwFiEhpi8RinPha9gH6dRc7cVpuKkX7xgzctA5
Vort
это загрузка CPU узла
WebClient26
сеть атакуют?
Vort
да
WebClient26
достали уже, зачем оно им надо..?
WebClient26
Я так понимаю с последнего коммита сидеть как-то еще получается? Или все через иггдрасиль?
Vort
смотря сколько хопов
Vort
у меня на 1 хопе только подключение долгое. может по 10-30 минут подключаться
Vort
зато когда подключилось, то держит нормально
WebClient26
Tunnel creation success rate: 1%
WebClient26
и в i2p через yggdrasil то же самое
Vort
orignal: на всякий случай пишу результаты теста после перезапуска: RI/FF в норме (основной эффект),
Vort
TCSR 5%, RAM - 600 мегов (как и до рестарта), CPU 10% - как и до рестарта (примерно)
Vort
то есть, в данный момент для проблемы RAM и CPU решения нету
Vort
у меня ещё есть запас по ним (раза в 2-3), так что пока не очень страшно, но вот acetone уже из-за RAM выкидывало
orignal
а флудфилов сколько?
WebClient26
8к
orignal
я Vort -а спрашиваю
orignal
второе наблюдение
orignal
во всех адресах один и ттт же s
orignal
в смысле роутеров
orignal
Vort решение отключи там флудфил и повесь на другой порт
WebClient14
Атака пацаны
orignal
надо же какой умный
WebClient14
1500 транспортов ssu2
WebClient14
Чудеса
WebClient14
Отрубил ссу и не помогло
WebClient14
Идеи есть?
orignal
отстань а?
Vort
"<~orignal> а флудфилов сколько?" вернулось в норму - 1.1к
orignal
у тебя память и проц
orignal
потому что все ломятся к тебе обращаясь к дубликатам
orignal
на не флудфиле этих проблем нет
Vort
не может ли это быть из-за профилей? забыл, надо было почистить
Vort
кстати, понемногу нормализуется и CPU и RAM
Vort
подожду до завтра, потом думать буду
Vort
как уже сказал, проблема пока не критична
orignal
дед кстати хуйню сделал о которой я ему говорил
orignal
полагаться на статический ключ это было ошибка
orignal
я его тыкал носом что подпись не проверяется
weko
Я пытаюсь понять, где происходит забор RI с туннелей
weko
orignal: статический ключ где?
orignal
но он давил авторитетом типа чуваки из noise знают лучше
orignal
я сразу предлагал не передавать отдельный статический ключ а конвертировать в него ключ подписи
orignal
который s
orignal
в адресе
orignal
ты поключаешься к роутеру и реально проверяется только статический ключ
orignal
а не i2p адрес
weko
Тоесть нет проверки что с нами действительно общается Боб?
weko
Или как
weko
Откуда берётся статический ключ?
orignal
именно так
weko
И как дед это оправдал
orignal
из файла ssu2.dat или ntcp2.dat
weko
Что сообщение можно подменить
orignal
дед сказал "алиса же проверяет подпись RI боба"
orignal
перед тем как соединиться
weko
А если RI другой?
orignal
ну его логика была кому придет в голову публиковать чужой s
orignal
я ему сразу говорил что подпись надо проверять при соединегий а не только согласование s
orignal
теперь имеем то что имеем
weko
Не сильно понятно на данный момент. Какие последствия то в итоге
orignal
именно то что счас
orignal
все ломятся на левые роутеры с адресами Vort-а
orignal
думаю что обращаются к одному роутеру а реально к его
weko
Тоесть можно не свой RI подставить с тем же адресом?
orignal
да
weko
Я там ещё в коде увидел место где мы со всех блоков RouterInfo в SSU2 забираем все RI себе в netDb
weko
Без проверок
orignal
ты можешь сгенерить новый RI и в него воткнуть адерса Vort-а и все будут думать что подключаеются в этому роутеру
weko
Может оттуда корни растут?
orignal
проверок чего?
weko
Ну что это за RI
weko
Вдруг не его
weko
А левый
orignal
так там может любой быть
orignal
и бывает кстати
orignal
при пир тестах
WayBest
orignal: а можно на какое то время положить всю сеть?
weko
orignal: просто проблема в том, что кто угодно может напихать мне в ssu2 тысячи роутеров
weko
И ему ничего за это не будет
weko
И они все улетят в netdb
WayBest
так похуй же не?
WayBest
оно ерсурсы не жрет
weko
WayBest: "не жрёт ресурсы". Также 300 метров памяти: :)))
weko
И 2% TCSR
WayBest
пф сервак 32 гб оперативы
weko
У кого?
weko
40к фейковых флудфилов - anyway не норма.
WayBest
8 ядер
WayBest
он даже не напрягается
WayBest
Роутеры: 11986 Флудфилы: 11489
WayBest
чиселка растет и все
WayBest
у меня
WayBest
опа отлетели
WayBest
5к
WayBest
у меня вопрос только с точки зрения безопасности
WayBest
да как то похуй пока не ломают через них
weko
[19:12:38] <orignal> и бывает кстати
weko
[19:12:44] <orignal> при пир тестах
weko
Пусть lookup делают. Больно жирно RI отправлять ещё
weko
WayBest: ну вообще все RI не с анонимных источников не безопасны
weko
А анонимный источник это разведка через туннели
weko
Всё остальное не должно для туннелей использоваться
weko
Потому что всем остальным можно манипулировать
WayBest
хм
WebClient26
если для туннелей нужна разведка через туннели, то откуда возьмутся разведовательные туннели?
WayBest
ну типа заставить идти траффик через подконтрольные ноды?
WayBest
как с тором делают?
weko
Условно говоря наспамить мне конкретно майорских роутеров, и ОПА шанс что они перкхватят туннели резко возрастает (ввиду их бОльшего соотшения в моей базе)
weko
WebClient26: так ресид же
orignal
запросто
orignal
но нужно иметь столько
WayBest
так это атака 50%
WayBest
дефолт же
orignal
потому я и хочу изменить логику
WayBest
ну поменяй
WayBest
похуй на жабу
WayBest
их проблемы
WayBest
сами подстроятся
weko
WayBest: атака 51% это вообще к PoW относится
WayBest
ради стабильности и безопасности
weko
Тут другое
WayBest
тут тоже пашет
orignal
не принимать на нефлудфилл непрошенные флурфилы
WayBest
чисто статистикой
weko
[19:20:20] <orignal> не принимать на нефлудфилл непрошенные флурфилы
weko
Нужно либо два NetDb, либо делать флаг источника
weko
Самое простое
orignal
неее
orignal
у нас в netdb список запросов висит
orignal
если пришел а запроса нет то дропать
orignal
с флудфилом смложнее
orignal
туда может приходить
weko
[19:21:57] <orignal> у нас в netdb список запросов висит
weko
[19:21:57] <orignal> если пришел а запроса нет то дропать
weko
Это в любом случае надо
orignal
надо
orignal
вот займусь
orignal
я тут изложеил план
WayBest
спасай сеть лось)
WayBest
ждем
weko
Окей, я пока ищу где с туннелей ловятся RI
orignal
<orignal> короче рассказываю план действий
orignal
<orignal> 1.на не флудфиле незапршенные флудфилы не принимаем
orignal
<orignal> 2. если флудфил то принимаем непосредственно с него естественно если совпадает адрес
orignal
<orignal> 3. если приходит через флуд то принимаем только ранее известные
weko
Блять заебало кикает постоянно
weko
Пойду туннели ускорю нах
weko
При отключении транзитного трафика, количество левых RI падает (у меня было 12-14к FFs)
weko
В виду имперического наблюдения можно сделать вывод, что источника два: получение RI с туннелей и lookup следующих роутеров (владельцы в основном пытаются использовать именно левые RI, потому что такая херня у всех)
orignal
так ты патч то сделай
orignal
только добавь проверку на себя там
weko
А
weko
Ну ок
weko
Что по поводу моего опыта?
weko
Там с 40 тысяч до 12 упало
weko
При чём при включении транзита резко пошло вверх
WayBest
лось а че за патч?
weko
[19:40:51] <orignal> только добавь проверку на себя там
weko
Крыл просто сказал про какие то другие проблемы, видимо я не так понял
WayBest
его разве не зарелизили?
orignal
WayBest ага чтобы атакующего его увидели?
WayBest
а что если это попытка понизить анонимность?
orignal
попроси у хида
WayBest
оке
orignal
у него есть
WayBest
понял, спрошу
weko
[19:43:50] <WayBest> а что если это попытка понизить анонимность?
weko
Тогда нет смысла работать в открытую
WayBest
я про вынуждение транзит рубить
weko
Ну это просто эксперимент
weko
Я проверил что оно так работает
WayBest
я понимаю
WayBest
тоже так думал
WayBest
я про другое
WayBest
то что отключая транзит мы себе анонимность режем
WayBest
частично конечно
weko
Ну у меня флудфил
WayBest
тогда норм
WayBest
а как обычным быть?
WayBest
только патч?
weko
Надо делать фиксы
orignal
а никто его и не рубит
orignal
ждать когда у меня будет время
weko
Проблема в том, что некоторые из них полноценно заработают после массого обновления
orignal
кто заработает?
orignal
тут есть большая проблема
orignal
первый раз с начала атак посоветоваться не с кем
WayBest
в каком плане?
WayBest
типа все под подозрением?
orignal
о том что делать
orignal
и не наломаю ли я дров если начну реализоваывать свои идеи
WayBest
пытка не пытка
orignal
типа никто не понимает в долной мере ))
WayBest
хуже вряд-ли сделаешь
WayBest
я могу потестить если надо
WayBest
еще народ наберем
orignal
idk ничего не смыслит а дрозд просто дурак
orignal
нет мне надо по внутренностям проткоолов
orignal
есть пара вопросов а спросить не у кого
WayBest
получается нужны те кто их писали?
orignal
нужен дед короче
orignal
но его нет
WayBest
а кто дед
orignal
zzz
orignal
кроме него никто не понимает
orignal
во знаю счас
WayBest
ну а по старинке никак?
WayBest
запустил проверил
orignal
jeff_ do you happen to know in which case we handle DataseLookup on non-FF?
orignal
так и придется
orignal
но ты же понимаешь старое определение ителлекта
orignal
это способность предсказать результаты работы не выполняя саму работу ))
orignal
счас его измененили ибо не натягивается сова на глобус
WayBest
ну понятно что быстрее будет с теми кто знает
WayBest
ну не всегда
WayBest
когда начинаются обратные процессы еще хуже получается
WayBest
кста лось, а нельзя ввести проверку подлинности бинарника?
WayBest
чтобы был режим который отвергает подключения с нод у которых патченный ш2з
WayBest
orignal: реально такое сделать или не выйдет из-за опенсурса?
WayBest
типа подписать бинарник и чекать подпись
WayBest
любое изменение бинарника ломать будет эту подпись
relaybot
13pizdabol: А java как тогда жить будет ?
WayBest
а жаву тоже подпишем
WayBest
не проблема
weko
Так может сразу сделать чтоб по 5$ платили в месяц за установку
weko
И работу
weko
Ну по подписке
WayBest
вопрос только в том как сделать эту защиту невыпиливаемой
weko
Никак
WayBest
ну надо как то блочить тех кто не соблюдает правила обмена ключами
weko
Так это нужно делать протоколом
WayBest
то есть чтобы нестандартное поведение приводило к блокировке
WayBest
причем по всей сети
weko
Понятное дело
WayBest
угу
WayBest
вот в протокол можно зашить проверку бинарника?
WayBest
просто многие сразу отлетят
weko
Ещё не факт что дело именно в этом
weko
По всей сети будет с обновлением
weko
Вроде 50-60% быстро обновляются
weko
[19:51:58] <weko> orignal: а RI через туннели идут же через DatabaseStore сообщения?
weko
WayBest: так я говорю, чего мелочиться, давай сразу по подписке сделаем
weko
Какер просто не сможет такие суммы осилить
weko
Если краткий ответ: нельзя
weko
по очень многим причинам
orignal
как правило через DatabaseStore
orignal
но можно и блоком RouterInfo
weko
[19:51:58] <weko> orignal: а RI через туннели идут же через DatabaseStore сообщения?
weko
[19:25:52] <weko> [19:24:22] <orignal> <orignal> 2. если флудфил то принимаем непосредственно с него естественно если совпадает адрес
weko
[19:25:52] <weko> Убираем публикацию RI через туннели?
weko
[18:28:03] <weko> orignal: если мы пытаемся обратится к флудфилу, но ключи оказываются неверными, то мы удаляем этот флудфил?
weko
Ладно, всё
weko
Просто из-за дискконнектов не понятно что пришло а что нет
orignal
так то то и оно что мы не знаем что ключи неверные
orignal
соединение устанавливается нормально
orignal
как бы с левым роутером а на самом деле с тем который склонировали
weko
Ну так если оно нормально устанавливается
weko
Почему тогда проблема есть
weko
Тогда хотя бы работало нормально (хотя это большая уязвимость!!)
orignal
потому что дальше начинается хуйня
weko
Дальше уже не можем передавать сообщения?
orignal
ты установил соединение отправил запрос на построение тоннеля этому ротуеру
orignal
а он разумеется свою запись найти не может
weko
Ааа
weko
Ну понятно
orignal
потому что она предназначена другому
weko
Тогда это совсем пиздец
orignal
погоди ка
orignal
а чем мы шифруем заголовки?
weko
Заголовки чего
orignal
пакета
orignal
ой бля дед перехитрил себя
weko
Пакета в транспортах?
orignal
мы шифруем их i
orignal
жопа короче
weko
Жили у дедуси два весёлых гуся, один i, другой s
orignal
придется таблицу делаеть static key->RI
orignal
причем ничего не мешал вместо i использовать ident роутера
weko
Задача хотя бы решаема
orignal
короче он со страдом сами себя перехитрили
WayBest
сами себе проблему создали?)
orignal
типа того
orignal
давайте мы не будет использовать ключи из I2P адрес а задавать отдельные
orignal
вот и дозадавались
weko
Бредово))
WayBest
типа из-за отвязки от ключа идентификации можно любой генерить?
WayBest
и гадить в сеть
orignal
любой нельзя
orignal
я же выше написал что полуилось
weko
orignal: тут кстати бы приходилась отправка RI в SessionCreated
weko
Тогда можно было бы проверять
weko
Совпадает или нет
orignal
да не надо RI
weko
Пригодилась*
orignal
хватило бы 32 байт швуте
orignal
ident
weko
Да
Vaybest
а как это все защитит от подмены этого добра?
Vaybest
оно подписывается приватным ключом?
orignal
я дятел
orignal
в SessionCreated же обязателен блок Address
WayBest
тогда надо подвязывать все на публичную часть
WayBest
иначе смысла нет
orignal
дед реабилитрован )))
weko
orignal: опааааа
weko
Ну всё
orignal
ага
orignal
а вот теперь надо проверить что мы с ним делаеми
orignal
то есть если в SessionCreate прилетел адрес не тот сразу в бан такой роутер
weko
++
orignal
вон какая польза от мозгового штурма
R4SAS
только учитывай что имеем дело с SSU а-ля UDP
WayBest
сладкое сьешь
WayBest
мозг надо подпитать
R4SAS
спуфиг ни кто не отменял
orignal
неее не то
R4SAS
спуфинг*
weko
Так там же шифрованное
orignal
Address это про IP адрес алисы
weko
orignal: боба же?
orignal
так что хуйня
orignal
алисы
orignal
так она свой IP и узнает
weko
Аа
weko
А как тогда он поможет проверить
orignal
никак
weko
А что тогда поможет))
orignal
приедтся менять протокол и вводить
weko
А это только с обновлением заработает. Но лучше так чем никак
weko
case eSSU2BlkRouterInfo:
weko
{
weko
// not from SessionConfirmed, we must add it instantly to use in next block
weko
LogPrint (eLogDebug, "SSU2: RouterInfo");
weko
auto ri = ExtractRouterInfo (buf + offset, size);
weko
if (ri)
weko
i2p::data::netdb.AddRouterInfo (ri->GetBuffer (), ri->GetBufferLen ());// TODO: add ri
relaybot
13pizdabol: И ещё джависты на обочине окажутся. Придется им как-то сообщить об обновлении протокола.
weko
break;
weko
}
weko
Мне ещё вот это сильно не нравится
weko
Может сильно ударить
orignal
как именно?
weko
Ну вот мне боб пришлёт 1000 таких блоков с гавном
weko
И я добавляю их всех в NetDb
orignal
я выше писал что надо делать
orignal
так тебе и алиса можно прислать разницы никакой
weko
Ничего хорошего в этом нет
weko
Просто использоваться не должно для всего подряд
orignal
pizdabol это измнение ничего не ломает
orignal
просто если будет блок то проверять
orignal
а нету то неп роверять
WayBest
ух со смыслом
weko
orignal: тогда нужно это в виде хотфикса выпускать
orignal
так я же выше написал план из 3=х пунктов
weko
Да окей
orignal
ну как будет время у меня
orignal
сделаю
orignal
в этом плане я сразу вижу изъян
orignal
довольно часто через исходящий тоннель посылают RI IBGW с назначением local
orignal
чтобы он не запрашивал
weko
Бред, такого быть не должно
weko
Деаноном пахнет
orignal
почему? довольно часто так делают
weko
Для владельца
orignal
нет почему?
orignal
он же посылает роутер начала другого тоннеля
weko
Потому что IBGW видит какой RI пришёл
orignal
нет IBGW ниче не видит
weko
А он может быть у всех разный
orignal
это роутер IBGW прилетает OBEP
orignal
у нас разные только лизсеты
orignal
вообще да логично
weko
Я не вижу тут пока что алгоритма атаки, но попахивает что в данном случае она есть
orignal
можно стать самоу IBGW потом подозрительному роутеру кинуть свой специально сформированный
orignal
да в принципе можно
weko
И я о том же
weko
Если и делать, то продумать все варианты и защиту от них
weko
Если возможно, конечно.
orignal
тут смотреть надо
orignal
но пока мы фильтруем только флуфдилы это нормально
weko
Ага
weko
Ну это я к тому, что если функционал транка не готов, то можно сделать ветвь и выпустить как патч 2.47.0.1
orignal
да есть что выпускать
orignal
но мне некогда счас
jeff_
orignal: i dont
jeff_
you may as well ask me what color socks i was wearing 10 years ago on the 3rd tuesday of july at 1130 am
orignal
maybe you remeber design
WayBest
:D
WayBest
jeff_: why not?
jeff_
nope