LINUX.ORG.RU

Алгоритм поиска вируса в скриптовых языках на C/C++

 , ,


1

3

Задача состоит в том чтобы искать строки кода в файлах. То есть у нас есть несколько строк вируса и нужно чтобы все эти строки были найдены в файле и если все они найдены то файл заражен. Очень интересно услышать ваши мнения. Заранее спасибо.



Последнее исправление: ECLIPSE (всего исправлений: 1)

Ответ на: комментарий от anonymous

Даже не знаю как ответить на твой вопрос. :-) Скорее всего нет, потому что даже url-encoded стринга в джаваскрипте имеет свой паттерн повторяющихся значений.

ECLIPSE
() автор топика

Очень интересно услышать ваши мнения.

Фигли тут слушать - иди лабу делай! Бери регэкспы и вперед.

Norgat ★★★★★
()
Ответ на: комментарий от KennyMinigun

Только скриптовые языки, значит только сорсы.

ECLIPSE
() автор топика
Ответ на: комментарий от Norgat

Не факт, что это лаба, может быть тестовое задание в каком-нибудь ЛК на младшего помощника младшего аналитика.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

fix

на помощника-стажёра младшего аналитика

anonymous
()
Ответ на: комментарий от Norgat

Я не думаю что здесь нужны регэкспы, а вот алгоритм Ахо-Карасик это действительно круть и скорее всего я буду использовать именно его.

ECLIPSE
() автор топика
Ответ на: комментарий от ECLIPSE

Я не думаю что здесь нужны регэкспы, а вот алгоритм Ахо-Карасик

... например, используется в утилите поиска grep


напишешь алгоритм быстрее grep - выкладывай на гитхаб

x905 ★★★★★
()
Ответ на: комментарий от ECLIPSE

а вот алгоритм Ахо-Карасик это действительно круть и скорее всего я буду использовать именно его.

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

i-rinat ★★★★★
()

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

xpahos ★★★★★
()
Ответ на: комментарий от DELIRIUM

У меня первое правило - заставь это работать, а потом разбирайся с производительностью)

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

Norgat ★★★★★
()
Ответ на: комментарий от Norgat

Ты не тому ответил, видимо, я ничего не писал про производительность и регеспы.

DELIRIUM ☆☆☆☆☆
()

Если решать по-нормальному, задача очень нетривиальная. Скриптовые вирусы же легко обфусцировать. Ахо-Корасик, если применять «в лоб» не сработает если в вирусе просто добавить пробел, например.

Лучше хотя бы токенизировать (и образцы, и код), сравнивать «строки» состоящие из символов-токенов.

Но это тоже не особо поможет, если обфусцируют со знанием дела.

Теоретически можно попробовать какой-нибудь нечеткий поиск, типа строить по образцам автомат Левенштейна с разумной дистанцией https://en.wikipedia.org/wiki/Levenshtein_automaton

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.