Методы борьбы с ботами - распространителями вирусов

Общение админов хабов и их юзеров.
Аватара пользователя
RoLex
Сообщения: 51
Зарегистрирован: 01 апр 2011, 09:39
Хаб: nmdcs://russia.feardc.net:411
Откуда: Швеция
Контактная информация:

Сообщение RoLex »

Единственное что мне понравилось из твоих идей это проверка расширения перед проверкой названия, тут действительно меньше циклов. Про формат кода - у каждого программиста есть свой стиль, код он пишет по своему. Докажи чем уровень вложенности влияет на производительность?

Как бы там нибыло, я переписал скрипт, зацени.

А вот это вовсе не понял, обьясни пожалуйста:
HackFresse писал(а):Добавление в sets надо дополнительно проверить, при переборе всех conf.file в цикле может проскочить повторное добавление, если один файл назван как "windows ключи активации (для поиска serial keygen patch).zip". Т.е. заносить поисковый ответ в таблицу при первом совпадении из списка, один поисковый ответ - одна запись в таблице срабатываний
Аватара пользователя
MaxFox
Сообщения: 156
Зарегистрирован: 01 дек 2009, 14:57
Хаб: dchub://AllAvtovo.ru
Откуда: Санкт-Петербург
Контактная информация:

Сообщение MaxFox »

HackFresse писал(а):Дата нужна обязательно.
адрес хаба со срабатыванием,
nick бота,
ip бота,
список стоп-слов, на которые он отозвался (из секции настроек скрипта). на разных хабах могут быть разные условия, по которым банить
список из Detected files (тут уже непонятно, нужно ли оно. просто дополнить информацию из пункта выше)

Давать возможность добавлять "только своим", выставить лимиты на добавление. это самая простая часть
поставь себе хотя бы notepad++, он ахрененно сворачивает, при необходимости операторные скобки...
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

>>Докажи чем уровень вложенности влияет на производительность?

Сложные структуры сложны для понимания. Их тяжело писать, тяжело модифицировать и наращивать функционал. И тяжело оптимизировать
RoLex писал(а): А вот это вовсе не понял, обьясни пожалуйста:

HackFresse писал(а):Добавление в sets надо дополнительно проверить, при переборе всех conf.file в цикле может проскочить повторное добавление, если один файл назван как "windows ключи активации (для поиска serial keygen patch).zip". Т.е. заносить поисковый ответ в таблицу при первом совпадении из списка, один поисковый ответ - одна запись в таблице срабатываний
в код заполнения таблицы особо не вчитывался (потому что сложно =)), просто указал на возможный нюанс, просто дополнительно проверить. участок про
Спойлер

Код: Выделить всё

  if sets.user [nick] then
              if sets.user [nick][path] then
                if not sets.user [nick][path][name] then
                  if math.abs (sets.user [nick][path][""] - tonumber (size)) <= conf.diff then
                    sets.user [nick][path][name] = tonumber (size)

                    if getitem (sets.user [nick][path]) >= conf.find then
                      if conf.verb == 2 then
                        local feed, list = "", ""

                        for fame, fize in pairs (sets.user [nick][path]) do
                          if # fame > 0 then
                            list = list .. " " .. path .. fame .. " | " .. getsize (fize) .. "\r\n"
                          end
                        end

                        list = list:gsub ("%$", "&#36;")
                        list = list:gsub ("|", "&#124;")

                        feed = "Infected user detected:\r\n\r\n"
                        feed = feed .. " Nick: " .. nick .. "\r\n"
                        feed = feed .. " IP: " .. getaddr (nick) .. "\r\n"
                        feed = feed .. " Found files:\r\n\r\n"
                        feed = feed .. list

                        VH:SendPMToAll (feed, sets.feed, conf.feed, 10)
                      elseif conf.verb == 1 then
                        VH:SendPMToAll ("Infected user detected with IP " .. getaddr (nick) .. ": " .. nick, sets.feed, conf.feed, 10)
                      end

                      VH:KickUser (sets.from, nick, conf.kick)
                      sets.user [nick] = nil
                      return 0
                    end
                  end
                end

                sets.user [nick][path][""] = tonumber (size)
              else
                sets.user [nick][path] = {
                  [""] = tonumber (size),
                  [name] = tonumber (size)
                }
              end
            else
              sets.user [nick] = {
                [""] = os.time (),
                [path] = {
                  [""] = tonumber (size),
                  [name] = tonumber (size)
                }
              }
            end
          end

Код: Выделить всё

