Привет всем! Недавно пытался рассказать своим детям о шалостях, которые делались до эры Интернета. Вечный факс конечно же был упомянут, азбука Морзе с приятелем из соседнего подъезда с помощью протянутого под крышей многоэтажки провода и кнопок с лампочками тоже, а потом как-то случайно речь дошла до зип-бомбы.
Более подробно (на случай, если вы не знаете, что это такое) можно прочитать в Википедии. Упрощенно — это архив, который открывает сам себя. Я же решил показать более простой пример бомбы — файл, состоящий из нулей, и сжатый до весьма скромных архивов, для чего
использовал Python:
-
start_value = 1
-
while start_value <= 120000:
-
with open('logic.txt', 'a', encoding='utf-8') as f:
-
f.write(' '
-
' '
-
' '
-
' '
-
' '
-
' '
-
' '
-
' '
-
' '
-
' '
-
' '
-
' '
-
' '
-
' ')
-
print('Сделали проход:', start_value)
-
start_value = start_value + 1
Собственно — логика весьма проста: пишем пробелы в файл. Пишем… и еще раз пишем. И снова пишем… Пока не достигнем отметки в запланированные 120000 проходов. В этом случае размер исходного файла составит ровно 168 мегабайт. А если мы заархивируем его с помощью архиватора 7-zip в ультра-режиме — получим файлик размером в 197 килобайт 🙂
Что делать с полученным файлом — решать вам. Увалить Яндекс как это было возможно когда-то давно — уже нельзя. Вычислительный центр в родной Академии — тоже… Разве что отправить кому-то на почту с просьбой развернуть отчетность и ждать, пока у несчастного закончится вся память (не удержался, отправил архив дочке на почту) 🙂
И да, знаю — можно было бы использовать старую верную командную строку:
Fsutil file createnew c:\text.txt n — где n — размер нужного вам файла, но нам нужен Python 🙂
Кстати, если вам совсем скучно — попробуйте развернуть этот архив? Всего-лишь 42 килобайта же… 😉