Описание файла Regex.txt

Граббинг, Шаринг, Настройка ресиверов...
Аватара пользователя
Blaze
Информатик-аналитик
Информатик-аналитик
Сообщения: 8933
Зарегистрирован: 24.05.2007 17:23
Модель телефона: POCO X3 Pro 6/128
Прошивка: crDroid v7.7
Sat-ресивер: Tiviar Mini HD
Откуда: Данков
Контактная информация:

Описание файла Regex.txt

Непрочитанное сообщение#1 » Blaze » 25.09.2008 15:35

Описание файла Regex.txt


Начнем с того, что это за файл. В этом файле перечисленные фильтры,которые вы можете увидеть в программе SkyNET по нажатию на кнопку G.
Для чего они нужны? Для того, чтобы получать только интересные вам файлы при грабинге. Новичкам можно использовать стандартный regex.txt,который идет со многими билдами программы (например SkyNET 0.93d). Но гораздо интересней настроить этот файл под свои нужды и потребности.
Итак, как работает этот файл? Все очень просто. Когда skynet зацепил какой-то файл, он начинает проверять фильтры построчно из файла regex.txt. При первом же совпадении дальше проверка не идет. То есть,условия стоящие выше в regex.txt имеют больший приоритет. Именно поэтому во всех (почти) regex’ах сначала идут BLOCK-строчки, которые отсеивают ненужные файлы сразу.

Теперь перейдем к описанию самого формата фильтров.
Строчка условия состоит из четырех частей

1) Цвет полоски для данного типа файла
2) Способ определения файла
3) Условие
4) Группа, к которой принадлежит файл

Рассмотрим все поподробнее:
1) Это стандартный цвет, задаваемый тремя группами в шестнадцатеричном виде. В программах для рисования или корректировки фоток (например, фотошоп) при выборе цвета можно увидеть этот самый код. Тут все стандартно (FFFFFF – белый, FF0000 – красный, 00FF00 – зеленый и тд)

2) Здесь возможны 2 варианта:
- b – определять по содержимому (в начале файла)
- t – определять по полю content-type

3) Это самая важная и сложная часть. Здесь задается условие отбора.Если способ определения файла b, тогда условия задаются с помощью регулярных выражений, позаимствованных в UNIX.Формат следующий: сначала ставится знак «^» - это определение начала строки.

Далее перечисляются символы, которые идут по порядку в файле (например, ^Rar, означает, что все файлы начинающиеся с символов Rar. удовлетворяют условию).

Если в файле на каком-то месте возможен любой произвольный символ, то его можно обозначить «.» (точкой) (например, ^RIFF....AVI,означает, что данному условию удовлетворяют файлы, у которых первые 4символа RIFF, далее идут любые 4 символа, а далее 3 символа AVI).

Если вам нужно описать последовательность любых символов неопределенной длины, тогда применяется сочетание «.*» (вообщезвездочка указывает на повторение символа 0 или более раз, а так какперед ней стоит точка, значит повторяться будет любой символ) (например, ^PK.*NAV,означает, что данному условию удовлетворяют файлы, у которых первые двасимвола PK, а далее в любом месте начала файла есть последовательность символов NAV).

Если вам нужно в качестве символа указать точку (например фильтровать расширения .mp3, точка все таки задана явно), то просто точку поставить нельзя, так как программа определит ее как любой символ, поэтому применяется сочетание символов «.» (например, ^PK.*.wmv,означает, что файлам, у которых первые два символа PK, далее в любом месте начала файла есть последовательность .wmv, это условие удовлетворяет).

Если последовательность символов может быть написана в разных регистрах (например, rar или RAR), тогда применяется выражение (?i) перед этой последовательностью (например, ^PK.*(?i)MANIFEST,означает, что файлам, в начале которых 2 знака PK и в любом местевстречается последовательность MANIFEST, написанная в любом регистре,хоть MaNifeSt, удовлетворяет условию).

