Танкист Апокалипсиса
Пытался поломать дистрибутив почтового клиента. Какого - неважно, но, думаю, догадаться можно. На самом деле, крэк под программу уже давно существует, но накладывается он после установки программы. И если с одной-двумя-десятью инсталляциями ещё можно смириться, то устанавливать эту прелесть на бОльшее количество компьютеров было бы лениво.

"И вот, беру я в руки молоток..."

Задача сформулирована достаточно чётко, просто и понятно:

а) установить программу.

б) крэкнуть всё, что нужно сломать.

в) внести изменённые файлы в дистрибутив и собрать его заново, как будто "так оно и было".

На словах всё просто. На деле же всё получилось намного сложнее. Сразу возник вопрос: чем дистрибутив открывать? Хорошо ещё, что он в формате MSI. Правда, на этом приятные новости заканчиваются, потому что пакет составлен таким образом, что при открытии его в Wise Installer видно всего лишь два файлика из более чем сотни. Игра с параметрами открытия и конвертации не помогла.

Хорошо.

Выяснилось, что можно сделать экспорт в формат XML. Экспорт меня не удовлетворил, поэтому пришлось отыскать программу msi2xml (она же - xml2msi) и, побаловавшись опциями, разобрать инсталлятор по косточкам.

Параметры были таковы: msi2xml -b Directory setup.msi , где Directory - каталог, куда распакуем содержимое, а setup.msi - дистрибутив. При использовании данной команды в каталоге появляются ресурсы инсталлятора (иконки, картинки и прочее), файл с именем setup.msi.xml (тут находятся скрипты, управляющие процессом установки программы) и один или более архивов в формате CAB (каб) - собственно, сама программа.

Распаковать архивы можно при помощи WinRAR или команды expand. Но WinRAR удобнее. :-) Да, вот ещё что: необходимо сделать также список имён файлов в архивах следующей командой: expand -D имя_файла_архива.cab > имя_списка_файлов.txt. Зачем это нужно, станет ясно позднее.

Распаковал.

Наложил кряк.

А теперь надо запаковать. Но тут ещё одна трудность: сделать архив можно при помощи команды makecab. Проблема только в том, что она не имеет документации. Вообще. Кое-что есть в Сети, но это ещё найти надо. Есть программы сторонних разработчиков, но архивы, которые ими создавались, оказались непригодны для использования в инсталляторе. (Чтобы это понять и найти выход, пришлось потратить немало времени) Почему непригодны? Да потому, что файлы в архив должны быть запакованы в том же порядке, что был в изначальном пакете! Вот тут-то нам и пригодится файл имя_списка_файлов.txt, сделанный ранее. Его надо подредактировать (убрать несколько строк, к именам файлов не имеющих отношения, удалить название каб-файла из начала строк, да добавить несколько строк с параметрами создаваемого архива (их не помню, ищите в Сети, они есть)) и вызвать следующую команду: makecab -F имя_списка_файлов.txt

Если всё было верно, на выходе получим плотно упакованные файлы программы. Далее всё просто, командой xml2msi -m setup.msi.xml воссоздаём инсталлятор и можем насладжаться жизнью.



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



Трудозатраты - огромны. Но знания - бесценны.

@темы: Опыт сын ошибок трудных, Информационные технологии

Комментарии
08.10.2005 в 01:27

капибара
а продемонстрировать результат? ;-)
08.10.2005 в 01:58

Танкист Апокалипсиса
На мыло в понедельник. :-)
08.10.2005 в 09:17

капибара
08.10.2005 в 19:21

Танкист Апокалипсиса
Две тонкости:

а) дистрибутив до конца не оттестирован.

б) размер письма получится мегабайт 13-14.
08.10.2005 в 20:44

капибара
DukeSS

а и б) я в курсе.
08.10.2005 в 21:41

Танкист Апокалипсиса
Ладно!

Будешь у меня подопытным кроликом :-)

Расширенная форма

Редактировать

Подписаться на новые комментарии