Pull to refresh

Зашифрованный ZIP-архив может иметь два правильных пароля

Reading time 2 min
Views 29K
Information Security *Software IT-companies


20 августа 2022 года разработчик и пентестер из Positive Technologies Арсений Шароглазов пояснил, почему зашифрованный очень длинным паролем ZIP-файл с использованием алгоритма шифрования AES-256 может в итоге открываться с помощью двух, причём на первый взгляд разных, но правильных паролей.
Читать дальше →
Total votes 67: ↑57 and ↓10 +47
Comments 52

GitHub отменил изменения метода формирования генерируемых архивов после сбоя

Reading time 2 min
Views 1K
Open source *Git *GitHub *

GitHub внедрил метод формирования автоматически генерируемых архивов «.tar.gz» и «.tgz» на страницах с релизами, но это привело к изменению их контрольных сумм и массовым сбоям в автоматизированных системах сборки. Платформа откатила изменения.

Читать далее
Total votes 7: ↑6 and ↓1 +5
Comments 6

Открыта свободная регистрация в домене .zip, там уже зарегистрировано много скама, включая сайты csgo.zip и winrar.zip

Reading time 1 min
Views 8.6K
Website development *Domain names administrating *Network technologies *History of IT IT-companies

13 мая 2023 года TLD (принадлежит Google) открыла свободную регистрацию имён сайтов в домене .zip. Там уже зарегистрировано много скама, включая сайты csgo.zip, winrar.zip, keygen.zip, microsoft-office.zip, latestupdate.zip, g.zip и многие другие.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 25

Подбор пароля к архиву

Reading time 1 min
Views 7.3K
Lumber room
Давным-давно, во времена BBS и Fido, была такая пошлая мода – ставить пароли на архивы с файлами. Получая файл, Вы не всегда могли его нормально распаковать. Приходилось использовать подручные средства и методом перебора «взламывать» архив. В основном программы были под Windows, а под *-nix системы не попадались реже. Разработчики, как могли, восполнили этот пробел, неспешно совершенствуя проект «rarcrack». Методом перебора (или «грубой силы» / brute force) программа сможет подобрать забытый пароль к файлам, заархивированным zip, 7z или rar.

А встречались ли Вам подобные разработки?

Операционная система: All POSIX (Linux/BSD/UNIX-like OSes)
Тип лицензии: GNU General Public License (GPL)
Страница проекта: sourceforge.net/projects/rarcrack
Total votes 8: ↑7 and ↓1 +6
Comments 15

расширение zip, небольшой хинт

Reading time 1 min
Views 1.4K
PHP *
В одном из моих проектов широко используется импорт различных данных в формате CSV. Когда-то данных было немного и всех устраивало непосредственно загрузить один-два не слишком больших файла. Со временем данных стало больше, выросли размеры импортируемых файлов и их количество. Решено было загружать файлы в ZIP-архиве: экономим трафик + имеем всего один аплоад вместо несольких.

Для работы с архивом я воспользовался расширением zip. Описывать здесь, что к чему в этом расширении, я здесь не буду, это достаточно подробно описано в документации.

Я расскажу лишь об одной особенности, которая оказалась для меня полезной. При импорте файла, который пользователь загружает в форме, сам по себе ZIP-архив на сервере ни к чему, да и распаковывать его тоже без надобности: потом ведь еще удалять придется. На помощь приходит метод ZipArchive->getStream(). Получаем с его помощью файл-хэндлер и можем спокойно скормить его, допустим, в fgetcsv.

UPD. Наверное, не совсем понятно объяснил. Мне нужны данные из тех CSV-файлов, которые лежат в ЗИПе. И нужны мне эти данные в базе данных, а не в самих ЦСВшках и уж тем более не в архиве. То есть данные из ЦСВшек я импортирую в БД. Поэтому я беру тепленьким временный файл ( $_FILES['userfile']['tmp_name'] ). И прямо не распаковывая его, импортирую все содержащиеся в нем ЦСВшки в БД. После этого PHP сам позаботится о том, чтобы удалить архив, который больше уже не нужен.

