Сейчас на форуме: asfa, Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Чем вытащить скрипт Inno Setup
Посл.ответ Сообщение

Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 24 декабря 2013 15:43
· Личное сообщение · #1

Собственно, читайте тему.

Появилась проблема в том, что используемое ПО как-то по-разному ставится на разных машинах. Хочется найти доказательную базу, изучив по каким принципам оно ставится. Сборку предоставлю, если инструмент для вытаскивания скриптов приватен.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 24 декабря 2013 15:48 · Поправил: reversecode
· Личное сообщение · #2

когда давно себе что то вытягивал - уже не помню

утилита по вытягиванию псевдо асма языка вроде есть/была на руборде
готовой для преобразования хотя бы в псевдо код, вроде нет, разве что чейто приват

тот псевдо асм более менее понятен для разбирания логики работы при инсталяции

--> Link <-- новая тулза какая то



Ранг: 0.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 декабря 2013 15:48
· Личное сообщение · #3

Можно больше информации? Какие архитектуры использовались для установки?



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 24 декабря 2013 15:54
· Личное сообщение · #4

int пишет: если инструмент для вытаскивания скриптов приватен.
innounp зависимость от версий, так что, смотри версию установщика.
Если стянул анпакер у дяди Жени, то там есть распаковщик с декомпилятором скриптов, ну или дай ссылку на установщик.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 24 декабря 2013 16:02
· Личное сообщение · #5

ftp://ftp.sl.iae.nsk.su/ForwardTxSoftware/Releases/5_4_0/ForwardTxLite/ForwardTxLite_Setup_5_4_0.exe

Суть проблемы: C:\Program Files\Common Files\SoftLab-Nsk\SLMessageQueue2.dll не регистрируется в системе. Разработчики утверждают что это сбой. Я же месяц убил, чтобы разобраться с этим сбоем. Сейчас они пытаются выставить меня идиотом.




Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 24 декабря 2013 16:24
· Личное сообщение · #6

http://paste.org.ru/?eze5bg

Если верить этой строке должно работать:
Source: "{cf}\SoftLab-Nsk\SLMessageQueue2.dll"; DestDir: "{cf}\SoftLab-Nsk"; MinVersion: 4.1,4.0; Flags: restartreplace regserver sharedfile promptifolder

-----
Don_t hate the cracker - hate the code.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 24 декабря 2013 16:34
· Личное сообщение · #7

mysterio
Да, я тоже уже расковырял скрипт.

А вот меня смущает, что в "[Run]" отсутствует regsvr32 для этой либы. Для других же оно указано зачем-то. Например, возьмем Logotype.dll
Source: "{app}\FDTitle\Logotype.dll"; DestDir: "{app}\FDTitle"; MinVersion: 4.1,4.0; Flags: regserver promptifolder
Однако есть такая строчка:
[Run]
...
Filename: "regsvr32.exe"; Parameters: "/s ""{app}\FDTitle\Logotype.dll"""; MinVersion: 4.1,4.0; Flags: skipifdoesntexist

Конкретно в моем случае эти две строчки тоже не отработали:

Code:
  1. Filename: "{cf}\SoftLab-Nsk\SLMessageServer2.exe"; Parameters: " /Service"; MinVersion: 4.1,5.0; Flags: skipifdoesntexist
  2. Filename: "sc.exe"; Parameters: " config SLMessageServer2 start= auto"; MinVersion: 4.1,4.0; Flags: skipifdoesntexist

Т.е. службы с таким именем не было.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 24 декабря 2013 16:39 · Поправил: reversecode
· Личное сообщение · #8

так а сам скрипт распаковал? там скрипт сценария еще есть, он может тослеживать что ставить или нет

--> Link <--



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 24 декабря 2013 16:44
· Личное сообщение · #9

reversecode
Скрипта сценария не увидел, видимо не входит в список фич innounp.

F_a_u_s_t пишет:
Если стянул анпакер у дяди Жени

Чего нет, того нет. На самом деле у меня уже давно ничего нет, жесткий с награбленным давно утерян.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 24 декабря 2013 16:47
· Личное сообщение · #10

инно не анпакает такие сценарии
я уже две ссылки дал на одну и туже прогу, которая псевдо асм генерит

может у фауста есть утиль котроый достанет уже готовый сценарий

