PDA

Показать полную графическую версию : [addon] Universal Extractor


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33

apozlevich
04-12-2012, 15:01
gora, Официальный не мог распаковать некоторые Inno Setup, хотя Inno Unpacker последней версии с этим справлялся. В этом аддоне обновленные движки распаковки?

Также предлагаю интеграцию в %PATH%.

sklart
04-12-2012, 16:00
apozlevich, один (http://forum.oszone.net/post-1927207-484.html) из changelog'ов неофициальной сборки.

МИШАНЧИК
07-12-2012, 11:35
Подскажите пожалуйста, а nsis файлы не распаковывает? А то получаются файлы типа .data, [0].
Нельзя ли как-то до нормальных файлов добраться?

alert30
07-12-2012, 17:15
nsis файлы »
Если Вы говорите NSIS-установщики (*.EXE), то они успешно распаковывается; там папки $TEMP, $SYSDIR, $INSTALLDIR и сами установочные файлы распаковывается.
А то получаются файлы типа .data, [0]. »
Такое бывает, если в NSIS-установщиках использовано специфические плагины.

MKN
07-12-2012, 18:04
Подскажите пожалуйста, а nsis файлы не распаковывает? »
Не всегда, так как надо - при распаковке сложных дистр. , часть файлов после распаковки иногда почему то отсутствует, а в папке распаковки - каша из папок из разных мест... Да и толку от распаковки NSIS - нет никакого...

Nun-Nun
07-12-2012, 19:54
Существует ли лекарство от:
А то получаются файлы типа .data, [0]. »

Iska
08-12-2012, 00:21
Да и толку от распаковки NSIS - нет никакого... »
Отчего же… Иногда имеет смысл узнать версию исполняемого файла до его установки, почитать readme/справку до установки, а не после. Иногда имеет смысл посмотреть, что может быть уставлено «довеском» к основному продукту. И т.п.

wolkow70
08-12-2012, 15:30
Как правило, NSIS инсталлятор открывается в 7ZFM, посредством которого уже можно извлечь из установщика конкретно интересующий файл.
Иногда имеет смысл посмотреть, что может быть уставлено «довеском» к основному продукту. И т.п. »
Это да. И перепаковать потом без довесков.

MKN
09-12-2012, 10:52
И перепаковать потом без довесков. »
Если предполагается перепаковка программы, то программу сначала всё равно придётся установить, отследив механизм установки. И совершенно нет смысла предварительно её распаковывать .
И смотреть на файлы в NSIS установщике, тоже особой нужды нет, тем более что их структура местоположения, при использовании Universal Extractor_а, почти всегда разрушается. Пустая трата времени, ради сомнительного любопытства...
Universal Extractor интересен явно не бестолковой распаковкой NSIS дистрибутивов...

wolkow70
09-12-2012, 13:12
И совершенно нет смысла предварительно её распаковывать »
Здравствуйте ... , после установки на разные операционные системы (в том числе отличающиеся по их разрядности), мы часто имеем и отличающиеся комплекты файлов в папке установки. Поэтому и возникает необходимость распаковывать оригинальные инсталляторы, иначе где же вы возьмете сами дистрибутивные файлы для различных вариантов установки ?

И смотреть на файлы в NSIS установщике, тоже особой нужды нет »
У кого нет нужды? Когда и нет, а когда и есть. Иногда возникает необходимость сравнить версии файлов в дистрибутивах разных версий, прежде чем принять решение о целесообразности обновления той или иной сборки. Или, например, подсмотреть список поддерживаемых драйвером устройств в inf-файле (дистрибутивы многих драйверов (AMD) собираются в NSIS).

Пустая трата времени »
Зависит от целеполагания...

Если предполагается перепаковка программы, то программу сначала всё равно придётся установить, отследив механизм установки. »
Отслеживать установку программ здесь почти все умеют. Какое это вообще имеет отношения к данной теме ?

Iska
09-12-2012, 14:38
тем более что их структура местоположения, при использовании Universal Extractor_а, почти всегда разрушается. Пустая трата времени, ради сомнительного любопытства... »
Кхе-кхе… Ну, я-то смотрю не Universal Extractor'ом. Я и не говорил, что смотрю Universal Extractor'ом. Мой пост касался лишь возможных причин.

И это не пустая трата времени. Вот, например, текущий скрипт обновления инсталляций Speccy:
@echo off
setlocal enableextensions enabledelayedexpansion

if exist "%Temp%\Latest version.htm" del /f /q "%Temp%\Latest version.htm"

set WGet=%ProgramFiles%\GnuWin32\bin\wget.exe
set sURL=http://www.piriform.com/speccy/download

>nul chcp 1251
"%WGet%" --tries=20 --continue --no-check-certificate --output-document="%Temp%\Latest version.htm" "%sURL%"
>nul chcp 866

if exist "%Temp%\Latest version.htm" (
for /f "usebackq tokens=3" %%i in (
`type "%Temp%\Latest version.htm" ^| find.exe "Latest version:"`
) do set sVersion=%%i

set sVersion=!sVersion:^<b^>=!
set sVersion=!sVersion:^</b^>=!
set sVersion=!sVersion:~0,-2!

if defined sVersion (
if exist "%Temp%\Latest version.htm" del /f /q "%Temp%\Latest version.htm"

echo Determine version [!sVersion!]

call :GetURLVersion !sVersion:.= !

if exist "%Temp%\spsetup!URLVersion!.exe" del /f /q "%Temp%\spsetup!URLVersion!.exe"

set sURL=http://download.piriform.com/spsetup!URLVersion!.exe

>nul chcp 1251
"%WGet%" --tries=20 --continue --timestamping --no-check-certificate --directory-prefix="%Temp%" "!sURL!"
>nul chcp 866

if exist "%Temp%\spsetup!URLVersion!.exe" (
"C:\Program Files\7-Zip\7z.exe" x -o"%Temp%" "%Temp%\spsetup!URLVersion!.exe" "Speccy.exe"

if !errorlevel! equ 0 (
if exist "%Temp%\Speccy.exe" (
for /f "usebackq tokens=2,3,5 delims= ,. " %%i in (`filever.exe /v "%Temp%\Speccy.exe" ^| find.exe /i "FileVersion"`) do set sVersion=%%i.%%j.%%k

if defined sVersion (
echo Defined version as [!sVersion!]
md ".\Speccy !sVersion!"
copy /-y "%Temp%\spsetup!URLVersion!.exe" ".\Speccy !sVersion!\"

if exist ".\Speccy !sVersion!\spsetup!URLVersion!.exe" (
set sURL=http://www.piriform.com/speccy/download/portable/downloadfile

>nul chcp 1251
"%WGet%" --tries=20 --continue --no-check-certificate --output-document="%Temp%\spsetup!URLVersion!.zip" "!sURL!"
>nul chcp 866

if exist "%Temp%\spsetup!URLVersion!.zip" (
copy /-y "%Temp%\spsetup!URLVersion!.zip" ".\Speccy !sVersion!\"

if exist ".\Speccy !sVersion!\spsetup!URLVersion!.zip" (
del /f /q "%Temp%\spsetup!URLVersion!.zip"
echo Success. Done.
) else (
echo Can't find [.\Speccy !sVersion!\spsetup!URLVersion!.zip].
)
) else (
echo Can't find [%Temp%\spsetup!URLVersion!.zip].
)

set sURL=http://www.piriform.com/speccy/download/slim/downloadfile

>nul chcp 1251
"%WGet%" --tries=20 --continue --no-check-certificate --output-document="%Temp%\spsetup!URLVersion!_slim.exe" "!sURL!"
>nul chcp 866

if exist "%Temp%\spsetup!URLVersion!_slim.exe" (
copy /-y "%Temp%\spsetup!URLVersion!_slim.exe" ".\Speccy !sVersion!\"

if exist ".\Speccy !sVersion!\spsetup!URLVersion!_slim.exe" (
del /f /q "%Temp%\spsetup!URLVersion!_slim.exe"
echo Success. Done.
) else (
echo Can't find [.\Speccy !sVersion!\spsetup!URLVersion!_slim.exe].
)
) else (
echo Can't find [%Temp%\spsetup!URLVersion!_slim.exe].
)
) else (
echo Can't find [.\Speccy !sVersion!\spsetup!URLVersion!.exe].
)

if exist "%Temp%\Speccy.exe" del /f /q "%Temp%\Speccy.exe"
if exist "%Temp%\spsetup!URLVersion!.exe" del /f /q "%Temp%\spsetup!URLVersion!.exe"
)
) else (
echo Can't find [%Temp%\Speccy.exe].
)
) else (
echo Error while extracting [Speccy.exe] from [%Temp%\spsetup!URLVersion!.exe].
)
) else (
echo Can't find [%Temp%\spsetup!URLVersion!.exe].
)
) else (
echo Can't determine Speccy version.
)
) else (
echo Can't find [%Temp%\Latest version.htm].
)

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
:GetURLVersion
setlocal enableextensions enabledelayedexpansion

set sProcName=%~0

endlocal & set %sProcName:~4%=%~1%~2
exit /b 0
rem ==========================================================================

Здесь 7-Zip используется для извлечения исполняемого файла Speccy.exe из инсталляции NSIS для того, чтобы убедиться, что загруженная инсталляция действительно соответствует указанной версии.

Понятно, что я, возможно, выбрал не самый удачный пример: здесь номер версии есть и в имени инсталляции, и сама ссылка на загрузку формируется программно из версии на странице. Но бывает и иначе, когда ссылка представляет собой нечто наподобие «…\DownloadLatest.php» и файл инсталляции именуется как «Bla-bla-bla setup.exe».

MKN
09-12-2012, 16:06
Здесь 7-Zip используется для извлечения исполняемого файла »
Пожалуй в не том русле мы беседовали... То, что извлечение чего либо, из какого либо архива или инсталлятора и для каких либо целей - бывает действительно нужно - спору нет.
Только Universal Extractor тут получается не при делах. Никто его в здравом уме, для конкретных целей использовать не станет. Для этого есть другой инструментарий. В частности, тот же 7z.

А если говорить о возможностях Universal Extractor_а для распаковки NSIS дистрибутивов, то 100% "чистого" извлечения ожидать не приходится. Особенно когда многие ждут от этого ещё и извлечения скрипта, как происходт с извлечением из многих Inno...

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

Iska
09-12-2012, 17:16
Пожалуй в не том русле мы беседовали... »
Главное, что разобрались, кто что имел в виду ;).