UPD. От хабраюзера Adelf: в некоторых случаях (не в моем) следует принимать во внимание факт того, что $_FILES['userfile']['tmp_name'] может быть недоступен из-за open_basedir

Надеюсь, эта информация кому-нибудь окажется полезной.
Total votes 30: ↑19 and ↓11 +8
Comments 21

Полезные сведения о сжатии ZIP-архивов (и документов OpenOffice, которые по сути также ZIP-архивы)

Reading time 1 min
Views 743
Software
Johan пишет о том, что возможно улучшить ZIP-сжатие, просто поместив один ZIP внутри другого.

(Читая эту его запись, нетрудно подметить, что именно так при распространении расширений к Файерфоксу работает архив JAR внутри архива XPI.)

Johan пишет также, что можно улучшить сжатие документов OpenOffice (которые являются XML-файлами в ZIP-архивах), если переупаковать их при помощи архиватора 7-Zip, который создаёт ZIP-архивы более компактные, нежели создаваемые прочими ZIP-архиваторами.

(Лично же мне по этому поводу удивительно, почему в открытый OpenOffice до сих пор никто не добавил ещё открытый код 7-Zip. Остаётся лишь диву даваться.)
Total votes 16: ↑7 and ↓9 -2
Comments 9

Когда нужно ZIPовать на лету

Reading time 4 min
Views 623
Lumber room
Задача тривиальная. Делаете какие то отчеты, файлы и хотите дать возможность пользователю их скачать в своем ASP.NET приложении. Почему полезно использовать архивацию?: а) уменьшается скачиваемый объем б) можно отдавать файлы пакетами по несколько.
В .net есть специальный класс для работы с GZip, находится в System.IO.Compression, и называется GZipStream, но он не позволяет хранить несколько файлов в одном архиве, такая специфика. Есть, конечно, энтузиасты, которые при помощи его создают и полноценные zip архивы (правда открывать они, вроде, могут их только при помощи своих программ — по крайней мере, мне попадались только такие).
В .NET 3.0 и выше можно использовать класс ZipPackage из System.IO.Packaging, который находится в сборке WindowsBase.DLL (находится примерно в C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\WindowsBase.dll), не знаю почему данная сборка не лежит в GAC, вот тут есть пример, как это все использовать: Creating Zip archives in .NET (without an external library like SharpZipLib).
Но все же если используете SharpZipLib, как сделать архивирование в памяти? Наверняка, можно сделать через OutputZipStream. Но мне понравился класс FileZip, у которого есть метод Add(), в который можно передать имя файла, или готовый ZipEntry, а так же есть возможность передать объект с типом, унаследованным от IStaticDataSource.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Comments 8

Простейшая генерация odt файла из существующего

Reading time 9 min
Views 11K
PHP *
Как-то раз передо мной стояла задача реализовать генерацию договоров для клиентов с нашего корпоративного сайта.
Сначала задача была решена просто ужасно — был заготовлен html шаблон договора, а пользователю выдавалась конвертация шаблона в pdf. Само собой это выливалось в кучу неудобств, в том числе, если требовалось что-то поменять в договоре.

Следующим решением было генерация odt документа. Это позволило редактировать документ нашим менеджерам независимо от сайта и программистов.
Полностью генерировать с нуля смысла нет. Почему бы не поработать с уже имеющимся файлом (отредактированным в OpenOffice) и просто заменить в нем необходимые элементы?

Этим мы с вами и займемся.
Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Comments 23

Пользователи и сжатие данных

Reading time 4 min
Views 16K
Data compression *
Я не хочу разжигать очередную священную войну, но комментарии на мой последний пост о «сжатии» в RAR навеяли на некоторое количество мыслей и рассуждений, которые я хочу донести до сообщества. Но перед этим хочу отметить, что я работаю под Windows'ем, поэтому всё ниже изложенное будет касаться именно его. Плюс к прочему попрошу отнестись к топику, как к информации к размышлению, а не как к красной тряпке для быка. Итак, давайте поговорим о форматах сжатия данных с пользовательской точки зрения.
Читать дальше →
Total votes 64: ↑39 and ↓25 +14
Comments 110

Работа с zip архивами в .NET

