| Comments: |
ну, просто парзилку IP можно столькими способами сделать… зато заметь, strncpy(), заботятся о buffer overflow!
>и так ВЕЗДЕ, где нужен отладочный вывод а я давно говорю, что copy и paste должны вызываться комбами из как минимум 128 нажатий. желательно, рандомных. а то и сам грешу, бывает…
я не могу понять зачем вообще строку копировать, ведь функа ее не меняет, а парсер - простейший автомат. и если уже разбили на куски, то почему *= +=, а не atoi? чудовищно одним словом. это не кодер, а создание хаоса. )))
> комбо точно! Ж-)
>я не могу понять зачем вообще строку копировать если бы не k&r, я бы предположил, что они так пытаются обеспечить потокобезопасность (ничего больше придумать не могу).
а, не, вот: strtok() же в строку нули хуячит в полный рост! точнее, может так делать, нигде не запрещено — ну, и часто делает. за что я его и не люблю. видимо, автор оригинала об этом знал. так что без копирования как раз поменяла бы.
такой парзер вообще можно сделать однопроходным, без всей этой ерунды. с проверкой на переполнение вдобавок.
хотя, конечно, это всё херня, потому что форм записи IPv4 немеряно, и годная aton их все распознаёт. но нынешние сумрачные гении не в курсе, видимо.
внутри апача не так много вариантов IPV4/6
большая часть хакеров - это просто пиздец, даже студентота и то лучше (понтов меньше)
>внутри апача не так много вариантов IPV4/6 лучше перебдеть, чем недобдеть! ну ладно, упёрло молодое дарование функцию, не хочет из библиотеки дёргать — так почему тогда не пойти и не упереть её из glibc, например? там кода-то…
дарование не знает, что эта функа есть. а glibc оно юзает от души, ведь идет сборка на целевой системе из сырков + apxs, это ж школота - модифицировать бинари не умеют, там же еще поди скриптов на шелле вагон, чтобы весь девел вытащить ))))
беру свои слова обратно, оно знает, что есть ntoa
if (rec.ut_addr > 0) { struct in_addr address_struct; address_struct.s_addr = rec.ut_addr; ip = inet_ntoa(address_struct); dl_SendIPToLocalBlacklist(f); }
толи тащили все подряд со stackoverflow, то ли методом проб и ошибок, а может просто php головного мозга
блять. посмотрел на предыдущий пост (address_struct unused), и точно:
void dl_SendIPToLocalBlacklist(ap_filter_t *f) { char *filename = dl_genFilenameBlacklist(f); FILE* fd; fd = fopen(filename, "w"); if (fd != NULL) { fclose(fd); } }
а, понял, это файл-флаг, только забанит он ip текущей сессии, а не ip из utmp
ВСЕ! хватит с меня глубин хакерской мысли.
хотел пошутить на тему того, что скоро будут с собой таскать собраные шланг+ллвм для всех нужных архитектур и всё остальное нужное в архиве, но потом подумал, что это может и не шуткой оказаться.
с нетерпением жду, когда они найдут что-нибудь вроде DynamoRIO и попробуют его прикрутить. лулзов должно быть значительно больше.
"и не шуткой оказаться."
пытаются. только для того, чтобы хакать (в хорошем смысле этого слова) LLVM нужны мозги...
пока видел только переделанные tinyc и llvm на предмет поксоренных строк и перестановок базовых блоков, но ради такой фигни можно и не брать продвинутые тулзы, все это можно сделать прямо в экзешке, а то, что нельзя, ну так это опять-таки нужны мозги, так что галктеко в безопасности. | |