if not sets.user [nick][path][name] then *добавление+обработка*  end
да, добавление в таблицу будет один раз

Но зато все следующие циклы будут проходить вхолостую. T.е. если на первом расширении и на первом стоп-слове запись уже создана, то все последующие обработки будут вредной нагрузкой, (count(conf.exts)-1)*(count(conf.file)-1)*все_проверки_и_регулярки. нужен выход из циклов при первом срабатывании.

Это если считать производительность машинную. Но намного дороже производительность человеческая (время, затраченное на понимание и модификацию)
Аватара пользователя
RoLex
Сообщения: 51
Зарегистрирован: 01 апр 2011, 09:39
Хаб: nmdcs://russia.feardc.net:411
Откуда: Швеция
Контактная информация:

Сообщение RoLex »

@ HackFresse

Ты мне одновременно говоришь что ты не знаешь Луа, и тут же говоришь что тебе сложно понять мой код. Учи Луа и хватит выносить мой мозг.

Все нормально в коде заполнения таблицы, у меня все идеально там, это ты просто не понимаешь какую роль там играет return 1 после итерации расширений и названий файлов.

Да и вобще про циклы названий и расширений, функция VH_OnParsedMsgSR() вызывается чаще по запросу юзеров на хабе чем по запросу моего скрипта, она выдает результаты пассивным юзерам на их поисковые запросы, там чаще всего встречается то что мой скрипт никогда не будет искать, потому он скорее всего будет проходить полный цикл без результатов, и это случается несколько раз в секунду.

Не надо меня учить как правильно писать код, я это делаю с 14 лет. То что ты можешь сделать - это дать больше идей по ключевым словам в названиях вирусов.
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

"Ты мне одновременно говоришь что ты не знаешь Луа, и тут же говоришь что тебе сложно понять мой код. Учи Луа и хватит выносить мой мозг." - это абсолютно то же самое, если я скажу "вот ты никак не можешь понять, что я тебе говорю, учи русский язык". *DONT_KNOW*

Сложно понять не из-за того, что это LUA такой тяжелый, а потому, что слишком мудрёно на нем написано там, где можно и нужно всё упростить.
потому он скорее всего будет проходить полный цикл без результатов, и это случается несколько раз в секунду.
В этом-то и проблема, что "скорее всего" в том месте, которое выполняется очень часто, а значит, требует оптимального алгоритма. "Скорее всего" от человека, который делает это с 14 лет и несомненно знает про всякие(общепринятые) понятия и техники и про "Докажи чем уровень вложенности влияет на производительность" спрашивает просто ради лулзов.

Кстати, "с 14 лет" вообще не аргумент - я бегать научился (и периодически это делаю) в очень малом возрасте, но почему-то куча людей делает это лучше. Но я не парюсь по этому поводу. Если кто-то скажет лишний раз "чел, следи за дыханием" - "ну, спасибо, уже слежу/постараюсь/зачем следить/ у меня своя методика". И всё, побегу дальше. Или пойду дальше.

Сделать я могу много чего, но весь вопрос в целесообразности.
"Ну-ка сделай лучше" меня тоже не особо зацепит. Более подробно разбираться в LUA у меня пока нету ни желания, ни потребности, мне его особо-то применять некуда. Нету у меня проблемы из первого сообщения в данной теме, нету хаба на verlihub, чтобы поставить туда скрипт выше и оптимизировать (или написать лучше и радоваться).

Я просто человек со стороны, мои сообщения можно игнорировать/забывать сразу после прочтения. У меня нету желания вызывать чью-либо агрессию, но я буду рад, если вместо неё появится азарт что-то сделать для дц.
И было бы очень хорошо, если бы это что-то новое было максимально простым для понимания новичками (которых последнее время почти-то и нету).

Те, кто скрипты писать умеет, развитием и популяризацией дц уже практически не занимаются, а случайно заинтересовавшимся новичкам разобраться очень сложно (что убивает всё желание заниматься).
Аватара пользователя
RoLex
Сообщения: 51
Зарегистрирован: 01 апр 2011, 09:39
Хаб: nmdcs://russia.feardc.net:411
Откуда: Швеция
Контактная информация:

Сообщение RoLex »

Речь идет о 34x3 строках в таблице, итерация которой в Lua проходит за 0,001 секунды. Зачем тут какой либо алгоритм изобретать? Использование ресурсов не увеличилось не капли после загрузки этого скрипта, как и время выполнения, даже на Allavtovo.ru где сидит более 15.000 человек.

