Выложили [GIMP 2.10.2]https://download.gimp.org/mirror/pub/gimp/v2.10/windows/gimp-2.10.2-setup.exe) и на данный момент версия 0.46 его не может распаковать неправильно сообщая об ошибке:
; Version detected: 5507 (Unicode)
Critical error: The setup files are corrupted. Please obtain a new copy of the program.
поскольку там судя по записи деинсталляции использована новая версия 5.6.0 Beta которую текущая версия унпакера ещё не знает:
Н-н-да, вышла стабильная Inno Setup 5.6.0 а прицепится к игнатуре для распаковки пока не выходит:
$ innounp innosetup-qsp-5.6.0-unicode.exe
; Version detected: 5507 (Unicode)
Critical error: The setup files are corrupted. Please obtain a new copy of the program.
и идей как обойти затык нет...:(
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Как-то вот это меня заинтриговало, и посравнивал я сорцы новой и старой версии. Оказывается, там структуры не поменялись, поэтому, наверное, и сигнатуру автор не сменил.
После тыкания отладчиком и воскурения сорцов, выяснилось, что в новой версии вместо традиционной одной картинки в визарде, теперь их может быть много. И там, где раньше сразу шла распаковка данных, теперь надо читать количество картинок ,а потом их по очереди распаковывать.
Проблема решаемая, только теперь вопрос как узнать одна у нас картинка или несколько. С неизменной сигнатурой подстава конечно.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Н-да. Не было печали - черти накачали.:) По идее раз картинок несколько, то где-то нужен счётчик чтобы стаб мог их вывести. По крайней мере в OS/360 указание на вершину стека ресурсов без указания его глубины воспринималось как неуважение разработчика к коллегам, и за это мигом лишали премии, а могли и уволить за профнепригодностью - "Вы не один над проектом работаете! Никто не будет разбираться в ваших каракулях!".
Потому мне думается где-то должен сидеть указатель на вершину цепочки и счётчик её текущей глубины, а данные должны сидеть по смещению статовый адрес цепочки + её длинна. (?) - я бы так сделал что типа такой вставки на ассемблере (S/360):
la *,* // инициализируем счётчик адреса адресом загрузки (хотя по совести это и не надо - загрузчик уже это сделал, но ...)
br *+4 // установим счётчик адреса *+4
dd 0x00000000 // определим размер блока ресурсов в байтах как Int(4)
lr r1,*-2 // прочитаем размер блока ресурсов в r1
la r2,*+2 // прочитаем адрес блока ресурсов в r2
br *+r1 // обойдём блок ресурсов
dd ... // начало блока ресурсов
.....
dd ... // конец блока ресурсов
// первая команда исполняемого кода
для обхода расположенного в области точки входа блока внедрённых ресурсов и передачи управления на первую исполняемую команду в коде, при этом в r1 останется длинна блока ресурсов, а его адрес будет в r2
Last edit: VictorVG 2018-06-10
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ну счетчик то там есть. Инсталяха же должна знать сама сколько там картинок. Тут некоторая сложность в том, что мы не знаем, что у нас первое число в распакованом потоке: счетчик на много картинок или это уже сама картинка пошла. Версия то не поменялась, а формат да.
Задача вполне решаемая, но туповато получится.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
А давай смиотреть от формата картинок - мы их по хидеру можем распознать, и посмотреть что за ней у нас идёт - картинка или что-то похожее на данные. Не айс,но я иной идеи с ходу не вижу....
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Та не, там попроще система нужна. В инсталяхе все данные идут непрерывным потоком сжатым lzma. И чтобы понять размер картинки перед данными идет размер файла. А теперь ещё и счетчик идет. Т.е. по сути надо прочитать число из потока (и счетчик и размер по 4 байта) и прикинуть на что это значение больше похоже. На количество картинок или на размер файла. Туповатый алгоритм, но должно работать.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
По идее давай посмотрим благо у нас есть на чём проверить - сам дистрибутив не велик, значит коли что распракуется быстро и GIMP, но он довольно велик и содержит много файлов, но там вроде могут быть переменные картинки. Ну а нет - сами сотворим какой тест набор. Было бы что в качестве тест-кучи.
Last edit: VictorVG 2018-06-16
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Пока на сайте инки какие-то работы положил в архиве QuickStart Pack v5.6.1 от 17.06.2018 - https://www.upload.ee/files/8580363/Inno_Setup.7z.html там ANSI, UNICODE варианты и история в CHM (делал для удобства чтения).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Выложили [GIMP 2.10.2]https://download.gimp.org/mirror/pub/gimp/v2.10/windows/gimp-2.10.2-setup.exe) и на данный момент версия 0.46 его не может распаковать неправильно сообщая об ошибке:
поскольку там судя по записи деинсталляции использована новая версия 5.6.0 Beta которую текущая версия унпакера ещё не знает:
так что нам есть повод к обновлению. Не ясно только зачем этой бетой воспользовались?
Last edit: VictorVG 2018-05-24
Не получится пока обновиться. Версию автор поднял, а сигнатура старая осталась - 5.5.7 (можно в Фаре открыть и посмотреть, если интересно).
Понял, вывод видел. Я собственно и распаковать хотел из-за вопроса на борде в теме по GIMP-у:
думаю " v2.10.0 только в х64 была, как он её на 32-х битную ось установил? надо начинку инсталлера глянуть" ан, не получилось...
Н-н-да, вышла стабильная Inno Setup 5.6.0 а прицепится к игнатуре для распаковки пока не выходит:
и идей как обойти затык нет...:(
Как-то вот это меня заинтриговало, и посравнивал я сорцы новой и старой версии. Оказывается, там структуры не поменялись, поэтому, наверное, и сигнатуру автор не сменил.
После тыкания отладчиком и воскурения сорцов, выяснилось, что в новой версии вместо традиционной одной картинки в визарде, теперь их может быть много. И там, где раньше сразу шла распаковка данных, теперь надо читать количество картинок ,а потом их по очереди распаковывать.
Проблема решаемая, только теперь вопрос как узнать одна у нас картинка или несколько. С неизменной сигнатурой подстава конечно.
Н-да. Не было печали - черти накачали.:) По идее раз картинок несколько, то где-то нужен счётчик чтобы стаб мог их вывести. По крайней мере в OS/360 указание на вершину стека ресурсов без указания его глубины воспринималось как неуважение разработчика к коллегам, и за это мигом лишали премии, а могли и уволить за профнепригодностью - "Вы не один над проектом работаете! Никто не будет разбираться в ваших каракулях!".
Потому мне думается где-то должен сидеть указатель на вершину цепочки и счётчик её текущей глубины, а данные должны сидеть по смещению статовый адрес цепочки + её длинна. (?) - я бы так сделал что типа такой вставки на ассемблере (S/360):
для обхода расположенного в области точки входа блока внедрённых ресурсов и передачи управления на первую исполняемую команду в коде, при этом в r1 останется длинна блока ресурсов, а его адрес будет в r2
Last edit: VictorVG 2018-06-10
Ну счетчик то там есть. Инсталяха же должна знать сама сколько там картинок. Тут некоторая сложность в том, что мы не знаем, что у нас первое число в распакованом потоке: счетчик на много картинок или это уже сама картинка пошла. Версия то не поменялась, а формат да.
Задача вполне решаемая, но туповато получится.
А давай смиотреть от формата картинок - мы их по хидеру можем распознать, и посмотреть что за ней у нас идёт - картинка или что-то похожее на данные. Не айс,но я иной идеи с ходу не вижу....
Та не, там попроще система нужна. В инсталяхе все данные идут непрерывным потоком сжатым lzma. И чтобы понять размер картинки перед данными идет размер файла. А теперь ещё и счетчик идет. Т.е. по сути надо прочитать число из потока (и счетчик и размер по 4 байта) и прикинуть на что это значение больше похоже. На количество картинок или на размер файла. Туповатый алгоритм, но должно работать.
По идее давай посмотрим благо у нас есть на чём проверить - сам дистрибутив не велик, значит коли что распракуется быстро и GIMP, но он довольно велик и содержит много файлов, но там вроде могут быть переменные картинки. Ну а нет - сами сотворим какой тест набор. Было бы что в качестве тест-кучи.
Last edit: VictorVG 2018-06-16
Пока на сайте инки какие-то работы положил в архиве QuickStart Pack v5.6.1 от 17.06.2018 - https://www.upload.ee/files/8580363/Inno_Setup.7z.html там ANSI, UNICODE варианты и история в CHM (делал для удобства чтения).