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

» Universal Extractor (UniExtractor)

Автор: Tilks
Дата сообщения: 12.03.2015 18:32

Цитата:
далеко не каждый AutoIt3 compiled script executable определяется trid.exe, правильно...

trid.exe плохо распознаёт, потому что нельзя указать искать порядок байт в любом месте файла, вот и бред получается.
посмотрел сигнатуру exe-autoit3.trid.xml , полный бред, как вообще что то находит???
второй вариант с PeId, тот не предназначен для файлов, где искать надо в overlay, т.е. за пределами PE файла.
А в начале overlay как раз и есть сигнатура, по которой myAutToExe определяет, сможет распаковать или нет.
Можете попробовать в своих файлах в Hex-редакторе найти такой порядок байт A3484BBE986C4AA9994C530A86D6487D
наверно определится больше, чем peid и trid.
Автор: addhaloka
Дата сообщения: 16.03.2015 18:59
korosya 01:06 06-03-2015
Цитата:
Обновил свой конструктор http://forum.oszone.net/post-2479402-5.html

Огромное спасибо! Наконец-то сборка, где нет данного косяка.
Автор: MKN
Дата сообщения: 18.03.2015 18:15
Tilks

Цитата:
Можете попробовать в своих файлах в Hex-редакторе найти такой порядок байт A3484BBE986C4AA9994C530A86D6487D наверно определится больше, чем peid и trid.

Точно так, определяется всё правильно. peid и trid - отдыхают...
На этой базе сделал декомпилятор скриптов au3exe (использовал Exe2Aut, с предварительным определением принадлежности к au3exe )
После установки утилитки, в контекстном меню появится пункт "SpecExtractor" + пункты выбора действий.
(декомпилятор для InnoSetup добавил так просто, для перспективы (пока без предварительного детекта Inno.exe)... )
Проверял на W7x32 и W81x64, декомпилировав последний UniExtract.exe (без предварительной UPX-распаковки, которая не нужна). Вроде работает нормально. Потестите...
http://rghost.ru/private/7YDFJfFHG/fcaf2c13e3a1dd06096ffb092a259c5f
Автор: MKN
Дата сообщения: 19.03.2015 12:17
Кто подскажет, используется ли в Universal Extractor_е утилитка SfxSplit.exe (она есть в составе ) ?
Она должна бы извлекать из 7ZSFX - составляющие компоненты (7z архив, файл конфига и SFX модуль)
Что то я такого извлечения не наблюдаю... И есть ли у SfxSplit.exe командные ключи ?
Автор: korosya
Дата сообщения: 19.03.2015 14:04
MKN
В моем нет. Подумываю добавить. Ключи в ней есть. Узнавал их методом тыка (надо бы запросить у автора ). Сейчас забыл, но что-то вроде
-m <файл для модуля>
-a <файл для архива>
-c <файл для конфига>
За точность не поручусь - вбивал просто в комстроке по очереди все буквы. Но лучше, наверное, попросить у автора - вдруг есть не тривиальные ключи.

И просьбочка по поводу SpecExtractor - можно ли получить исходники инсталлятора и утилитки (насколькоя понял - там nsis)
Автор: boi1eI
Дата сообщения: 19.03.2015 14:35
MKN
конечно есть
7zsplit.exe "name.exe" -m "name.sfx" -c "name.txt" -a "name.7z" -rh
-rh - тихий режим
Автор: Skif_off
Дата сообщения: 19.03.2015 14:41
korosya

Цитата:
В моем нет. Подумываю добавить.

Если есть возможность, добавьте, пожалуйста, удобная штука.
Автор: boi1eI
Дата сообщения: 19.03.2015 15:00
И еще, если распаковать отдельно sfx модуль, то к нему в конце прицепляется текущий конфиг, второй, третий... такой баг. И при дальнейшей сборке обратно в exe-шник будет выполняться вот этот приаттаченный. Т.е. в этом случае его надо отрезать.
Автор: MKN
Дата сообщения: 19.03.2015 15:35
boi1eI - благодарю !

Продублирую ещё такой вопрос, (т.к. на oszone промолчали...) :

Какая общая уникальная сигнатура у InnoSetup инсталляторов ?

К примеру, то что предлагается здесь : http://file-extension.net/seeker/file_extension_exe ,
а именно - 4D 5A 50 00 02 00 00 00 - лажа полная, т.к. определяет принадлежность к куче других исполняемых файлов, не имеющих никакого отношения к ISS ...

Может можно детектировать ISS по строке 49 6E 6E 6F 20 53 65 74 75 70 (по тексту : Inno Setup) ? Она вроде как присутствует во всех InnoSetup инсталляторах... Или всё же есть нечто другое, конкретно уникальное ?

korosya
Там всё скучно и ничего особенного, вся соль в плагине : http://wiz0u.free.fr/prog/nsisFile/
Если действительно интересует, скину в ПМ
Автор: korosya
Дата сообщения: 19.03.2015 17:55
MKN

Цитата:
Если действительно интересует, скину в ПМ

Да интересует. Заранее спасибо.