Вот Blacklist скрипт написаный мной на Python для Verlihub, который лично у меня на хабе загружает в память 350.000 строк - это другой пример который использует так называемый по твоему алгоритм который не дает скрипту итерировать весь список, на против, он читает А из А.Б.В.Г и итерирует только 255-ю часть всего списка - что действительно полезно. Данный случай действительно влияет на время выполнения и использование ресурсов.

Не надо мне втирать про грязный код, не нравится - не читай. Мне твое филосовство не интересно, забивай голову своими теориями другим подобным тебе людям. Если ты мне докажешь что твой код влияет на производительность хаба в лучшую сторону - я извинюсь, еще раз перепишу скрипт в твоем стиле, и навсегда запомню твой совет. Но до тех пор пока ты мне этого не доказал - лучше не трогай мои больные нервы.

Вот почему, только на русских форумах всегда найдется человек который съест твой мозг, начнет учить тебя жить по другому? Почему этой проблемы не существует на других форумах? Почему?
Последний раз редактировалось RoLex 25 фев 2014, 17:08, всего редактировалось 1 раз.
Аватара пользователя
WINS
Сообщения: 51
Зарегистрирован: 04 май 2011, 04:12

Сообщение WINS »

Спойлер
на том агро-мего хабе никого не смутило?
$Lock EXTENDEDPROTOCOL_hub Pk=1.0.7.MegaHub specific|блаблабла
а обычно как-то так
$Lock EXTENDEDPROTOCOLpZ_8bEVCAX6K8_\N`U5x2sQIgoAnix Pk=PtokaX|
птока там походу с копаными исходниками и велосипед с уникальным хабсофтом точно не изобретали
Последний раз редактировалось WINS 25 фев 2014, 17:46, всего редактировалось 6 раз.
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

Мне твое филосовство не интересно, забивай голову своими теориями другим подобным тебе людям. Если ты мне докажешь что твой код влияет на производительность хаба в лучшую сторону - я извинюсь, еще раз перепишу скрипт в твоем стиле, и навсегда запомню твой совет. Но до тех пор пока ты мне этого не доказал - лучше не трогай мои больные нервы.
Другая - более понятная - запись кода влияет на производительность кода в худшую сторону?
Экономия на спичках с записью большой лестницы операторов важнее удобства модификации и расширения ПО?

Был простой нубский вопрос-ответ http://dchublist.ru/forum/viewtopic.php?p=22366#p22366 , а в итоге получилось
Спойлер
Изображение
Извините уж, раз так быстро и просто получилось и мозг съесть, и на нервах поиграть, и пытаться научить жить по-другому. Хочется как лучше, а выходит как всегда.
даже на Allavtovo.ru где сидит более 15.000 человек.
Тут внезапно оказалось, что в старом платяном шкафу есть вход в Нарнию (dchub://hub2.o-go.ru), так что 15.000 человек больше не вызывают удивления и трепета(а сказочная ли эта страна-хаб -- каждый сам для себя решает). Вот там действительно надо заниматься оптимизацией (но там вообще всё по-другому)
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

а под lua есть профайлеры - вы под ним погоняйте - сразу должно быть видно узкое горлышко?
p.s.
Я вот даже захотел проверить этот LUA скрипт
но verlihub поднять из git не получилось
скомпилировать смог а вот запустить - нет...
ошибки про etc/ чего-то там и базу...

RoLex - Вы разработчик verlihub?
я к сожалению сильно не следил за хабо-софтом.
rushub/ptoхa под линус у меня поднимались для тестов - быстро.
а тут вероятно бубен нужен.

накидайте полезные линки - как чайнику запускать verlihub из git с нуля?
я может свой dchub://dc.fly-server.ru на него перекину, хотя наличие my-sql не очень нравится,
но вроде пишут что это круто :)
Аватара пользователя
KCAHDEP
Сообщения: 245
Зарегистрирован: 19 янв 2012, 11:21
Хаб: dchub://dc.kcahdep.online

Сообщение KCAHDEP »

HackFresse писал(а):Тут внезапно оказалось, что в старом платяном шкафу есть вход в Нарнию (dchub://hub2.o-go.ru), так что 15.000 человек больше не вызывают удивления и трепета(а сказочная ли эта страна-хаб -- каждый сам для себя решает). Вот там действительно надо заниматься оптимизацией (но там вообще всё по-другому)
Вошел а**ел и вышел =-O
http://clip2net.com/s/6TQgIh
Аватара пользователя
RoLex
Сообщения: 51
Зарегистрирован: 01 апр 2011, 09:39
Хаб: nmdcs://russia.feardc.net:411
Откуда: Швеция
Контактная информация:

Сообщение RoLex »

@ HackFresse

Класиво рисуешь. Давай оставим эту тему, если есть предложения по улучшению функционала - пиши, а то что у меня предложение с маленькой буквы - это мое личное.

@ flylinkdc

Все в доках есть: http://verlihub-project.org/doc
Аватара пользователя
Быстрый ответ
Сообщения: 436
Зарегистрирован: 16 авг 2010, 00:21

Сообщение Быстрый ответ »

Кстати, предлагаю заодно обсудить фейковую шару в Грее. Она генерируется весьма похожим способом:
Спойлер
Изображение
Но вот наш скрипт здесь не поможет, размеры файлов совсем разные. Тут, наверно, надо лингвистический анализ имён файлов проводить :-)
Какие будут идеи и пожелания?
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

Быстрый ответ писал(а):Кстати, предлагаю заодно обсудить фейковую шару в Грее. Она генерируется весьма похожим способом:
Но тут ведь avi - он не код и не может быть вирусом.
Аватара пользователя
Быстрый ответ
Сообщения: 436
Зарегистрирован: 16 авг 2010, 00:21

Сообщение Быстрый ответ »

flylinkdc писал(а):Но тут ведь avi - он не код и не может быть вирусом.
Конечно это не вирус, просто оять же интересно определять такие вещи автоматически. Пока что приходится всех "большешарников" проверять вручную.
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

А что вы делаете потом с ними когда определили?
выкидываете с хаба и баните?
Аватара пользователя
Быстрый ответ
Сообщения: 436
Зарегистрирован: 16 авг 2010, 00:21

Сообщение Быстрый ответ »

Да, выкидываем, баним... На самом деле по-разному бывает. Если у него вся шара фэйк, то понятно. Но бывает, что наращивают свою реальную фэйком, вот и думайте, что полезнее - оставить или забанить :-)
Аватара пользователя
переподвыподверт
Сообщения: 252
Зарегистрирован: 05 окт 2010, 20:23
Откуда: Харьков

Сообщение переподвыподверт »

Сегодня заметил, что при поиске видеофайлов в результатах выдаются екзешники... *DONT_KNOW*
Изображение
Аватара пользователя
Kimbo
Сообщения: 772
Зарегистрирован: 09 авг 2010, 18:05

Сообщение Kimbo »

переподвыподверт, ага и я такое заметил http://dchublist.ru/forum/viewtopic.php?p=22272#p22272
Аватара пользователя
переподвыподверт
Сообщения: 252
Зарегистрирован: 05 окт 2010, 20:23
Откуда: Харьков

Сообщение переподвыподверт »

Kimbo писал(а):ага и я такое заметил
У тебя тип файла стоит любой.
Аватара пользователя
Быстрый ответ
Сообщения: 436
Зарегистрирован: 16 авг 2010, 00:21

Сообщение Быстрый ответ »

переподвыподверт писал(а):Сегодня заметил, что при поиске видеофайлов в результатах выдаются екзешники...
Это с каких хабов такие результаты приходят? я что-то не смог такое повторить
Аватара пользователя
переподвыподверт
Сообщения: 252
Зарегистрирован: 05 окт 2010, 20:23
Откуда: Харьков

Сообщение переподвыподверт »

Быстрый ответ писал(а):Это с каких хабов такие результаты приходят?
Изображение
Сейчас только spammerws.net. В первом случае в придачу были андромеда и spb-hub.ru.
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

Возможно клиент на той стороне игнорирует этот флаг и возвращает exe
открой шару того юзера - она вирусная?
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

так всё равно же придётся добавлять дополнительную проверку именно во FlylinkDC.
потому что на той стороне могут быть как клиенты, которые ошибочно обрабатывают запросы, так и распространители вирусов, которые будут специально игнорировать этот флаг
Т.е. FlylinkDC должен отображать только то, что запрашивал, фильтруя лишнее
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

HackFresse писал(а):Т.е. FlylinkDC должен отображать только то, что запрашивал, фильтруя лишнее
ок. это легко делается.
только не думаю что сильно поможет - юзера обычно при поиске не выбирают тип файлов вообще.
Аватара пользователя
переподвыподверт
Сообщения: 252
Зарегистрирован: 05 окт 2010, 20:23
Откуда: Харьков

Сообщение переподвыподверт »

flylinkdc писал(а):юзера обычно при поиске не выбирают тип файлов вообще
Откуда инфа? В наше время выбирали.
flylinkdc писал(а):открой шару того юзера
Список не качается.
Ответить