Reading time 2 min
Views 4.6K
Lumber room
Недавно мне в моем .NET/С# проекте подребовался функционал создания и распаковки zip архивов. Казалось бы, очень простые операции, учитывая что Windows Explorer уже давно умеет работать с zip файлами и я предположил, что API для работы с ними Microsoft предоставляет.

Отсутствие классов для работы с zip в .NET фреймворк большим сюрпризом для меня не стало, но и не сильно обрадовало. Отсутствие функционала для работы с zip в различных unmanaged API Windows (WinAPI, COM интерфейсы и т.д) меня раздосадовало. На данный момент весь исходный код проекта разработан мной и включать дополнительный third-party .dll файл в дистрибутив из за простейшего функционала мне не хотелось.

исследования и решение
Total votes 13: ↑6 and ↓7 -1
Comments 15

Начинается открытое бета-тестирование свободных шрифтов PingWi Typography (PWT)

Reading time 1 min
Views 1.2K
Typography *
На LORе (Linux.org.Ru) сегодня появилась новость о том, что компания PingWin Software (PingWinSoft.Ru) опубликовала объявление о начале открытого бета-тестирования своего пакета свободных шрифтов PingWi Typography (PWT), создававшегося с 2009 года специально для решения проблем с искажением форматирования документов, созданных средствами MS Office, при открытии этих документов в OpenOffice.org.

Гарнитуры, входящие в пакет PWT, разрабатывались «с нуля» в качестве метрических аналогов виндовских шрифтов Tahoma, Arial, Courier, Verdana и Times New Roman (и называются похожим образом: PWT Tahion, PWT Arion, PWT Courant, PWT Verde, PWT Timer); кроме того, шрифты PWT ориентированы на улучшение отображения текста на мониторах с низким разрешением.

Тестовый шрифтовой пакет PWT распространяется по специальной свободной лицензии. Гарнитуры лежат в TTF-виде внутри ZIP-архива.

Обратите внимание: в слове «PingWi» нет конечной буквы «n», но это не опечатка, так и задумано.

Выпуск окончательной версии шрифтового пакета запланирован на сентябрь 2010 года.
Total votes 58: ↑43 and ↓15 +28
Comments 40

ZIP-коды американцев внедрят в заголовки HTTP

Reading time 1 min
Views 807
Lumber room
Производитель маршрутизаторов Juniper Networks планирует этим летом внедрить в свои маршрутизаторы новую технологию от компании Feeva, с помощью которой можно видоизменять заголовки HTTP-пакетов от каждого пользователя, добавляя в них почтовый индекс в девятизначном формате “zip+4″. Провайдеру известен точный почтовый адрес каждого клиента, с которым она заключала контракт — столь ценной информации нет даже у Google.

На первый взгляд глупая инициатива может совершить настоящую революцию на ранке интернет-рекламы, ведь теперь рекламодатели смогут с точностью до улицы вычислять адрес каждого посетителя сайта — и показывать ему узко таргетированную рекламу. Таргетирование по IP-адресу их совсем не удовлетворяло (точность 35-40 км).

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

Более того, в будущем в заголовки пакетов можно будет внедрять и другую персональную информацию, разрешённую законодательством.
Total votes 55: ↑47 and ↓8 +39
Comments 60

История одного бага или как я ZIP паролил

Reading time 4 min
Views 7K
Website development *
Это история личного опыта, опыта поиска бага в чужом, старом, неподдерживаемом коде.
Все начиналось как обычно, передо мной стояла простая на первый взгляд задача: сделать упаковку файлов в текущей папке в ZIP архив с определенным паролем на C++/Qt, казалось бы что может быть проще?
Естественно, первый помощник это Google, он и подсказал что существует две Qt библиотеки для работы с ZIP архивами:
QuaZIP и OSDab ZIP, помимо всего, сам Qt поддерживает методы qCompress и qDecompress для упаковки.
Мною было выяснено что методы мне мало подходят, потому что они умеют лишь жать поток, все заголовки и шифрование на совести разработчика. Этот путь был слишком долог и от него я отказался сразу и обратил свое внимание на библиотеки.
OSDaB ZIP пришлось отбросить сразу, не смотря на то, что это отличная библиотека, ее код распространяется только под лицензией GPL, мне же нужно было встроить функционал в проприетарное приложение. К счастью QuaZIP оказался с двумя лицензиями GPL и LGPL. На нем я и остановился. Особо не вникая в его устройство, я набросал простейший класс для работы ним и начал тестировать.