хотя возможен и такой вариант когда сценария нет, но проверить надо



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 24 декабря 2013 16:50
· Личное сообщение · #11

Долбоеб детектед!

Они юзают вот такую хрень \Microsoft.NET\Framework\v2.0.50727\regasm.exe

Т.е. если у меня другая версия сборки, то regasm не вызывается.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 24 декабря 2013 16:54 · Поправил: reversecode
· Личное сообщение · #12

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

написание сценариев иногда тяжело, применяют генераторы

фауст неуспел) все уже достали до нас,
там тоже самое



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 24 декабря 2013 16:59
· Личное сообщение · #13

Все что достал.


5ee8_24.12.2013_EXELAB.rU.tgz - iss.rar



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 24 декабря 2013 17:08
· Личное сообщение · #14

reversecode пишет:
это в скрипте?

Да, в скрипте. Только фиг знает, на сколько претензия корректна к этой строчке. v2.0.50727 была финальной версией .NET версии 2. Т.е. по идее все корректно, хотя забивать версию в скрипт это все-таки большой костыль.

reversecode пишет:
все уже достали до нас

вообще-то я по твоей ссылке скачал декомпиль скриптов) а декомипль innounp по ссылке фауста)




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 24 декабря 2013 17:12 · Поправил: reversecode
· Личное сообщение · #15

\Microsoft.NET\Framework\v2.0.50727\regasm.exe
на win7 этот путь с файлом есть
у тебя нет ?
а что за система? может что то с правами накручено? помню на хп проблемы акробата который не ставился потому что не мог в юзерский temp добратся, хотя он был
лечилось выставлением переменной окружения аж в самом профиле юзера до другого темпа

пробуй какими то рег-монами или другими трейсерами проследить где на чем проскакивает



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 24 декабря 2013 17:19
· Личное сообщение · #16

Ну у меня этот путь есть. Мне не понравился сам факт, что такой путь захардкоден. Но проблема вряд ли в этом.

http://social.msdn.microsoft.com/Forums/vstudio/en-US/baaec1ca-3556-4e8d-b789-f11ce7e57dc9/regasmexe-for-net35-missing?forum=netfxsetup

P.S. Короче в топку. С дураками спорить, самому надо быть дураком. Хотел им доказать, что они заблуждаются, только зачем? Оставлю это как есть лучше. Свою проблему я уже решил.




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 24 декабря 2013 18:11 · Поправил: Kindly
· Личное сообщение · #17

int, у меня была похожая трабла c регистрацией библы на чистой Win 7, причем это баг Inno, если ты в нем пытаешся через команду regserver зарегить. Я решил когда-то этот вопрос так:
[Run]
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/s ""{cf}\Reallusion\Shared\RLVnsThumb32.dll"""; StatusMsg: "Registering files..."; Flags: runascurrentuser
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/s ""{cf}\Reallusion\Shared\RLVnsThumb64.dll"""; StatusMsg: "Registering files..."; Flags: runascurrentuser; Check: IsWin64
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/s ""{cf}\Reallusion\Shared\wavdest.ax"""; StatusMsg: "Registering files..."; Flags: runascurrentuser

[UninstallRun]
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/u /s ""{cf}\Reallusion\Shared\RLVnsThumb32.dll"""; Flags: runascurrentuser waituntilterminated
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/u /s ""{cf}\Reallusion\Shared\RLVnsThumb64.dll"""; Check: IsWin64; Flags: runascurrentuser waituntilterminated
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/u /s ""{cf}\Reallusion\Shared\wavdest.ax"""; Flags: runascurrentuser waituntilterminated

из [Files] при этом нужно поубирать флаги regserver/regtypelib. также в дебаге инно определяется, регистрируется ли на самом деле библиотека, т.е. выполняется ли DllRegisterServer для нее.
p.s. надо джордану написать про баг, что регистрация на чистой системе неудачна из под флага, если в пути содержаться пробелы. стоит ли регистрации хоть раз выполнится, как этот баг уже не появляется, поэтому на каких-то системах все нормально, а где Inno ничего раньше не регистрировал - failed.

-----
Array[Login..Logout] of Life




Ранг: 56.2 (постоянный), 22thx
Активность: 0.030.08
Статус: Участник

Создано: 25 декабря 2013 00:02
· Личное сообщение · #18

