Сейчас на форуме: vsv1, NIKOLA, r0lka, johnniewalker (+4 невидимых) |
eXeL@B —› Крэки, обсуждения —› Распаковка последних InstallShield'ов |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 28 мая 2011 06:20 · Личное сообщение · #1 |
|
Создано: 27 августа 2014 21:14 · Личное сообщение · #2 |
|
Создано: 27 августа 2014 21:42 · Поправил: vodek · Личное сообщение · #3 alexey-ka пишет: понимает 17 версию --> http://deioncube.in/files/cw2k/isd6/isd_beta16.7z <-- |
|
Создано: 07 ноября 2014 23:32 · Личное сообщение · #4 |
|
Создано: 08 ноября 2014 02:02 · Личное сообщение · #5 |
|
Создано: 08 ноября 2014 10:27 · Личное сообщение · #6 |
|
Создано: 03 февраля 2015 03:59 · Поправил: Alofa · Личное сообщение · #7 |
|
Создано: 31 января 2016 11:51 · Личное сообщение · #8 |
|
Создано: 29 августа 2016 13:03 · Личное сообщение · #9 Может кто-то всё таки знает как заменить файл в data2.cab от InstallShield 18 ? сигнатура 49 53 63 28 08 07 00 04 data1.hdr и data1.cab вынул из папки Temp data2.cab винхексом из самого инсталлятора (exe). data2.hdr просто не существует. data1.hdr содержит список файлов как первого каба, так и второго. Пробовал все что можно - не пашет ничего. С data1.cab проблем нет. Нужно именно заменить файл, а не извлечь. |
|
Создано: 27 мая 2017 00:10 · Поправил: TheDrive · Личное сообщение · #10 SaniaNET пишет: 1. вынимаем оверлей из исходного sfx exe, например програмулей Exeinfo PE 0.0.3.2 2. скриптом is_type2u.bms отсюда http://www.forum.ctpax-x.ru/s=c76c6fd10152abf21afd24d577660def&showtopic=239&view=findpost&p=3026 распаковываем оверлей и получаем заветный data2.cab 3. Ну тут уже или IsCabView.exe или другими утилитами выдергиваем из архивов все что нужно Форум CTPAX переехал на новый домен. Соотв топик с обсуждением скриптов QuickBMS переехал тоже. Новый URL: http://www.forum.ctpax-x.org/showtopic=239&st=0&p=3026 Сам QuickBMS by Luigi Auriemma, документацию и кучу ресурсов к нему можно скачать тут: http://aluigi.altervista.org/quickbms.htm Цитирую скрипты с описанием целиком (Бывает форумы целиком закрывают, тогда как подобная информация оказывает востребованной и актуальной иногда через десятки лет, потому, плз, без обид). Автор - Axsis Axsis: Версий инсталлшилда великое множество, но глобально их можно поделить на 2 типа. Но раз уж затронули эту тему, то обо всём по порядку: Во-первых как получить сам оверлей для ковыряния оного? Программ довольно много, но наиболее правильно это делает ВНЕЗАПНО 7zip (у меня версия 9.20, за более ранние не ручаюсь, но вроде он давно уже умеет разбирать exe на секции). Правда, он привередлив и распаковывает далеко не все exe, а по-моему только те у которых есть цифровая подпись. Но учитывая что IS платный и пользуются им только крупные разработчики и издатели, то подпись есть на большинстве инсталляторов. Итак, среди распакованных файлов находим файл с загадочным именем "[0]" - это и есть оверлей, он то нам и нужен. Плюс 7zip'а в том, что он, в отличие от других подобных прог, извлекает только то что нам нужно - без отладочной информации, которая в новых инсталляторах идёт после последней секции файла и перед оверлеем, и без самой цифровой подписи, которая идёт после оверлея. (Точнее, всё это сохраняется в отдельных файлах). Оверлеи, как я уже писал, бывают двух типов - с заголовком "InstallShield" и без заголовка вообще. Файлы с заголовком опишу чуть позже, там тоже несколько разновидностей, шифрование, сжатие и т.д и т.п. В 3DMark'ах (не только в 11, но и в предыдущих) используется второй тип - раньше его брала IsXunpack.exe, но теперь имена файлов и здесь в юникоде, так что облом. Я эти файлы распаковываю с помощью скриптов для QuickBMS. Для новой версии понадобилась лишь лёгкая модификация скрипта Для старых версий (без юникода; действие аналогично IsXunpack): Code:
Для новых версий (с именами в юникоде): Code:
В принципе ничего сложного, файлы с заголовком опишу чуть позже, там всё несколько хитрее. Но и для них тоже есть скрипт. А то тягать инсталляторы из темпа как-то не по-нашенски. Для справки, у меня 7zip - консольный, GUI, в составе Far->ArcLite, версий 9.20, 9.34, 200-метровый exe-инсталлятор от Qualcomm просто игнорирует (Can not open file as archive). Подписей на инсталляторе НЕТ. Вторая часть: Axsis: Итак, возвращаясь к теме распаковки InstallShield'а с заголовком, а то моё "чуть позже" и так затянулось... rolleyes.gif Давным-давно были версии IS, в которых файлы в оверлее лежали в открытом виде. Потом разработчики сделали шифрование каждого файла в псевдоархиве. Потом они сделали шифрование не целиком всего файла, а блоками по 1024 байта, видимо, чтоб не грузить файл в память целиком. И последнее нововведение - файлы теперь ещё и сжаты перед шифрованием (zlib). Скрипт поддерживает все (вроде) данные типы. Однако, когда я реализовал расшифровку средствами самого BMS, то работало оно жутко медленно - у меня скорость была порядка 1 Мб в секунду, и ждать, например, по полторы-две минуты на расшифровке 100 мегабайтного файла быстро надоело. Поэтому, почитав в очередной раз справку по QuickBMS, я решил переписать функцию расшифровки на асме и вызывать её из скрипта. Быстрее стало в буквальном смысле на порядок, тот же файл распаковался примерно за 10 сек. Собственно рабочая версия скрипта: Code:
При расшифровке QuickBMS спросит можно ли вызвать функцию из MEMORY_FILE2 - нужно ему разрешить. Ну и тестовая версия с расшифровкой на самом BMS: Code:
Повторюсь, эта версия довольно медленная и никак не сообщает работает она или же висит. Я пробовал добавить вывод некоего "прогресс-бара", но тогда скрипт работает ещё медленнее. Так что запускайте его на небольших файлах или наберитесь терпения. PS: И сам алгоритм шифрования: DecodedData = ByteSwap(EncodedData) XOR (FileName.ext XOR 0xECCA79F8). ByteSwap - обмен местами младших и старших 4 бит в байте, как в 3Дмарках. FileName.ext - имя сохраняемого файла, используется как ключ, поэтому регистр важен. В EncodedData либо весь файл сразу, либо блоками по 1024 байта - в зависимости от версии IS. Немного некорректно выразился, там не 0xECCA79F8 а массив байт 0xEC, 0xCA, 0x79, 0xF8. Длина имени любая, 5-ый символ в строке xor'ится опять первым байтом массива, 6-й - вторым, и т.д. В том же топике обсуждается модификации I6comp (i6compx и i6comp2x с попыткой частичной интеграции поддержки unicode версий, есть исходники) за авторством -=CHE@TER=- с участием Axsis. Архив с i6compx/i6comp2x аттачу для истории. -=CHE@TER=- Unicode, правда, не поддерживается (тупо переводится в ANSI с заменой на "_" левых символов), но главное, что оно всё правильно распаковывает. Флаг 0x04000000 я поставил от балды, т.к. не знаю какой там должен быть правильный, чтобы по нему определить наличие отсутствия Unicode. http://www.ctpax-x.org/uploads/i6compx.zip http://www.ctpax-x.org/uploads/i6comp2x.zip Подробности см. в том топике. Обсуждение за декабрь 2010 и март 2013г. Не доделали. gazlan пишет: вынимаем оверлей из исходного sfx exe, например програмулей Exeinfo PE 0.0.3.2 h**p://gazlan.freetzi.com/pe/splitters/ovr.rar Сайт почил, что за программа скрывалась за "словом из 3 букв" не известно. Найти такой архив с "тематическим" содержимым не удалось. Даже archive.org знает лишь то, что такой сайт когда-то был... Вообще, изменения в форматах архивов за все годы после IS 3.x носят весьма косметический характер. Слегка меняются форматы хранения sfx и cab-ов, все больше с целью "чтоб не распаковывали". Было бы отлично, если бы кто-то взялся за написание универсального инструмента по IS "всех версий", дабы не плодить бесконечные "патчи" и "латки". Пример подобного статического распаковщика - Inno Unpacker для Inno Setup. Автор долгие годы добавляет новые версии по одной даже после мелких изменений формата, равно как и некоторые популярные "кастомизации". Зато, если версия поддерживается, она распаковывается корректно, без проблем и танцев с бубном. Распаковку sfx.exe и cab можно было бы объединить в рамках одного инструмента либо разнести в разные. Главное чтобы поддерживалось и корректно распаковывало. P.S. форум не желает прикладывать аттач | Сообщение посчитали полезным: reverser |
|
Создано: 27 мая 2017 01:21 · Поправил: TheDrive · Личное сообщение · #11 В аттаче были файлы i6compx.zip и i6comp2x.zip, скачанные по ссылкам, приведенным выше и упакованные в один "большой" i6compx_ctpax.zip, общим весом аж 121КБ, и то, только по той веской причине, что "ближе к середине 21 века" к форуму, все еще, ну никак, нельзя добавить 2 аттача - только один и только не более 500КБ. Так мы и растеряем все "важные вехи большого пути", постепенно... При попытке редактировать с добавлением аттача по новой - сразу же добавляет, только не аттач........ а говно, которое Вы видите строкой ниже: <img src="img/attach.gif C'est la vie. Форум не желал добавлять аттач, оказывается, потому, что мое "маленькое скромное сообщение" не умещалось в какие-то там сИкретные рамки, однако даже знать об этом мне было не дано, только догадываться по разным "знакам" и "полунамекам". e023_27.05.2017_EXELAB.rU.tgz - i6compx_ctpax.zip |
|
Создано: 28 мая 2017 08:45 · Личное сообщение · #12 |
|
Создано: 11 сентября 2019 12:57 · Личное сообщение · #13 |
<< . 1 . 2 . |
eXeL@B —› Крэки, обсуждения —› Распаковка последних InstallShield'ов |