Цитата:
Какая общая уникальная сигнатура у InnoSetup инсталляторов ?  

А этот вопрос - в рамках UniExtractor-а? Он плохо определяет?

Автор: MKN
Дата сообщения: 19.03.2015 18:46
korosya

Цитата:
А этот вопрос - в рамках UniExtractor-а? Он плохо определяет?

Раз используется trid - значит уже плохо... (сам видишь, какую сигнатуру для Inno, использует trid... И au3exe он нам уже определил... )
Скрипт скину завтра.
Автор: korosya
Дата сообщения: 20.03.2015 15:44
boi1eI
MKN

Цитата:
-rh - тихий режим

Не правильно. Тихий режим -b (в версии 1.0.2.1020)


Цитата:
Если есть возможность, добавьте, пожалуйста, удобная штука.

Как определить, что exe-шник является sfx-архивом?


Цитата:
И еще, если распаковать отдельно sfx модуль

Не предполагаю извлекать sfx модуль, только конфиг.


Автор: MKN
Дата сообщения: 20.03.2015 15:54
korosya

Цитата:
Как определить, что exe-шник является sfx-архивом?

Найти в файле строку 53 46 58 20 EC EE E4 F3 EB FC: SFX модуль (или 53 46 58 20 6D 6F 64 75 6C 65 - SFX module)
Но т.к. средствами AU не понятно как это сделать, то самое простое -извлечь из детектируемого файла инфу с помощью -sfxversion и на этом основании извлекать (или не извлекать) содержимое.

Цитата:
Не предполагаю извлекать sfx модуль, только конфиг.

А почему ? Пусть уж всё содержимое извлекается. Ключи 7zsplit.exe ведь позволяют ( а для SfxSplit.exe - вообще не понятно ,какие нужны ключи, т.к. -m -c -а - не работают... )

Это может выглядеть, к примеру, так : SpecExtractor 1.1
ссылка ниже в теме
В контекстном меню к пунктам распаковки au3exe и InnoSetup добавится : 7Z-SFX Extract
(используется 7ZSplit.exe со страницы автора)

Автор: korosya
Дата сообщения: 20.03.2015 20:04
MKN

Цитата:
Но т.к. средствами AU не понятно как это сделать

Как говориться язык до Киева доведет . Попросил на http://autoit-script.ru/ и вот как это сделать на AU:

Код: Local $pos=0, $hFile, $bRead, $sSearch = 'A3484BBE986C4AA9994C530A86D6487D', _
$s_File = @ScriptDir & '\file.exe'; поменяйте на полный путь к своему exe-шнику
$hFile = FileOpen($s_File, 16)
If $hFile = -1 Then Exit 13
$bRead = FileRead($hFile)
FileClose($hFile)
$pos=Mod(StringInStr($bRead, $sSearch), 2) & @LF
If $pos <> 0 Then
MsgBox(48,'','Данные найдены.')
Else
MsgBox(48,'','Данные не найдены')
EndIf
Автор: Skif_off
Дата сообщения: 20.03.2015 22:05
korosya

Цитата:
Попросил на http://autoit-script.ru/ и вот как это сделать на AU:

Мне кажется, читать весь файл неправильно, т. к. его размер может быть достаточно большим.
Насколько помню, 7z SFX - тупо склеивание модуля, конфига и архива, поэтому по-идее достаточно прочитать только начало файла, посмотрев размеры этих модулей и увеличить число в 2, например, раза (для запаса на всякий случай). Функция FileRead() позволяет прочитать указанное количество байт и , наверное, на всякий случай нужно предварительно проверять размер файла.

Добавлено:
Подозреваю (сужу по опции в настройках), в варианте от GORA тупо проверяется код возврата утилиты, если не удалось распаковать как SFX - анализируется далее.
Автор: korosya
Дата сообщения: 20.03.2015 23:07

Цитата:
Мне кажется, читать весь файл неправильно, т. к. его размер может быть достаточно большим.

Да, действительно большие файлы обрабатываются долго.

Цитата:
поэтому по-идее достаточно прочитать только начало файла,

Интересно а в RAR также?
В общем над этим стоит подумать. Тем более, что эту функцию можно применять и к AU, и к другим файлам, которые сейчас определяются не очень точно.




Автор: Skif_off
Дата сообщения: 20.03.2015 23:48
korosya

Цитата:
Интересно а в RAR также?

Сжал файл без сжатия дважды, SFX и нет - судя по тому, что вижу в Hex-редакторе, модуль тоже в начале файла.
Взглянул ради любопытства самые большие:
rar - 259 072 байт,
7z - 203 264 байт (модифицированные). Килобайт 100, как минимум, имеет смысл накинуть, т.к. вроде где-то шла речь о модифицированных модифицированных.

Автор: korosya
Дата сообщения: 21.03.2015 00:57

Цитата:
вроде где-то шла речь о модифицированных модифицированных.