узнать продолжение истории
Total votes 134: ↑127 and ↓7 +120
Comments 34

Небольшое тестирование двух библиотек для работы с ZIP архивами (язык C#)

Reading time 5 min
Views 29K
.NET *
Архивирование

Не раз приходилось работать с zip архивами с помощью C#, в моих случаях — это было скачивание архива с базой, потом извлекал базу на диск, если это был не текстовый файл, то динамически подключал базу данных, иначе просто считывал необходимые мне данные. Для этих целей я использовал ZipStorer, он мне нравиться тем, что очень просто делает возложенную на него работу, мало весит и является классом, который с минимальным количеством телодвижений оказывается в исполняемом файле. Сегодня я решил попробовать что-то другое, для чего выбрал две библиотеки SharpZipLib и DotNetZip, после чего провел небольшое тестирование, чтобы понять какая из них может мне быть полезной в будущем.
Читать дальше →
Total votes 57: ↑41 and ↓16 +25
Comments 20

Рекурсивный zip-архив

Reading time 5 min
Views 39K
Abnormal programming *
Translation
Многие хабрапользователи наверняка знакомы с квайнами — программами, выводящими собственный исходный код. Сегодня я хочу показать как сделать интересный вариант квайна — ZIP-архив, который распаковывается сам в себя.

Читать дальше →
Total votes 171: ↑168 and ↓3 +165
Comments 55

Google Docs Viewer теперь поддерживает форматы ZIP и RAR

Reading time 1 min
Views 7.3K
IT-companies
Google Docs Viewer теперь позволяет просматривать файлы в форматах ZIP и RAR, помимо 15 других форматов. Если кто-то пришлёт вам ZIP или RAR в Gmail, вы сможете просмотреть содержимое архива в браузере, просто нажав «Просмотреть»:


Читать дальше →
Total votes 104: ↑92 and ↓12 +80
Comments 64

Некоторые функции, которые я использую в своих проектах

Reading time 4 min
Views 2.3K
PHP *
Доброго времени суток, Под катом предлагаю Вам ознакомиться с функциями на PHP, которые я использую в большинстве своих проектов. В статье мы получим погоду для любого города мира при помощи Google, получим Whois и favicon домена, количество ретвитов определенной страницы и сделаем генератор ссылок на профили в твиттере, сделаем скриншот сайта, соберем css в 1 файл как у яндекса, распакуем zip и преобразуем картинку в ASCII-код.
Прошу под кат
Total votes 57: ↑33 and ↓24 +9
Comments 23

JSZip Создаем .zip файлы

Reading time 3 min
Views 21K
JavaScript *
Очень хороший и простой способ отдать клиенту несколько файлов в zip архиве. Не нагружая и без того нагруженный сервер.
var zip = new JSZip();
zip.add("Hello.txt", "Hello World\n");
img = zip.folder("images");
img.add("smile.gif", imgData, {base64: true});
content = zip.generate();
location.href="data:application/zip;base64,"+content;

Итак давайте разберем, что тут происходит.
Создается экземпляр нашего zip архива, класс JSZip,.
Далее мы можем добавлять в него любые данные, допустим Hello.txt, также можно добавить папку images.
Далее положить в нее smile.gif, все это завернуть, и отдать вам как zip фаил.
Узнать вкусные подробности
Total votes 66: ↑60 and ↓6 +54
Comments 34

Сжатие ZIP

Reading time 3 min
Views 71K
Client optimization *
Здравствуй Хабр!
Данная статья посвящена, как правильно и максимально сжимать файлы в ZIP-архивы. Данную статью я решил написать по той причине, что очень много приложений свои форматы упаковывают именно в ZIP. В данной статье разберем методы сжатия ZIP, приложения для сжатия в ZIP, и как можно улучшить сжатие.
Читать дальше →
Total votes 30: ↑13 and ↓17 -4
Comments 11