IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2025/12/15
~AreEnn
~AreEnn_
~R4SAS
~acetone
~orignal
~villain
@onon
&N00B
+Xeha
destiny hi I got warnings on all source files building with -DWITH_HARDENING=ON
destiny warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
destiny fixed by edit build/CMakeLists.txt
destiny in if(WITH_HARDENING) section add -O to CMAKE_CXX_FLAGS
destiny orignal please add optimization compiler flag to -DCMAKE_BUILD_TYPE=Release
orignal I'm not familiar woth cmake
orignal create a PR
destiny I know nothing about cmake aswell, I only know how I fixed but maybe it's not proper :(
orignal I use plane Makefile and it supports release version
destiny ah there are many ways to build, I thought cmake only
orignal type make DEBUG=N
destiny I see and in Makefile CXXFLAGS available for CIA protection flags -fPIC -fstack-protector, perfect thank you
agent_fsb у вас в i2psam дестанейшены херово валидируются
agent_fsb если в конце будет \n, это приведёт к неопределённому поведению
agent_fsb причём, судя по всему, оно идёт со стороны роутера
orignal а не пох?
agent_fsb Не боитесь, что роутер может случайно приватные ключи выплюнуть?
agent_fsb откуда-то же эти рандомные значения берутся
agent_fsb раз их не либа производит, значит этим занимается роутер
orignal так ты про i2psam или роутер?
orignal если про роутер рассказывай сценарий
orignal если i2psam то пох
agent_fsb|2 если через i2psam подключиться к дестанейшену, который заканчивается на \n, то на сервер придут рандомные данные. При этом данные на всём своём пути до сокета остаются корректными
orignal ну и в чем проблема?
orignal ну создатся кривой дестинейшин
orignal я не вижу тут модели угрозы
agent_fsb|2 так проблема в том, что клиент подключается к дистанейшену и отсылает рандомные данные
orignal if (!keys.FromBase64(destination))
orignal SendMessageReply(SAM_SESSION_STATUS_INVALID_KEY, true);
orignal а причем тут роутер?
orignal i2psam это не наша либа
agent_fsb|2 откуда тогда на сервер поступают кривые данные?
orignal ты о какой команде говоришь? STREAM CONNECT?
agent_fsb|2 вот пример кода
orignal ну и что там не так?
agent_fsb|2 мне в неткэт такая строка прилетает: "4JHEMsRrx2~zaa"
agent_fsb|2 откуда последние 2 а взялись я понимаю
orignal я не понимаю ко мне то какой вопрос
agent_fsb|2 откуда в пришедшем сообщении взялось "4JHEMsRrx2~z"?
orignal так погоди
orignal а ты сессию создал?
orignal по коду не видно
agent_fsb|2 SAM::StreamSession s("eepget");
agent_fsb|2 как бы он без созданной сессии к дистанейшену подключился?
orignal там же куча параметров
orignal так он и не поключается видать
orignal смотри сюда
agent_fsb|2 class StreamSession : public SAMSession
agent_fsb|2 StreamSession(const std::string &nickname,
agent_fsb|2 const std::string &SAMHost = SAM_DEFAULT_ADDRESS,
agent_fsb|2 uint16_t SAMPort = SAM_DEFAULT_PORT_TCP,
agent_fsb|2 const std::string &destination = SAM_GENERATE_MY_DESTINATION,
agent_fsb|2 const std::string &i2pOptions = SAM_DEFAULT_I2P_OPTIONS,
agent_fsb|2 const std::string &signatureType = SAM_SIGNATURE_TYPE);
orignal как оно долно работать
agent_fsb|2 эта куча параметров имеет дефолтные значения
orignal ну допустим
agent_fsb|2 поэтому они не обязательны
orignal ты созданную сессию в веб консоли видишь?
orignal что ты написал вместо destination?
orignal s.connect("destanation\n", false);
orignal вот здесь
agent_fsb|2 дестанейшен до неткэта
orignal а именно в каком виде
agent_fsb|2 я поставил нэткэт слушать, и сделал ему туннель в tunnels.conf
orignal base64 от адреса?>
agent_fsb|2 если собираешься код тестить, то лучше цикл убери
orignal и он у тебя ущел с \n после чего ты утверждаешь что в ответ пришла какая то зрень вместо ошибки
orignal не собираюсь
orignal так а когда без \n нормально соединяется?
agent_fsb|2 если хочешь, я могу видос записать
orignal не надо
orignal в пришедшем куда? на сервер?
orignal static const char* streamConnectFormat = "STREAM CONNECT ID=%s DESTINATION=%s SILENT=%s\n";
orignal так понятно?
agent_fsb|2 что понятно?
orignal у тебя \n после DeSTINATION это конец соощения
orignal все что после это стало восприниматься как данные
orignal адресованные той стороне
agent_fsb|2 как-то это странно
orignal почему?
agent_fsb|2 почему тогда на сервер не пришло SILENT=%s\
orignal вот это уже бага
agent_fsb|2 b hfpdt jnrhsnbt cjtlbytybz yt cjplf`n yjdsq cjrtn
agent_fsb|2 и разве открытие соединения не создаёт новый сокет
agent_fsb|2 через который все данные идут на дестанейшен
orignal ты открываешь сокет
orignal в него пишешь STREAM CONNECT
orignal потом в него же идут данные
orignal сразу после STREAM CONNECT
orignal естественно ты должен снчала дождаться ответа а уже потом писать
orignal а когда сразу после него в принципе тоже можно если идет неправильно я починю
agent_fsb|2 тогда почему эти данные всегда разные?
orignal потому что бага
orignal это я поправлю
orignal if (rem > 0) // handle follow on data
orignal memmove (m_Buffer, buf + len + 1, rem); // buf is a pointer to m_Buffer's content
orignal m_BufferOffset = rem;
orignal это вот отсюда берется
orignal я проверю
orignal agent_fsb|2 я нашел багу
orignal счас проверю и закоммичу
agent_fsb|2 а в чем проблема была?
orignal неправильно длина параметров считалась
agent_fsb|2 тоесть всётаки был выход за пределы буффера?
orignal нет
agent_fsb|2 ну и отлично
agent_fsb|2 я спать
orignal в буффере том данные от SESSION CREATE остались
orignal вот они и выдавались
orignal погодит
orignal а проверять кто будет? ))
agent_fsb|2 ща затещщу
agent_fsb|2 в какую ветку коммит был?
orignal твой сценарий то валидный
orignal просто должно передаваь после \n как есть
orignal забирай последний коммит
agent_fsb|2 из openssl?
orignal естествено
orignal то есть павильный сценарий тебе должно на сервер прилетать SILENT=
agent_fsb теперь нормально работает
agent_fsb всем спокойной ночи
orignal редкий сценарий