IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2025/06/03
~AreEnn
~AreEnn_
~R4SAS
~acetone
~orignal
~villain
@onon
&N00B
+Xeha
GFW
Nikat
Opax
Trusishka
anontor2
b3t4f4c3
chch
duck
fidoid
grimreaper
guest7
ignisflu
iiii
karamba_i2p
not_bob_afk
not_human
osoznayka
poriori
profetikla
qend
r3med1tz
rc13
segfault
slfd
soos
spider
tahoe
teeth
tensor
un
vougel
weko
whothefuckami
tetrimer Ломится кто-то довольно настойчиво:
tetrimer NTCP2: RouterInfo verification failed in SessionConfirmed from 140.246.136.172:52663
tetrimer Китаец по whois.
Vort у меня весь лог этим заспамлен
Vort IP другой, но суть та же
Vort и это длится уже минимум полгода
GFW <lost+skunk> Китайцы атакуют ш2з?
tetrimer GFW: Не то, чтобы атакуют, но грузят зазря.
orignal это значит подпись не неверная
orignal а их RI
orignal короче выдают себя за другого
Most2 15.<ju> Чем китайским чекистам полюбилась i2p?
Vort "<~orignal> это значит подпись не неверная" по-моему там на одно сообщение несколько причин
Vort чтобы точно понять, надо словить этот RI и рассмотреть получше
Vort "<tetrimer> GFW: Не то, чтобы атакуют, но грузят зазря." и не то чтобы грузят. у меня таких сообщний штук 100 в час. так себе нагрузка
Vort формально конечно нагрузка, но это явно не цель
tetrimer Скорее - зондирование, или проверка на живость узла.
orignal нет там разные
orignal i2p::data::RouterInfo ri (buf->data () + 4, size - 1); // 1 byte block type + 2 bytes size + 1 byte flag
orignal if (ri.IsUnreachable ())
orignal LogPrint (eLogError, "NTCP2: RouterInfo verification failed in SessionConfirmed from ", GetRemoteEndpoint ());
orignal да ты прав там любое кривое RI
orignal но там должна быть ошибка в логе перед этим что именно
orignal tetrimer посмотри что перед этим в логе
tetrimer orignal: У меня логи не очень подробные.
orignal ну там error должно быть
tetrimer 13:23:21@925/error - NTCP2: Wrong static key in SessionConfirmed
tetrimer 13:23:31@925/error - NTCP2: Wrong static key in SessionConfirmed
tetrimer 13:24:05@925/error - NTCP2: RouterInfo verification failed in SessionConfirmed from 122.225.88.250:51976
tetrimer В ошибках NTCP2 - нет названия туннеля, в отличие от SSU2
tetrimer 13:25:14@472/error - SSU2: Wrong static key in SessionConfirmed from ZR1x
tetrimer 13:25:20@472/error - SSU2: Non zero packet number in SessionConfirmed
tetrimer 13:25:31@472/error - SSU2: Non zero packet number in SessionConfirmed
tetrimer 13:26:00@472/error - SSU2: RouterInfo in SessionConfirmed is from future for 11754 seconds
orignal надо смотреть ошибки RouterInfo
nnm Wrong static key
orignal ну вот этот как раз попытка атаки
nnm отаке онотелей!!
nnm пыщ пыщ
orignal так это старая атака
orignal попытка забивать сеть левыми роутерами
onon А SSU2 так и не починили
orignal ну если дед не хочет упорно то что я сдеоаю?
orignal приходится костыли городить
onon Делаешь свою несовместимую реализацию
onon Для i2pd
tetrimer И процесс SSU2 жрет ресурсы: wcpu=8,51% i2pd-g2.57.0{SSU2}
onon А с явой пусть NTCP2 коннктит
orignal tetrimer а NTCP2 сколько жрет?
tetrimer До 3.6 изредка
orignal ну и что не так?
tetrimer Не знаю: просто обратил внимание, что процессом SSU2 нагрузка больше.
orignal она всегда больше
tetrimer Сейчас общая за 20 процентов вылетает, а раньше - как-то было ощутимо меньше.
orignal потому что меньше дропать стали
Vort "<~orignal> ну там error должно быть" Wrong static key в цитате на полминуты раньше чем RouterInfo verification failed
Vort не может между созданием объекта ri и проверкой ri.IsUnreachable пройти столько времени
orignal нет конечно
orignal worng static key это про другое
Vort тогда почему RouterInfo verification failed есть, а соответствующего error с причиной нету?
orignal потому что он не показал
orignal там должна быть ошибка RouterInfo:
Vort думаю там не было. у меня тоже нету
Vort [03/Jun/2025:14:16:36 +0300]@144/error - NetDb: DatabaseLookup for zero ident. Ignored
Vort [03/Jun/2025:14:16:50 +0300]@460/error - NTCP2: RouterInfo verification failed in SessionConfirmed from 103.1.185.106:50879
Vort [03/Jun/2025:14:17:10 +0300]@136/error - SSU2: RouterInfo in SessionConfirmed is from future for 5677 seconds
orignal LogPrint (eLogError, "RouterInfo: Signature verification failed");
Vort "DatabaseLookup for zero ident" - это мне посчастливилось стать ответственным за нулевые ключи сегодня
orignal LogPrint (eLogError, "RouterInfo: Malformed message");
Vort orignal: ну вот тебе загадка почему их нету. я тоже код просмотрел и удивляюсь теперь
Vort можешь и в своих логах перепроверить
orignal ну вот давай искать на какой строчке ставит
Vort я думаю эти ошибки у всех лезут
orignal m_IsUnreachable = true;
nnm Signature verification failed
orignal посмотри целочку вызовов начиная с конструктора
nnm тоже самое что worng static key
orignal нет не то же самое
orignal в одном случае неверная подпись
orignal в другом ключ левый
orignal Vort я думаю вот здесь
orignal if (!m_Buffer)
orignal m_IsUnreachable = true;
orignal влпрос лишь почему
tetrimer Я тоже сейчас переключал лог на уровень info и ничего членораздельного перед строкой verification failed - не увидел.
Vort вот поэтому я и говорил что надо RI ловить
Vort но подозреваю что для этих ошибок узел должен быть прогрет, что затрудняет отладку
Vort orignal: а я думаю здесь: if (!m_SupportedTransports || !isNetId || !m_Version)
Vort вспоминаю, что когда-то я уже гонялся за этой фигней
Vort там то ли адресов в RI не было, то ли фигня типа 0.0.0.0 или 127.0.0.1
Vort думаю, стоит расщепить это условие на 3 части и сделать 3 ошибки в лог
Vort чтобы больше этому месту не удивляться
orignal это какая строка?
Vort 495
orignal вопрос в том почему не печатает ошибку если вызывается из конструктора
orignal мне непонтяно почему ее в логе нет
orignal а ну понятно
orignal забей
orignal и да надо в лог печтать
Vort такс. и куда теперь данные сливать? privatebin.i2p NAME_NOT_RESOLVED cake.i2p NAME_NOT_RESOLVED
Vort я хотел скинуть один из проблемных RI
tetrimer Я уже свой privatebin поднял от безысходности. :(
orignal на cake.i2p кидай
onon Лежит
orignal пни дрозда
orignal это ж его
tetrimer Base64 хэш для регистрации домена - это та строчка, которую в браузер вбиваю?
onon Не в браузер ты вбиваешь b32
tetrimer А, значит надо лезть в веб-консоль.
onon А b64 в вебконсоли на странице с destination
onon Дрозд предлагает попробовать это: upload.arav.i2p
tetrimer на inr.i2p зарегистрировал paste-temp.i2p, но надо ждать, когда его зааппрувят.
orignal так рег же работает
Vort в Visual Studio, скорее всего, до сих пор нет фичи копирования из памяти
Vort так что вот так...
Vort NTCP2: RouterInfo verification failed in SessionConfirmed from 150.129.102.166:62679 скорее всего
Vort кстати если i2pd "поставить на паузу", а потом отпустить - то валится хренова туча ошибок
Vort в основном, SSU2: Received queue size 2560 exceeds max size2500 и NetDb: New LeaseSet2 validation failed:
Vort ну это скорее всего не особо важно, на всякий случай говорю
Vort ещё и крешнуло при выходе... сейчас стек скину. опять же на всякий случай
orignal счас гляну
Vort Exception thrown at 0x0000000077B12CA4 (ntdll.dll) in i2pd.exe: 0xC0000005: Access violation writing location 0x0000000000000024.
orignal и что с тем роутером не так?
Vort я думал удастся глазами увидеть. если нет, то надо в нормальный формат перегонять
orignal а ошибок в логе не было?
orignal может там подпись не та
Vort только NTCP2: Wrong static key in SessionConfirmed
Vort но это же не то?
Vort я почти уверен, что там с адресами что-то не то
orignal ошбки и RouterInfo
Vort не было
Vort их почти никогда нету
orignal там же вроде адреса не публикуются
Vort в основном все verification failed "тихие"
orignal он флудфил
orignal но без адресов
Vort ну там какие-то ipv6 я видел
orignal там прямые или интродьюсеры?
Vort а блин. я наверно две штуки RI захватил
Vort короч первый RI важен
orignal там есть router.version и netid?
Vort netid нету наверное
Vort это наверно вообще огрызок какой-то. хм
onon TCP2.@.caps=.4;.s=,HvlEg-yncm1JIoT74C8uo5Z~2ApSgqhtcKScM~H9034=;.v=.2;..........SSU2.Й.caps=.4;.i=,VAzBrLmR1oPKFl4f1hhZrDbGs72hk8e4phiiwcU-rlg=;.iexp0=
onon Blinded message
Vort нету netid. но почему?
onon уzЛ.±/§ѓESDмq7#ЪЧX.Фд.Ѕ-.ЃИЌ.`.®оЂ.aш.?О.ИЙ—¬Tе,Ѓіm.zµҐ¬QЦ¦ь.б..421;.s=,2oCtDV0L8t6tMa8MWejzhbHtaiH6hCRmiid860D1L20=;.v=.2;..........SSU2.·.caps=.C;.hostОшибка:510380:2249:ffff:51cf:752:49b6:7b5f;.i=,hTjuhMaRT8BXHkrVCMY3tagxt21xMkpU6th~IOHlQYIОшибка:5091500;
onon Blinded message
Vort cost там 14 и 15, похоже на i2pd
Vort вот файл в нормальном виде: upload.arav.i2p/PfEsf83osMdq5C_UBDgPtW5Trq5ewadZCRED58MVrjw/ri.dat
onon NTCP2.@.caps=.4;.s=,HvlEg-yncm1JIoT74C8uo5Z~2ApSgqhtcKScM~H9034=;.v=.2;..........SSU2...caps=.4;.i=,VAzBrLmR1oPKFl4f1hhZrDbGs72hk8e4phiiwcU-rlg=;.iexp0=.1748960084;
onon Blinded message
Vort в коде создания нового RI вообще нету опции чтобы без netId его сделать:
Vort так что похоже на хакнутый клиент. но зачем...
Vort интересно, принимает ли java такие RI
Vort наверное нет. в ченжлоге вот такое нашлось: "Banlist: Increase ban time again for routers without netID"
Vort markUnreachable(peerHash);
Vort _context.banlist().banlistRouter(peerHash, "No network specified", null, null, _context.clock().now() + Banlist.BANLIST_DURATION_NO_NETWORK);
Vort ахаха. не ожидал такое увидеть:
orignal что там?
Vort разработчики java знают о багах i2pd больше, чем мы? )
Vort "// old i2pd bug, possibly at startup, don't ban forever"
Vort только вот нифига это не "at startup", тот узел - 150.129.102.* долбится ко мне уже несколько суток
Vort короч логирование явно надо доработать. хотя бы чтоб понять, как часто косяки с адресами, а как часто - с netId
orignal ну так я же с дедом осбужадаю
orignal с netid точно нету
orignal с адресами это старая тема
orignal роутеры без netid это точно не наш i2pd
Vort ну по cost`ам похоже на i2pd
Vort я просто логики не вижу в такой модификации клиента
Vort зачем? чтобы вся сеть забанила? а дальше что?
orignal ну мало ли какие у людей идеи
orignal факт что i2pd всегда ставит netid
onon Кто-то в Китае запускает i2p, китайский майор видит это, берёт его RI и пытается выдавая себя за него забанить его на всех узлах i2p
onon Как вам такое?
orignal а откуда китайский майор берет его ключ?
onon Так у нас ошибка что ключ не верный
onon Или это про другое
Vort ошибка просто из-за того что нету netid
onon Тогда ерунду написал
orignal onon это другой ключ
orignal сначала то проверяется подпись
tetrimer В логе же пишет:"confirmed session", т.е. сессии создаются и потребляют какой то ресурс.
orignal там напитаешь SessionConfirmed
orignal это сообщние такое
tetrimer Ресурс такой коннекшен потребляет? Значит есть потенциальный ddos.
orignal нет
orignal соединение сразу закрывается
Vort любая активность потребляет ресурсы
Vort у атакующего задача потратить поменьше, нагадить побольше
Vort вот и ищет подходящие методы
orignal ну да оно отжирает x25519
Vort а если искать не хочет, тогда просто гадит трафиком и всё
orignal нет ну раз до SessionConfirmed доходит то не просто гадит
Vort да я имею в виду через SAM
Vort просто туннели с мусором гоняет
Vort самое простое
Vort а вот такой анализ как я говорю вполне вероятно что вообще никто не делал
Vort разве что когда атака на флудфилы была
Vort когда один гадящий узел всю сеть тормозил
orignal а ну такое само собой
segfault когда следующий релиз планируется?
R4SAS orignal: тут центось 8 не хочет везде собираться
R4SAS Found Boost: /usr/include (found version "1.66.0")
R4SAS Found OpenSSL: /usr/lib64/libcrypto.so (found version "1.1.1k")
R4SAS RouterInfo.cpp:253:65: error: no matching function for call to 'make_address...
orignal а как предыдущий собирался?
Vort std::string(value) будет норм?
orignal да привести надо
R4SAS собирался вроде
R4SAS я тогда выгружал
orignal ну вот поправь как Vort говорит
orignal ну или не выгржуай а только 9 ))
R4SAS ну дык ты коммитов уже напихал
orignal так не собирай 8 и все
orignal кто ж думал что там кривой буст
orignal и вообще она же eol вроде
onon Откатываем коммиты, фиксим, двигаем таг, релизим, снова накатываем коммиты
onon Так?
R4SAS нет конечно
R4SAS можно просто ветку сделать
R4SAS значит центось полностью заброшена?
onon А можно просто забить на центосов
R4SAS попробую 10 поставить собираться
orignal 8 уже eol
orignal ее фтопку
orignal оставь федю и хватит
segfault xp с 2014 eol. её тоже в топку?
Vort интересно выходит, что для винды 24 летней давности сборку сделать проще чем для 6 летнего линукса
orignal на 6 летний линукс можно поставить новый компилятор
orignal а для винды MSYS
Vort так в чём тогда проблема с centos ?
orignal там какой то компилятор старый
orignal в 8-ой
orignal 8 или 9
orignal в стандартной
orignal у нас на работе когда то был редхат 8
Vort если есть возможность поставить новый, специально для сборки, то почему бы этого не сделать?
Vort другое дело если там буст прибит гвоздями как-то
Vort но тут уже не знаю
Vort может статически прилинковать можно
orignal вряд ли там в билд системе есть
orignal да нет там проблема не в бусте а в компиляторе
R4SAS если билдать статикой, то можно везде запустить
R4SAS с хрюшей то же самое, там приходится пересобирать библиотеки чтобы собрать правильно
Vort да там авторы MSYS2 фигню творят
Vort заморозить версии и ещё долго норм будет
R4SAS в линях это glibc, а в msys2 это хедеры и crt
Vort вообще не хватает оффлайн сборок компиляторов, я уже даже подумывал свою сделать, для сборок под старые версии винды
Vort чтобы не зависеть от произвола мейнтейнеров репозиториев
Vort по типу DJGPP
R4SAS mingw
R4SAS и всё
Vort нигде не нашёл инструкции для его установки. можно плохо искал
Vort просто кучу архивов навалили и всё. может когда-то и разгребу.. хз
orignal самая первая версия i2pd под винду была собрана mingw
orignal MSYS стали использовать позднее
Vort ну так там по аналогии с MSYS2 есть установщик, который качает последние версии. похоже
Vort а если надо не последние?
Vort допустим, мне надо не под i686, а под i486
Vort ну да не важно. мне просто надо этим заняться. явно решение есть, просто не на поверхности
orignal так mingw это тот же gcc
orignal что в параметрах укажешь под то и соберет
Vort либы там уже пред-собранные
Vort и в либах напихано несовместимых инструкций
Vort то есть, это надо всё пересобрать. или найти старую версию
orignal я полагаю там есть под всех поддерживаемые архитектуры
Vort а для "всё пересобрать" тем более гайд найти сложно будет
Vort ах да, ещё одна мелочь: "под то и соберёт" означает, что это надо собирать на другом компе
Vort так что тут двойная проблема. бегать от компа к компу вариант не супер
orignal там можно в параметрах указать под что хочешь
Vort имеешь в виду сборку самого gcc+либ или прикладной софтины с их помощью?
R4SAS 10й тоже не собрался, надо фиксить spec файл
R4SAS в отдельной ветке сделаю
R4SAS скоро деб и убунту залью
Vort то есть, у меня была вот такая проблема: запускаю msys2-i686-20160205.exe - получаю креш потому что нет поддержки некоторых инструкций на старом компе
orignal да зачем?
orignal лучше под роки тогда сборку
Vort следующая идея - скачать mingw, но подозреваю что с его онлайн установщиком будет та же самая проблема
orignal Vort кстати msys2 на восьмерке отлично работает
R4SAS а где оно собирается?
orignal там какой то двуядерный амд
orignal R4SAS полагаю там же где редхат
orignal по сути это и есть редхат
R4SAS в fedora copr нет его
orignal ну нет значит
orignal кстати заметь под федю все собирается
orignal а редхаты это же просто версии федоры
orignal нынче
Vort orignal: хех. я думал они дропнули поддержку 8ки. но они дропнули 8.0, а 8.1 оставили. интересно
orignal ну разумеется 8.1
orignal не 8.0
orignal 8.1 вообще много что поддерживает кстати
R4SAS 8.0 это капитальная порнуха
R4SAS её и не надо тащить
orignal я больше скажу я там поставил вируталбокс
Vort хотя не совсем так. там только со старым инсталлятором можно на 8.1 поставить
orignal и в нем запустил беос ))
orignal ну так поставил старым а потом сделал апдейт
orignal до последних версий
Vort кстати, ещё один вариант для старых ОС - это кросс компиляция
Vort так что до невозможности поддержки ситуация далека
Vort даже для DOS можно с помощью GCC 9 собирать (а может и выше)
Vort правда в случае i2pd портировать для DOS смысла мало
orignal под досом тредов нет
orignal villain в свое время интересовался ))
Vort ну хедер есть. надо будет попробовать
WebClient21 > там какой то двуядерный амд
WebClient21 а я думаю, почему сборки появляются через 12 часов после релиза
WebClient21 неужли нет денег на впску нормальную?
R4SAS а ты готов донатить на нормальную машину?
R4SAS впс не пойдет для таких дел
R4SAS плюс для armhf и arm64 нужна нормальная машина на минимум arm64
R4SAS ни каких qemu
WebClient21 у лося 3к в битках. можно бу комп на ксеоне с 20 ядрами найти меньше чем за 100 баксов
orignal у меня где то валяетс i7 подобранный на помойке
R4SAS ну так у меня не совсем дохлый сет
orignal проблем с железками нету
R4SAS просто я обычно ставлю собирать и ухожу по делам
R4SAS а потом прихожу и всё компаную, заливаю в репу и тд и тп
WebClient21 а что за арм вы с помойки вытащили?
R4SAS я предвкушаю что будет вопль "а че ci/cd?" - а то, что оно где то, на стороне, и не умеет arm64
WebClient21 не, просто железка интересна
R4SAS у меня полноценная arm64 железка, на ней собирается тоже
R4SAS апельсинка 5-я
R4SAS к сожалению только одна
WebClient21 ебануться
R4SAS и она собирает довольно быстро, быстрее малины 4-й
WebClient21 ну с другой стороны арм относительно новый, найти копеечный ксеон вряд ли получится
WebClient21 только недавно начали серверные процы на арме появлсяться
R4SAS ну, сейчас нормальные машины на арме по стоймости где то 400 зеленых
Vort погуглил я про треды в DOS: они вроде и есть, да не совсем (то есть, через жопу, просто сделать #include <thread> не достаточно). ну и ладно
R4SAS *** пошел разбираться с ведром ***
WebClient21 на сколько я знаю, ксоены такие дешевые, потому что это китайцы покупают бу старье, возможно поломанное, от всяких гигантов типа амазона и гугла которые этими процами пользовались 10 лет назад.
WebClient21 вытаскивают че рабочее, че не рабочее у себя печатают и выходит дешевый набор с 20 ядрами + мать + 16 гигов оперативы меньше чем за 100 баксов
WebClient21 а посколько арм процы довольно новые, такого количества бу старья просто еще нет
orignal никогда не видел тредов под досом ))
onon Нашёл я багу которая завешивает стрим
onon Надеюсь что она была одна
orignal чини
onon Там проблема была в том, что если у нас клиент Choked и именно в этот момент у нас сломался исходящий маршрут, то он не мог переключиться
onon Потому что постоянно таймер переотправки перезапускал
onon Да, такой вот проёб у меня в логике получился.
orignal посмотрю позже
onon А ещё смотри какая у нас ситуация. В случае, если у нас осталось в лизсете два лиза и они оба истекают, то мы будем переключаться между этими лизами при каждой отправке пакетов.
onon Я вот чего надумал: добавляем переменную и пишем туда tunnelID предыдущего лиза при смене.
onon А перед новой попыткой проверяем, если совпадает - то не меняем.
onon Естественно при таймауте обнуляем переменную
onon Чтобы менять лиз если нам не отвечают через этот
onon Такая схема не будет работать если таких лизов три и больше, но я думаю это редкая ситуация.
onon Что думаете?
orignal да так и надо делать
orignal но смотри что
orignal может лиз не работать с одним исходящим и работать с другим