А можно об этом поподробнее
Автор: Skif_off
Дата сообщения: 21.03.2015 02:29
korosya
Честно говоря, не помню, даже где искать не помню. Возможно, речь шла не более чем о замене дефолтной иконки.
Автор: boi1eI
Дата сообщения: 21.03.2015 04:12
korosya (21:04 20-03-2015)
Цитата:
Или это относится не к SfxSplit, а к 7ZSplit?

К 7ZSplit. Там нет версии 1.0.2.1020, только 0.2.0.1017
http://7zsfx.info/files/7z_splitter_1017.7z

Впрочем sfxsplit тоже раскладывает, но менее корректно например в случае.
Автор: MKN
Дата сообщения: 21.03.2015 09:26
Не правильную я предположил сигнатуру для 7-Zip SFX, исправил... ( где бы найти базу конкретных правильных сигнатур ? )
Теперь тест-пример от boi1eI распаковывается нормально.

korosya

Цитата:
большие файлы обрабатываются долго.

Похоже это беда не только для твоего кода на AU, но и вообще всех не корректных алгоритмов такого рода поиска.
В плагине , что я использую, это как то решено, находит нужное - мгновенно
Автор: MKN
Дата сообщения: 21.03.2015 12:27
SpecExtractor 1.3
ссылка ниже в теме
Добавлена распаковка MSI. При клике ПКМ на MSI файле в контекстном меню будет пункт "MSI Extract" с двумя вариантами распаковки :
стандартная, с помощью штатных средств MSI Install, и с помощью программы lessmsi.
Прочие варианты msi-распаковки, используемые Universal Extractor_ом, не включены, как совершенно бесполезные. Тем более, они не умеют распаковывать инсталляторы WiX (Windows Installer XML).
lessmsi - умеет (правда есть не большой недостаток - почему то не распаковывается сам MSI файл ... ) .
К примеру, технолония WiX использована в инсталляторах MSOffice, начиная c 2007.
Вот такой пример : http://rghost.ru/private/8HSCdxsCV/5c36e4241f1e8d9e943a78fd80e8bb0b
Автор: boi1eI
Дата сообщения: 21.03.2015 12:39
MKN
В 64-битной винде инсталлятор добавляет ветку commandstore той разрядности, из которой запущен. Или х64 проводник, или х86 командир. commandstore нужно дублировать вручную, оно само не рефлектится.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\...
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\...

Что-то оно не хочет раскладывать. Создает пустую папку 7Zsfx-UnPack_QemuBootTester_1
На "обычный натуральный" sfx орет, что он не sfx http://multi-up.com/1039508
Автор: MKN
Дата сообщения: 21.03.2015 12:45
boi1eI
Хмм... Тестю на W8.1x64. Вроде всё Ок... Буду проверять далее...


Цитата:
На "обычный натуральный" sfx орет, что он не sfx

скинь мне этот файлик

Автор: boi1eI
Дата сообщения: 21.03.2015 12:48
MKN (10:26 21-03-2015)
Цитата:
Не правильную я предположил сигнатуру для 7-Zip SFX...  ( где бы найти базу конкретных правильных сигнатур ?  )
Из разных версий 7zip-ов наверное выковыривать, и оттуда. И сравнивать.

MKN (13:45 21-03-2015)
Цитата:
Тестю на W8.1x64.
Аналогично.

Файлик там http://multi-up.com/1039508
Автор: MKN
Дата сообщения: 21.03.2015 12:53
boi1eI

Цитата:
Из разных версий 7zip-ов наверное выковыривать, и оттуда. И сравнивать.

Да, в твоём файлике - 37 2D 5A 69 70 2E 53 66 78 4D 6F 64
Что ты будешь делать... Никакой унификации...
Автор: boi1eI
Дата сообщения: 21.03.2015 13:07
MKN
Предполагаю, что придется сравнивать каждый модуль. Еще предполагаю, что помимо тех, что в 7-zip-ах и модифицированных существует множество всяких еще сильнее модифицированных.
Автор: korosya
Дата сообщения: 21.03.2015 13:46

Цитата:
Предполагаю, что придется сравнивать каждый модуль. Еще предполагаю, что помимо тех, что в 7-zip-ах и модифицированных существует множество всяких еще сильнее модифицированных.

А ещё есть RAR
Похоже проще пытаться извлечь из каждого учу-шника с помощью SfxSplit sfx-модуль, а если не получается - анализировать дальше. Если не найдется какой-нибудь универсальный способ распознавать все sfx-архивы.
Автор: MKN
Дата сообщения: 21.03.2015 13:55
boi1eI

PS QemuBootTester_1 у меня распаковывается так , как надо... Сейчас попробую ещё на одной чистой x64
PS2 На свежеустановленной W7x64 - всё отработало как надо (и файл этот распаковался нормально)

korosya

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

Можно и так... А чем плох вариант определения 7ZSFX с помощью -sfxversion ? Абсолютно беспроигрышный, хотя и немного дурацкий..
Автор: boi1eI
Дата сообщения: 21.03.2015 14:14
MKN
Докладываю: теперь из всех прошлых ехе молча создает пустую папку 7Zsfx-UnPack_name, на это ругается.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657

Предыдущая тема: Нужна программа для сворачивания в трей


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