Здравствуйте, Аноним, Вы писали:
А>Есть ли способ заменить отдельный файл в инсталяторе msi ?!
Есть такая утилитка MsiDb.exe (входит в состав Install SDK).
Предназначена как раз для подобных вещей. Но при этом надо знать, что в
msi обычно не просто файлы лежат, а уже пожатые в cab'ы. А посему
сначала нужно вытащить cab:
MsiDb.Exe -dPAKAGE_NAME.msi -xCAB_FILE_NAME.cab, затем его подправить как надо и закатать обратно:
MsiDb.Exe -dPAKAGE_NAME.msi -kCAB_FILE_NAME.cab — удаляем старый;
MsiDb.Exe -dPAKAGE_NAME.msi -aCAB_FILE_NAME.cab — пихаем новый.
Если кабов нет, то с файлами работает анологичным образом.
Те же операции можно проделать и самостоятельно с помощью объекта Record
из объектной модели Windows Installer. С помощью ReadStrem, ClearDate
& SetStream.
Надеюсь, что нужно все это не для того, чтобы запихивать троянов в чужие инсталляхи
Будут деньги, дом в Чикаго, много женщин и машин...
Здравствуйте, IBoB, Вы писали:
IBB>Здравствуйте, Аноним, Вы писали:
А>>Есть ли способ заменить отдельный файл в инсталяторе msi ?! IBB>Есть такая утилитка MsiDb.exe (входит в
состав Install SDK). Предназначена как раз для подобных вещей. Но при
этом надо знать, что в msi обычно не просто файлы лежат, а уже пожатые в
cab'ы. А посему сначала нужно вытащить cab: IBB>MsiDb.Exe -dPAKAGE_NAME.msi -xCAB_FILE_NAME.cab, затем его подправить как надо и закатать обратно: IBB>MsiDb.Exe -dPAKAGE_NAME.msi -kCAB_FILE_NAME.cab — удаляем старый; IBB>MsiDb.Exe -dPAKAGE_NAME.msi -aCAB_FILE_NAME.cab — пихаем новый. IBB>Если кабов нет, то с файлами работает анологичным образом. IBB>Те же операции можно проделать и
самостоятельно с помощью объекта Record из объектной модели Windows
Installer. С помощью ReadStrem, ClearDate & SetStream. IBB>Надеюсь, что нужно все это не для того, чтобы запихивать троянов в чужие инсталляхи
Спасибо за подробный ответ, буду разбираться.
Нужно заменить dll старую на новую