Рекурсивные архивы
Автор: Казимиров К.О.
Журнал: Форум молодых ученых @forum-nauka
Статья в выпуске: 9 (25), 2018 года.
Бесплатный доступ
Статья посвящена рекурсивным архивам. В статье рассматривается технология создания рекурсивного архива, цели его создания, а также описывается его механизм работы.
Архивы, вирусы
Короткий адрес: https://sciup.org/140284216
IDR: 140284216
Текст научной статьи Рекурсивные архивы
В старые времена были популярны вирусы - рекурсивные архивы, которые распаковываются сами в себя. В основном их использовали для вывода техники их строя, а также отключения антивируса, с последующим заражением компьютера жертвы.
Опишем принцип работы рекурсивного архива на примере известного файла “42.zip”. Данный файл весит 42 килобайта, но если мы захотим разархивировать его, то столкнемся с тем, что реальный размер данного файла 4.5 петабайта. Данный архив содержит 6 вложенных слоёв, в каждом по 16 архивов, на самом нижнем слое содержится файл размером 4.3 гигабайта.
структура |
общее число |
Содержание |
несжатый общий размер (в байтах) |
42 zip |
1048576 |
16 папок |
4 503 599 626 321 920 (4.5 ПБ) |
— tlbOzip IlbfZlp |
1048576 |
16 папок |
4 503 599 626 321 920 (4.5 ПБ) |
— bookO zip boo kf zip |
65536 |
16 папок |
281 474 976.645 120 (281 ТБ) |
— chapterO zip chapterf zip |
4096 |
16 папок |
17 592 186 040 320 (17 ТБ) |
— docO zip... docf zip |
256 |
16 папок |
1 099.511 627 520 (1 ТБ) |
— paged zip pagef zip |
16 |
1 файл |
68719476720 (68 Гб) |
— 0 dll |
1< |
4294967295 (4.3 Гб) |
Как происходит процесс архивации 4.5 петобайта в 42 килобайта. Файл, находящийся на нижнем слое (0.dll), весит 4.3 гигабайта, такой вес выбран не с проста, данное значение соответствует верхнему пределу распаковки. Файл нижнего слоя является пустышкой, содержащий в себе какой-нибудь повторяющийся символ, пока размер файла не достигнет верхнего предела.
На иллюстрации ниже приведено содержимое файла 0.dll

Рис. 2. Содержимое файла 0.dll
Так как файл содержит в себе всего лишь один символ, то при архивации все эти символы будут заменены всего одним другим символом. Так как все данные в архиве были заменены на один символ, размер данного архива будет ничтожно мал в сравнении с не сжатым файлом. На следующем шаге создаётся 15 копий данного файла, и добавляются в один архив, но так как данные архивы — это копии, следовательно они имеют одну и ту же хэш сумму, поэтому весить они ничего не будут. Затем создаётся ещё 16 копий этого архива, и так делается 6 раз, что в итоге нас приведёт к архиву с шестью слоями. При открытии 42.zip, в нём находится 16, при открытии любого из них, в нём находится ещё 16 архивов и так далее, до нижнего слоя. Распаковка данного архива займет всю оперативную память, что приведёт к зависанию системы. Но после перезагрузки у пользователя не будет проблем. Данный файл использовался для отключения антивируса, который в свою очередь начинал сканировать данный файл и в лучшем случае отключался. Затем жертве отправляли вирус, который антивирус уже не мог проверить.
Список литературы Рекурсивные архивы
- Архив Смерти // Википедия. [2018]. Дата обновления: 18.06.2018. URL: https://ru.wikipedia.org/?oldid=93391935 (дата обращения: 18.06.2018).
- Архив (информатика) // Википедия. [2018]. Дата обновления: 29.06.2018. URL: https://ru.wikipedia.org/?oldid=93647027 (дата обращения: 29.06.2018).