wolkow70
11-12-2012, 18:20
Вот, спор абсолютно ни о чем!
Сейчас специально распаковал несколько одних и тех же NSIS дистрибутивов с помощью 7z и с помощью Universal Extractor.
Сравнил образовавшиеся папки с помощью Beyond Compare. Абсолютно идентичный результат распаковки!
А что касается непривычной структуры вложенности каталогов и файлов, дак она формируется не при распаковке, а на этапе компиляции самого скрипта и для несведущего пользователя представляется несколько странной. Но, она изначально такой и является, и если открыть инсталлятор в 7z, то это видно.
Поэтому, не надо катить бочку на Universal Extractor. Это и есть 100% "чистое" извлечение.
Все он правильно распаковывает. И пользоваться им часто удобнее. Хотя это дело вкуса.

gora
11-12-2012, 18:40
Только Universal Extractor тут получается не при делах. Никто его в здравом уме, для конкретных целей использовать не станет. Для этого есть другой инструментарий. В частности, тот же 7z. »
Никто, в здравом уме, не станет утверждать, что 7z извлекает NSIS правильнее и\или корректнее, нежели UE. Для этого достаточно взглянуть в исходники UE и увидеть там, что UE использует для этого... тот же самый консольный архиватор 7z.exe. :cool:

Iska
11-12-2012, 23:05
Вот, спор абсолютно ни о чем!
Сейчас специально распаковал несколько одних и тех же NSIS дистрибутивов с помощью 7z и с помощью Universal Extractor.
Сравнил образовавшиеся папки с помощью Beyond Compare. Абсолютно идентичный результат распаковки! »
UE использует для этого... тот же самый консольный архиватор 7z.exe. »
Именно. Даже в Far Manager'е, где есть возможность выбора между несколькими плагинами для этого — результат будет примерно одинаков, разница будет в основном в представлениях внутренностей инсталляции:

http://img23.imageshack.us/img23/6931/image00120121211220952.png
ибо во всех из них поддержка NSIS базируется на коде из 7-zip.

MKN
12-12-2012, 09:04
Сравнил образовавшиеся папки с помощью Beyond Compare. Абсолютно идентичный результат распаковки! »
Далеко не всегда. К прмеру, я распаковываю NSIS дистр Nero - каша из папок, дОлжных находится в конкретных местах.
Двух папок вообще нет.
Ничего удивительного и ничего спорного, т.к. :
Никто, в здравом уме, не станет утверждать, что 7z извлекает NSIS правильнее и\или корректнее, нежели UE »
Соответсвенно вывод :
Все он правильно распаковывает.»
мягко говоря не корректен.
Касательно :
спор абсолютно ни о чем! не надо катить бочку на Universal Extractor.»
Читаем ещё раз вышесказанное. Осознаём, что речь исключительно об интересе пользователей к тому, как и что распаковывает Universal Extractor из NSIS дистрибутивов и понимаем, что распаковка часто не корректна (см. заключение выше и не только моё) , а многие пользователи напрасно надеялись извлечь скрипт, как из Inno дистр (кстати, из Inno файлы извлекаются также не корректно).
Вывод очевиден и тема была бы исчерпана (собственно на том и порешили с Iska, ) , если бы её внимательно читали...