вы в режиме ArchitecturesInstallIn64BitMode=x64 пытаетесь 64-битной regsvr32.exe зарегистрировать 32-битную dll? - для єтого нужно запускать 32-битную regsvr32.exe из SysWOW64




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 25 декабря 2013 00:23 · Поправил: Kindly
· Личное сообщение · #19

Alf, где ты видел 64-битную regsvr32.exe? Выложи чтоле, а то в моем оригинальном OEM дистрибе такой нету. Вызывается DllRegisterServer для любой библиотеки неважно какой она разрядности, важно только то, в какой среде она находится. И если ты не знал, то инновский флаг regserver как раз и юзает всегда regsvr32.exe по пути C:\Windows\System32, вот только с правами у него косяк

-----
Array[Login..Logout] of Life




Ранг: 58.0 (постоянный), 13thx
Активность: 0.020.01
Статус: Участник

Создано: 25 декабря 2013 06:03
· Личное сообщение · #20

Давно бы прогнал инсталлер под Procmon чем гадать на декомпильнутых скриптах.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 25 декабря 2013 09:40 · Поправил: Модератор
· Личное сообщение · #21

Ну вообще regsvr32.exe 2 штуки, х86 и х64, в SysWOW64 и System32. В противном случае не выйдет загрузить длл другой архитектуры, они кроссово не грузятся.

если система 64, то файл будет насильно ставится в папку с 32-бит SysWOW64, а если не 64, то файл будет ставится в 64-бит System32
Полагаю, тут запутался в размышлениях. Если НЕ х64, то и System32 НЕ 64 бита.




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 25 декабря 2013 11:22 · Поправил: Kindly
· Личное сообщение · #22

код не совсем понятен, к примеру:
Source: "{syswow64}\CodecCfg.dll"; DestDir: "{syswow64}"; Check: "IsWin64";
и
Source: "{sys}\CodecCfg.dll"; DestDir: "{sys}"; Check: "not IsWin64";
(такая же ошибка и с реестром HKLM32)
получается, если система 64, то файл будет насильно ставится в папку с 32-бит SysWOW64, а если не 64, то файл будет ставится в 64-бит System32.

вообще если юзается
ArchitecturesInstallIn64BitMode=x64
{syswow64} не нужно указывать, нужно {sys} и правильно расставлять флаг 32bit а не Check: "IsWin64/not IsWin64".

Тогда так:
Source: "c:\Output\RLVnsThumb32.dll"; DestDir: "{cf}\Reallusion\Shared"; Flags: uninsnosharedfileprompt regserver sharedfile 32bit;
Source: "c:\Output\RLVnsThumb64.dll"; DestDir: "{cf}\Reallusion\Shared"; Flags: uninsnosharedfileprompt regserver sharedfile;
При наличии условия ArchitecturesInstallIn64BitMode=x64, все файлы и значения реестра, вобщем все, будет заюзано в 64-бит среде, а у которых будет флаг 32bit, будут заюзаны в 32 бит среде, также как и регистрация в 32-бит процессе. тогда в принципе и у меня в предыдущем примере кода ошибка, поправлю:
[Run]
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/s ""{cf}\Reallusion\Shared\RLVnsThumb32.dll"""; StatusMsg: "Registering files..."; Flags: runascurrentuser 32bit
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/s ""{cf}\Reallusion\Shared\RLVnsThumb64.dll"""; StatusMsg: "Registering files..."; Flags: runascurrentuser;

[UninstallRun]
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/u /s ""{cf}\Reallusion\Shared\RLVnsThumb32.dll"""; Flags: runascurrentuser waituntilterminated 32bit
FileName: "{sys}\regsvr32.exe"; WorkingDir: "{sys}"; Parameters: "/u /s ""{cf}\Reallusion\Shared\RLVnsThumb64.dll"""; Flags: runascurrentuser waituntilterminated

Из хелпа:
"On a 64-bit mode install running on an x64 edition of Windows, the type library will be registered inside a 64-bit process. You can override this by specifying the 32bit flag."

Archer пишет:
Полагаю, тут запутался в размышлениях.

ну да, тот код определяет 32-битную установку в любой среде, а я представлял файлы с различной разрядностью.

-----
Array[Login..Logout] of Life



 eXeL@B —› Вопросы новичков —› Чем вытащить скрипт Inno Setup
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати