Ru-Board.club
← Вернуться в раздел «Программы»

» FreeArc: бесплатный open-source архиватор - Часть 2

Автор: Nick222
Дата сообщения: 24.05.2009 14:44
Giesmos
Вы немножко не поняли - не существует проблемы версии внешнего модуля для создателя архива.

Существует проблема совместимости между:
а) внешними модулями, использованными для создания данного архива;
б) внешними модулями, доступными при распаковке этого же архива.

Т.о., ИМХО, информация об использованных модулях, ссылках на них и их контрольных суммах должна быть внутри архива - т.к., если я через несколько месяцев получу архив и захочу его распаковать, - я должен быть уверен в совместимости тех модулей, что есть у меня, - и тех модулей, что использовал тот, кто создал данный архив.
Автор: Bulat_Ziganshin
Дата сообщения: 24.05.2009 14:59
первое. исъходите из очень порстой вещи - пользователь скачивает архив с расширением arc, созданный злоумышленником и распаковывает его с помощью скачанной с офсайта freearc.exe. у злоумышленника не должно быть никакой возможности выполнить вредоносный код при этом


Цитата:
Да и антивирус запустить тоже можно...

давайте перестанем на это ссылаться. если злоумышленник сможет заращить всего 100 тысяч ПК вместо 100 миллионов - мало не покажется


Цитата:
суть не меняется, по ссылки можно запросто вирус загрузить.

ссылка относительно офсайта (скажем freearc.org/modules/*) будет вредоносной только при условии заражения самого сайта. что впрочем совсем не исключено. с другой стороны таким образом можно и "новую" версию программы выпустить


Цитата:
При распаковке FA проверяет наличие указанных внешних модулей и сверяет их контрольные суммы. При отсутствии или несовпадении - предлагает скачать нужные модули - что - при согласии юзера - сам и делает.

по большому счёту, пользователю не нужен модуль с той же КС. ему нужен модуль, совместимый с запакованной информацией, и это может быть более свежая и даже более старая версия. т.е. должен быть "номер версии сжатых данных", и возможность выкачать модуль поддерживающий заданный модуль с поддержкой распаковки заданной версии формата данных

иначе говоря, когда пользователь заказывает алгоритм lzma, сжатие может быть осуществлено в формате lzma.1/lzma.2 и т.д. соответственно, при распаковке нужно найти модуль, поддерживающий это lzma.1 или lzma.2
Автор: Nick222
Дата сообщения: 24.05.2009 15:15
Bulat_Ziganshin
Разумно - а как технически это сделать? Проверять не контрольную сумму, а название алгоритма и версию его реализации?
Автор: Bulat_Ziganshin
Дата сообщения: 24.05.2009 15:18

Цитата:
Разумно - а как технически это сделать? Проверять не контрольную сумму, а название алгоритма и версию его реализации?

я же написал - ввести понятие "версии формата". т.е. алгоритм не просто lzma, а lzma.1

хотя в том, что касается внешних упаковщиков - может за исключением нескольких поддерживаемых официально - проще проверять по КС
Автор: egor23
Дата сообщения: 24.05.2009 15:30
Bulat_Ziganshin

Цитата:
ссылка относительно офсайта (скажем freearc.org/modules/*) будет вредоносной только при условии заражения самого сайта.

речь шла про произвольный упаковщик и соответственно про произвольный линк.

Цитата:
ссылка относительно офсайта (скажем freearc.org/modules/*) будет вредоносной только при условии заражения самого сайта.

до модульности архиватора нужно ещё дожить...
Автор: Giesmos
Дата сообщения: 24.05.2009 15:51
Я попробую объеденить все высказанное в одну картину, на сколько я сам смог ее нарисовать:

Есть пользователь 1 (П1) - у него установлена самая новая версия FA с самыми последними модулями.
Есть пользователь 2 (П2) - у него установлена не самая новая версия FA без модулей.
П1 создает arc с применением различных модулей. В arc записывается информация об:
1. применяемых алгоритмах сжатия (lzma.1/lzma.2/ppmd) - для определеления совместимых модулей/архиватора
2. версии архиватора/модулей (FA 0.65/packjpg 2.3a) - для определения модуля/архиватора, с помощью которого было создано/гарантированно распаковывается
3. (? сомневаюсь в ее надобности) ссылка на сайт FA с модулями.

Далее, arc, созданный П1 попадает на ПК П2, где при попытке разархивирования, FA предлагает либо скачать обновление/недостающие модули с сайта (ссылка изначально прописана в самом FA, и сам FA должен скачивать и устанавливать обновления/модули без дополнительных ручных опреаций пользователя - требуется только выбор последнего) или же предлагает выбрать, где лежит архив с нужными обновлениями/модулями, либо модули в распакованном виде (при этом, FA также все это копирует/устанавливает к себе).
Далее происходит, непосредственно, разархивирование arc.



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

Проблема только может быть в том, что на сайте уже может не быть тех старых версий, с помощью которых производилась упаковка, зато будут новые, поддерживающие тот алгорит, но имеющие другие контрольные суммы. Проще тогда делать привязку к алгоритму. Допустим, сделать ветку freearc.org/modules/lzma2, где всезда будет лежать новейшая версия модуля, подддерживающая распаковку lzma2. Это только один из вариантов.
В крайнем случае, можно оставить самый универсальный вариант - чтобы предлагалось автоматическое обновление FA вместе со вмеми модулями разом. Топорно, радикально, но вариант.

Добавлено:

Цитата:
речь шла про произвольный упаковщик и соответственно про произвольный линк.

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

Цитата:
ссылка относительно офсайта (скажем freearc.org/modules) будет вредоносной только при условии заражения самого сайта.

Даже в случае атаки на сайт с целью взлома и получения доступа к файлам, практически невероятно, что кто-то специально перезаражает все файлы на нем (а заодно исправит контрольные суммы), после чего будет держать сайт "как ни в чем нибывало" (при этом и разработчик и хостер должны будут сидеть сложа руки и ничего не делать).
Автор: Bulat_Ziganshin
Дата сообщения: 24.05.2009 16:33

Цитата:
речь шла про произвольный упаковщик и соответственно про произвольный линк.

тогда опасности будут такие же как если позволить включать распаковщик в сам архив
Автор: DemonAk
Дата сообщения: 24.05.2009 19:37
Пробывал упаковать файлы в sfx в gui (последней альфе), убираю авто опр типа файлов, прописываю в groups где precomp нужное мне расширение, все необходимые препроцессоры присутствуют, а архиватор все равно пакует без precomp'a.

Еще тут на днях напаролся, запаковал в sfx потом сделал образ, уже стал инсталить, а он мне ошибку что нет нужного препроцессора, действительно хотелось бы знать с помощью какого препроцессора паковался архив (думаю в арк инфо было бы не плохо поместить эту информацию. И еще хотелось бы знать если уже диск записан с sfx архивом, то распакуется ли он при нахождении рядом нужных препроцессоров?.
Автор: Giesmos
Дата сообщения: 24.05.2009 20:07

Цитата:
Еще тут на днях напаролся, запаковал в sfx потом сделал образ, уже стал инсталить, а он мне ошибку что нет нужного препроцессора,

С базовыми опциям (-m3, -m9x, -max и т.п.) FA, вроде бы как, не использует внешних модулей. А если использовался precomp, то архивирующему виднее, какими модулями он пользовался.

Цитата:
И еще хотелось бы знать если уже диск записан с sfx архивом, то распакуется ли он при нахождении рядом нужных препроцессоров?.

Распакуется. Только еще сам precomp тудаже надо поместить. Если есть сомнения - лучше проверить на RW-болванке.
Автор: DemonAk
Дата сообщения: 24.05.2009 21:07

Цитата:
С базовыми опциям (-m3, -m9x, -max и т.п.) FA, вроде бы как, не использует внешних модулей. А если использовался precomp, то архивирующему виднее, какими модулями он пользовался.


использовал -mx -ld=512m и сам удивился почему он использовал precomp ppm и еще какойто.


Цитата:
Распакуется. Только еще сам precomp тудаже надо поместить. Если есть сомнения - лучше проверить на RW-болванке.


Понятно, просто вопрос из за чего возник ведь при распаковке рядом создаются темповские файлы. Т.е если все на диске присутствует, то FA будет созавать темпы %temp% или нет.
Автор: egor23
Дата сообщения: 25.05.2009 05:54
Bulat_Ziganshin
у ярлыков FreeArc\Change skin указана
Рабочая папка: "C:\Program Files\FreeArc"
надо
Рабочая папка: "C:\Program Files\FreeArc\bin"
gtk2_prefs.exe возможно до этого нет дела
а вот FreeArc не цепляет из-за этого внешние упаковщики, если они в PATH не прописаны, а лежат рядом.

DemonAk

Цитата:
Пробывал упаковать файлы в sfx в gui (последней альфе), убираю авто опр типа файлов, прописываю в groups где precomp нужное мне расширение, все необходимые препроцессоры присутствуют, а архиватор все равно пакует без precomp'a.

precomp в PATH?
или рядом лежит? если рядом читайте выше.
Автор: DemonAk
Дата сообщения: 25.05.2009 12:12
egor23


Цитата:
precomp в PATH?
или рядом лежит? если рядом читайте выше.


Все внешние препроцессоры лежат в bin, сделал как ты написал и все равно не подхватывает =\. Видимо в FA это еще не до конца доделано или у меня руки кривые).
Автор: egor23
Дата сообщения: 25.05.2009 12:50
DemonAk

Цитата:
[External compressor:precomp04,precomp038,precomp037]

имя файла должно быть
precomp04.exe или
precomp038.exe или
precomp037.exe
Автор: crotoff
Дата сообщения: 25.05.2009 15:34
10 мая запаковал книжку http://gettyfile.ru/308957/ теперь распаковывается всё кроме image231.jpg - на нём выдаёт ошибку CRC

WARNING: CRC error in file "узлы/image231.jpg"
Extracted 157 files, 2.481.184 => 2.850.656 bytes. Ratio 87.0%
Extraction time: cpu 0.19 secs, real 4.00 secs. Speed 713 kB/s
There were 1 warning(s)

Упаковывал с precomp04, теперь что этот файл вообще невозможно извлечь? Jpegи из других файлов, созданных в это же время извлекаются без ошибок

Добавлено:
может это был gif с неправильным расширением, из-за этого косяк такой случился
Автор: egor23
Дата сообщения: 25.05.2009 16:26
Bulat_Ziganshin

Цитата:
10 мая запаковал книжку http://gettyfile.ru/308957/ теперь распаковывается всё кроме image231.jpg - на нём выдаёт ошибку CRC

FreeArc при распаковке\тестировании вылетает с ошибкой
Инструкция по адресу "0x77c30ac4" обратилась к памяти по адресу "0x0000000c". Память не может быть "read".

вместо того, чтобы сказать, что метод упаковки не поддержан

crotoff
что за метод bcm007?

Добавлено:
crotoff

Цитата:
может это был gif

вроде jpeg

а precomp jpeg всегда в lossless обрабатывает?

Добавлено:
книжка осталась?

Добавлено:

Цитата:
книжка осталась?

книжку нашёл
так пакует этот файл, image231.jpg, precomp04 получается не lossless
Автор: crotoff
Дата сообщения: 25.05.2009 17:36
egor23
у тебя извлёкся? кинь ссылку плиз а то я удалил распакованное
Автор: egor23
Дата сообщения: 25.05.2009 17:45
crotoff

Цитата:
у тебя извлёкся?

используйте -kb
чтобы "битые" файлы оставлял

Цитата:
кинь ссылку плиз а то я удалил распакованное

http://readall.ru/lib_page_readall_107003.html
Автор: crotoff
Дата сообщения: 25.05.2009 17:49
всё, уже не надо, нашёл на старом компе оригинал. Там обложка была просто в этом jpgе. Просто тревожный симптом. То ли на флешке был сбойный участок, то ли прекомп сыроватый

Добавлено:
egor23
с -kb всё распаковалось, ты волшебник
Автор: egor23
Дата сообщения: 25.05.2009 18:05
crotoff

Цитата:
с -kb всё распаковалось, ты волшебник

но не забывайте этот файл битый
Автор: Giesmos
Дата сообщения: 25.05.2009 23:16
crotoff

Цитата:
То ли на флешке был сбойный участок, то ли прекомп сыроватый

"тестировать" негарантированно надежный архиватор на негарантированно надежной флешке... - это жестоко
egor23

Цитата:
так пакует этот файл, image231.jpg, precomp04 получается не lossless

Что-то не верится... Если так, что это уже ни в какие ворота не лезет. Это тогда не архивирование выходит, а перегонка из одного lossy формата в другой с еще большими потерями (относительно когда-то существовавшего оригинала).

"# JPG
Precomp uses packJPG by Matthias Stirner to losslessy compress JPG images."
Я уж было начал беспокоится
http://schnaader.info/precomp.html
Автор: crotoff
Дата сообщения: 26.05.2009 07:40
Не-не, в данном случае precomp ни при чём, скорее всего конец архива битый, не успел на флэшку записаться полностью. Бывало precomp04 -slow при упаковке вылетал с ошибкой, ну так понятно что всё это альфа, а гарантию часовой завод только даёт.

Цитата:
что за метод bcm007?

это BCM v0.07 - я им пакую текстовые файлы заместо PPMD потому что скорость выше
Автор: egor23
Дата сообщения: 26.05.2009 07:55
crotoff

Цитата:
это BCM v0.07 - я им пакую текстовые файлы заместо PPMD потому что скорость выше

вопрос был что за метод, что прописано в arc.ini, а то я не догадливый.

Цитата:
Не-не, в данном случае precomp ни при чём, скорее всего конец архива битый

вроде пытался дохотчиво писать

Цитата:
так пакует этот файл, image231.jpg, precomp04 получается не lossless

возьмите файл image231.jpg и упакуйте precomp04 и всё сами увидите
почему так происходит интересуйтесь у разработчика precomp

если бы был архив битый были бы другие ошибки...
Автор: crotoff
Дата сообщения: 26.05.2009 08:44

Цитата:
возьмите файл image231.jpg и упакуйте precomp04 и всё сами увидите

Честно сказать не увидел ничего особенного... упаковал с опцией -slow и распаковал обратно. То же самое проделал через FA

Compressed 1 file, 48.240 => 48.241 bytes. Ratio 100.0%
Compression time: cpu 0.02 secs, real 0.13 secs. Speed 386 kB/s
All OK

Extracting archive: C:\Є-ЁЈЁ Ї Є\image231.arc
Extracted 1 file, 48.241 => 48.240 bytes. Ratio 100.0%
Extraction time: real 0.02 secs. Speed 3.216 kB/s
All OK


Добавлено:
если смущает невысокая степень сжатия, то это скорее всего оттого что JPG прогрессивный, с этим даже у PAQ8 проблемы насколько я знаю

Добавлено:
для интереса попробовал paq8p3 -5

Compressed 1 file, 48.240 => 45.650 bytes. Ratio 94.6%
Compression time: real 8.04 secs. Speed 6 kB/s
All OK

Extracting archive: C:\Є-ЁЈЁ Ї Є\image231.arc
Extracted 1 file, 45.650 => 48.240 bytes. Ratio 94.6%
Extraction time: real 7.92 secs. Speed 6 kB/s
All OK
Автор: egor23
Дата сообщения: 26.05.2009 09:04
Bulat_Ziganshin
FreeArc
Распаковка
Дополнительные опции
-kb - не срабатывает

упаковывал -mprecomp
precomp04
http://gettyfile.ru/309466/
image231.zip - image231.arc \ image231.jpg


Добавлено:
crotoff

Цитата:
Честно сказать не увидел ничего особенного... упаковал с опцией -slow и распаковал обратно. То же самое проделал через FA

Compressed 1 file, 48.240 => 48.241 bytes. Ratio 100.0%
Compression time: cpu 0.02 se

если не заметили, то сжатия нет...

метод упаковки -mprecomp

Добавлено:
crotoff
упаковали
precomp04 -oimage2311.pcf image231.jpg
распаковали
precomp04 -oimage2311.jpg -r image2311.pcf

image231.jpg не равен image2311.jpg
Автор: crotoff
Дата сообщения: 26.05.2009 09:52
действительно
8735cdd40dbe2e4635ce9ad5c8795458 *image231.jpg
e60b595bd31ac5d4f07de70fcf4f77b5 *image231.jpg

хотя размер тот же и выглядят похоже...

Добавлено:
а кто знает как принудительно отключить в precomp04 packjpg_dll.dlll?
Автор: Spate
Дата сообщения: 26.05.2009 12:16
crotoff

Цитата:
а кто знает как принудительно отключить в precomp04 packjpg_dll.dlll

-t:
Enables or disables detecting of certain compression types. For command-line use, there are two variants:
t+ enables certain types and disables the others, while t- disables certain types and enables the others.
Using: -t-j for example disables JPEG recompression and leaves all other types as before.
Автор: crotoff
Дата сообщения: 26.05.2009 13:47
Spate
удалил packjpg_dll.dll и запустил precomp04 -t-j
"Приложению не удалось запуститься поскольку packjpg_dll.dll не был найден"
Похоже что они всегда в паре работают и не могут друг без друга
Автор: sabio
Дата сообщения: 26.05.2009 13:58
crotoff
наверное, просто библиотека подгружается всегда
а вот использование её можно выключить параметром
Автор: spider91
Дата сообщения: 26.05.2009 19:29
почему если я пытаюсь сжать файлы с параметрами

Код: arc.exe a -lc- -r -mlzma:650mb:ht4:128:mc2 data.arc papka/*
Автор: Bulat_Ziganshin
Дата сообщения: 26.05.2009 19:35

Цитата:
выдает ошибку что не может найти память для распаковки?

он не может найти память для (рас)паковки. видишь суслика?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051

Предыдущая тема: Universal Share Downloader (USD)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.