ps Если кому то интересно моё отношение к Universal Extractor - то это хороший, полезный продукт. Но не надо от него требовать и ждать не возможного. :)

wolkow70
12-12-2012, 10:22
я распаковываю NSIS дистр Nero »
Если речь идет об оригинальном дистрибутиве Nero, то он не распаковывается корректно ни в 7z, ни в UE.
Точнее говоря, при распаковке образуются абсолютно одинаковые наборы папок и файлов (опять специально сейчас сравнил), даже ни сколько ни похожие на дистрибутив NSIS установщика, что наталкивает на мысль об использовании кроме 7z еще и UPX сжатия.

А если вы распаковываете чью-то сборку, то адресуйте мысль ее автору.

если бы её внимательно читали... »

Это Вам следовало бы внимательнее читать, если уж не мой пост, то посты более заслуженных участников форума Iska и gora.

Никто, в здравом уме, не станет утверждать, что 7z извлекает NSIS правильнее и\или корректнее, нежели UE. Для этого достаточно взглянуть в исходники UE и увидеть там, что UE использует для этого... тот же самый консольный архиватор 7z.exe. »

Сказано абсолютно правильно, и при правильной интерпретации должно быть понятно всем.

wolkow70
12-12-2012, 10:39
а многие пользователи напрасно надеялись извлечь скрипт »

А кто им обещал, что они отыщут там исходный скрипт ?

MKN
12-12-2012, 11:27
Мдя... Видно совсем скучно тебе wolkow70, :) На ровном месте, после того как всё уже было решено, такую пыль поднять надо уметь... :)




© OSzone.net 2001-2012