Возможно указание условий (альтернативы) выбора. Например, ккакой-то группе могут принадлежать файлы с разным началом, тогдаприменяется следующее выражение ^(усл1|усл2| … |услN) (Например, ^.*<(?i)(html|!doctype|head|body), означает, что файлам, содержащим в любом месте последовательность
Вроде основные описал, вот список всех метасимоволов (символы обозначающие группы других символов) и их модификаторов:
- считать следующий метасимвол как обычный символ.
^ - начало строки
. - один произвольный символ.
$ - конец строки
| - альтернатива (или)
() - группировка
[] - класс символов

Метасимволы имеют модификаторы (пишутся после метасимвола):
* - повторяется 0 или большее число раз
+ - повторяется 1 или большее число раз
? - 1 или 0 раз
{n} - точно n раз
{n,} - по меньшей мере раз
{n,m} - не меньше n, но и не больше m

Если способ определения файла t, тогда просто вписывается значение поля content-type.
(например, ^image/jpeg – означает картинки в формате JPEG, ^application/msword – означает документы, написанные в Word'е)

4) Здесь указывается присваиваемое расширение файлу и через «;» группы файлов (необязательно).

В конце файла обычно пишут строчку
404040 b . bin;ALL,
которая удовлетворяет всем файлам (означает, что если файл не попал не в одно условие, ему присваивается расширение bin).

Совет: внимательно расставляйте порядок условий, иначе можно не получить желаемый результат.
Например, я хочу ловить rar-архивы с музыкой в формате mp3, а другие rar-архивы я ловить не хочу. Если у меня будет последовательность записана так:

008000 b ^Rar! rar
008000 b ^Rar!.*.mp3 mp3.rar

И в программе отмечу плюсом группу mp3.rar и не отмечу rar, тоя ничего не поймаю, так как архивы с музыкой также попадают под общееопределение архивов, а я их не указал. Чтобы все заработало, нужно поменять порядок строк (поменять местами):

008000 b ^Rar!.*.mp3 mp3.rar
008000 b ^Rar! rar

Аватара пользователя
Blaze
Информатик-аналитик
Информатик-аналитик
Сообщения: 8933
Зарегистрирован: 24.05.2007 17:23
Модель телефона: POCO X3 Pro 6/128
Прошивка: crDroid v7.7
Sat-ресивер: Tiviar Mini HD
Откуда: Данков
Контактная информация:

Описание файла Regex.txt

Непрочитанное сообщение#2 » Blaze » 11.01.2009 14:10

Дополнительно:

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

C00000 b ^\xFF\xD8	jpg;IMAGE;ALL
Первые 6 символов обозначают цвет полоски которая будет отображаться при закачке файлов, тут всё просто
первые два байта это красный вторые это зелёный и оставшиеся два синий, цвета могут принимать значения
от 0 до 255 в десятиричной системе и соответственно от 00 до FF в шеснадцатиричной, при помощи встроиного
в винду паинтера и калькулятора можно разобратся и раскрасить всё по своему желанию.

Следующий символ b простыми словами обозначает что будет проверятся информация переданная в ИП пакете или
сигнатура файла, в данном случае будет проверятся сигнатура.Символ t - это по информации которая пришла с
пакетом - подробную информацию по тому какие значения могут там содержаться и за какие типы файлов они отвечают
смотрите в описании TCP\IP протокола.

Идём дальше, а дальше идёт собственно сигнатура файла, в регексе её можно прописывать как в обычном так и в
16ричном виде, если вы откроете любой jpg файл в хексовом редакторе то увидите что он начинается с байтов:
\xFF\xD8 , так же строку

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

C00000 b ^\xFF\xD8	jpg;IMAGE;ALL 
можно заменить на

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

C00000 b ^яШ	jpg;IMAGE;ALL
что тоже будет верно. Но лучше оставить обе.

Следующая особенность написания сигнатур: Допустим нам нужны рар архивы содержащие ключи

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

AEC7FB b ^Rar!.*SoftCam		softcam.rar;KEY;ALL
В начале указываем сигнатуру рар архива затем .*слово нужное нам, расширение .key, или и то и другое вместе

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

AEC7FB b ^Rar!.*SoftCam.key		softcam.rar;KEY;ALL
эта строка будет работать но если файл будет к примеру называться softcam.key а мы ищем SOFTCAM.KEY то ничего
не выйдет т.к. регистр букв имеет значение, таким образом правильная строка будет выглядеть так:

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

AEC7FB b ^Rar!.*(S|s)(O|o)(F|f)(T|t)(C|c)(A|a)(M|m)		softcam.rar;KEY;ALL
тоже самое можно использовать и для мп3 файлов с тегами, но только 1 ой версии т.к. у 2 они в конце файла или
наоборот, но это не важно главное сам принцип.

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

Аватара пользователя
Blaze
Информатик-аналитик
Информатик-аналитик
Сообщения: 8933
Зарегистрирован: 24.05.2007 17:23
Модель телефона: POCO X3 Pro 6/128
Прошивка: crDroid v7.7
Sat-ресивер: Tiviar Mini HD
Откуда: Данков
Контактная информация:

Описание файла Regex.txt

Непрочитанное сообщение#3 » Blaze » 08.02.2009 16:52

1. Анализ побайтно
Пример файла wmv http://en.wikipedia.org/wiki/Windows_Media_Video
открываем в TotalСommander или FAR файл по F3 в HEX режиме и смотрим заголовок файла

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

в виде символов
80C000 b ^0&			wmv;VIDEO;ALL
или побайтно в 16-ричном формате 
80C000 b \x30\x26\xB2\x75\x8E\x66\xCF\x11\xA6\xD9\x00\xAA	wmv;VIDEO;ALL
^    ^                             ^                           ^     ^
1    2                             3                           4     5
1 - цвет файла в RGB (80C000)
2 - символ b - определение будет побайтно
3 - характерный кусок заголовка файла (сигнатура). Могут быть не первыми байтами файла, но из потока гарантированно загружается только 128 байт. Можно писать как в виде символов так и побайтно в HEX формате разделяя символом \, предпочтительнее и более точный - последний. Прежде чем добавить собственный формат, проанализируйте несколько файлов, найдите в заголовке набор одинаковых байт (читай символов)...
4 - расширение файла.
5 - группы в которые входит файл (перечислять через символ ";")

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

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

80C000 t ^video/x-ms-wmv wmv;VIDEO;ALL
80C000 t ^video/x-ms-asf wmv;VIDEO;ALL
80C000 t ^video/wmv wmv;VIDEO;ALL 
Подробнее о MIME типах
http://html.manual.ru/book/info/mimetypes.php
http://www.chem.msu.su/rus/wwwbook/mime.html
http://ru.wikipedia.org/wiki/MIME

Более сложные конструкции

в zip, rar, ace, 7z и uha архивах ищит следующие расширения типов файлов, при условии что имена файлов в архиве не шифрованы...
все архивы получат расширение rar, при открытии архивов в TotalCommander тип архива автоматически определяется по заголовку, проблем с открытием и распаковкой быть не должно...

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

008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(jpg|jpeg) jpg.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.mp3 mp3.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.mp4 mp4.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.ogg ogg.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.ape ape.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.flac flac.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.wmv wmv.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.avi avi.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.divx divx.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(mpg|mpeg) mpg.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.vob vob.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.mov mov.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.iso iso.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.mdf mdf.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.nrg nrg.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.pdf pdf.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.djvu djvu.rar;All;FAV
можно сгруппировать таким образом

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

008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(jpeg|jpg) PHOTO.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(mp3|ogg|wma|ape|flac) MUSIC.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(mp4|wmv|avi|divx|mpg|mpeg|mov|vob) VIDEO.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(iso|mdf|nrg) IMG.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(pdf|djvu) BOOK.rar;All;FAV
Выборка mp3 по жанрам либо по исполнителю, применимо только к mp3 с ID3v2 так как ID3v1 хранит тэг в конце файла
виды жанров музыки можно посмотреть в winamp, открыв свойства тэга в любом mp3 файле

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

00C000 b ^(ID3|TCON|TPE1).*(?i)(trance|house|80*s|90*s|Jungle|Electronic|Disco|Metal|Death|Grindcore|Doom|Ambient|Folk|Viking|Beat|Gothic|Industrial|Alternative|Brutal) rule.mp3;FAV_mp3
Блокирование файлов

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

404040 b ^idska32		BLOCK   #по заголовку
404040 b ^PSTREAM		BLOCK
404040 b ^.*(?i)(audiobook|trance|arab|anime)	BLOCK   #по ключевым словам в теле файла (архива)
Выборка по ключевым словам в архивах, опять же при условии что имена файлов в архиве не шифрованы

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

8000C0 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*(?i)(CLIP|Comedy|hdtv|VIDEO_TS|vista|netz|epidem|warez|dvdrip) word.rar;ALL
Выборка фотографий с тэгом Exif

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

FFB0A3 b ^\xFF\xD8.*(?i)(PENTAX|OLYMPUS|Canon|CASIO|NIKON|Panasonic|KONICA|NOKIA|SAMSUNG|Siemens|SONY) FOTO.jpg;ALL
Документации по регулярным выражениям в интернете полно, ищите по словам "regex" или "regular expressions"
Например http://ru.wikipedia.org/wiki/Регулярные_выражения

Далее описаны несколько элементов, часто употребляемых в регулярных выражениях.

Применяемые для задания соответствия символу:
. - соответствует любому одиночному символу (например выражение ".arry" может соотвествовать и Larry и Barry и др);
\d - соответствует любой цифре (например выражение "\d\d" соотвествует любому числу от 0 до 99);
[набор_символов] - задает соответствие любому символу из указанного набора_символов (например "[a-f0-9]");
[^набор_символов] - задает соответствие любому символу, за исключением тех, что входят в указанный набор_символов (например "[^k-z]" соответствует любому символу, кроме входящих в диапазон от k до z);
\xn - где n - шестнадцатеричное число, обязательно состоящее из двух цифр. Соответствует символу с шестнадцатеричным кодом n (например, \x41 эквивалентно "A");

Специальные символы, которые позволяют задавать соответствие не одиночному символу, а некоторому количеству символов:
* - соответствует повторению предшествующего символа ноль и более раз. Например, «go*gle» соответствует ggle, gogle, google, gooooooogle и др;
? - соответствует повторению предшествующего символа ноль или один раз. Например, «colou?r» соответствует и color, и colour.
+ - соответствует повторению предшествующего символа один и более раз. Например, «to+» соответствует to и too, но не tooo и не t.
{n} - где n это положительное целое число. Соответствует точно n-ному количеству повторений. Например, "o{2}" не соответствует 'o' в "Bob", но соответствует 2-м символам 'o' в "сool".
{n,m} - где n и m это положительные целые числа, причем n < m. Соответствует хотя бы n-ому, но не более чем m-ому числу повторений. Например, "o{1,3}" соответствует первым трем 'o' в "fooooood".

Применяются также спецсимволы, указывающие на допустимое положение найденного соответствия:
^ - указывает что найденный текст должен быть в начале строки;
$ - указывает что найденный текст должен быть в конце строки.

Другие полезные символы и комбинации:
Символ вариации '|' используют для того чтобы допустить выбор между двумя и более вариантами. Например, "PK|Rar!" соответствует "PK" или "Rar!";
(?i) - указывает что последующие конструкции регулярного выражения будут нечувствительны к регистру букв.

Аватара пользователя
sergiksergik
Пользователь
Пользователь
Сообщения: 35
Зарегистрирован: 14.06.2009 20:25
Модель телефона: Nokia 6233
Откуда: Беларусь Щучин

Re: Описание файла Regex.txt

Непрочитанное сообщение#4 » sergiksergik » 05.12.2009 20:49

А как ловить flv от 70 мб, при заданном минимальном размере файлов 20 Мб ?
sbf1_1b06_public
DualCore AMD Phenom II X2 Black Edition 550, 3038 MHz
Gigabyte GA-MA770T-UD3P
NVIDIA GeForce 9600 GT (512 Мб)
Hynix, 2 + 2 Гб DDR3
2660 Гб
TT-1401 (SkyStar3)

Аватара пользователя
Blaze
Информатик-аналитик
Информатик-аналитик
Сообщения: 8933
Зарегистрирован: 24.05.2007 17:23
Модель телефона: POCO X3 Pro 6/128
Прошивка: crDroid v7.7
Sat-ресивер: Tiviar Mini HD
Откуда: Данков
Контактная информация:

Re: Описание файла Regex.txt

Непрочитанное сообщение#5 » Blaze » 05.12.2009 21:41

sergiksergik, ни как. Можно ограничить их по rules.txt

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

n "flv" -[20M-69M]
s *.*.*.* -flv[20M-69M]
и то они будут иметь статус file remover (файлы для удаления, выделяются красным светом)

Ответить