eXeL@B —› Вопросы новичков —› Чем вытащить скрипт Inno Setup |
Посл.ответ | Сообщение |
|
Создано: 24 декабря 2013 15:43 · Личное сообщение · #1 |
|
Создано: 24 декабря 2013 15:48 · Поправил: reversecode · Личное сообщение · #2 когда давно себе что то вытягивал - уже не помню утилита по вытягиванию псевдо асма языка вроде есть/была на руборде готовой для преобразования хотя бы в псевдо код, вроде нет, разве что чейто приват тот псевдо асм более менее понятен для разбирания логики работы при инсталяции |
|
Создано: 24 декабря 2013 15:48 · Личное сообщение · #3 |
|
Создано: 24 декабря 2013 15:54 · Личное сообщение · #4 int пишет: если инструмент для вытаскивания скриптов приватен. Если стянул анпакер у дяди Жени, то там есть распаковщик с декомпилятором скриптов, ну или дай ссылку на установщик. |
|
Создано: 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 не регистрируется в системе. Разработчики утверждают что это сбой. Я же месяц убил, чтобы разобраться с этим сбоем. Сейчас они пытаются выставить меня идиотом. |
|
Создано: 24 декабря 2013 16:24 · Личное сообщение · #6 |
|
Создано: 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:
Т.е. службы с таким именем не было. |
|
Создано: 24 декабря 2013 16:39 · Поправил: reversecode · Личное сообщение · #8 так а сам скрипт распаковал? там скрипт сценария еще есть, он может тослеживать что ставить или нет |
|
Создано: 24 декабря 2013 16:44 · Личное сообщение · #9 |
|
Создано: 24 декабря 2013 16:47 · Личное сообщение · #10 |
|
Создано: 24 декабря 2013 16:50 · Личное сообщение · #11 |
|
Создано: 24 декабря 2013 16:54 · Поправил: reversecode · Личное сообщение · #12 |
|
Создано: 24 декабря 2013 16:59 · Личное сообщение · #13 |
|
Создано: 24 декабря 2013 17:08 · Личное сообщение · #14 reversecode пишет: это в скрипте? Да, в скрипте. Только фиг знает, на сколько претензия корректна к этой строчке. v2.0.50727 была финальной версией .NET версии 2. Т.е. по идее все корректно, хотя забивать версию в скрипт это все-таки большой костыль. reversecode пишет: все уже достали до нас вообще-то я по твоей ссылке скачал декомпиль скриптов) а декомипль innounp по ссылке фауста) |
|
Создано: 24 декабря 2013 17:12 · Поправил: reversecode · Личное сообщение · #15 \Microsoft.NET\Framework\v2.0.50727\regasm.exe на win7 этот путь с файлом есть у тебя нет ? а что за система? может что то с правами накручено? помню на хп проблемы акробата который не ставился потому что не мог в юзерский temp добратся, хотя он был лечилось выставлением переменной окружения аж в самом профиле юзера до другого темпа пробуй какими то рег-монами или другими трейсерами проследить где на чем проскакивает |
|
Создано: 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. Короче в топку. С дураками спорить, самому надо быть дураком. Хотел им доказать, что они заблуждаются, только зачем? Оставлю это как есть лучше. Свою проблему я уже решил. |
|
Создано: 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 |
|
Создано: 25 декабря 2013 00:02 · Личное сообщение · #18 |
|
Создано: 25 декабря 2013 00:23 · Поправил: Kindly · Личное сообщение · #19 Alf, где ты видел 64-битную regsvr32.exe? Выложи чтоле, а то в моем оригинальном OEM дистрибе такой нету. Вызывается DllRegisterServer для любой библиотеки неважно какой она разрядности, важно только то, в какой среде она находится. И если ты не знал, то инновский флаг regserver как раз и юзает всегда regsvr32.exe по пути C:\Windows\System32, вот только с правами у него косяк ----- Array[Login..Logout] of Life |
|
Создано: 25 декабря 2013 06:03 · Личное сообщение · #20 |
|
Создано: 25 декабря 2013 09:40 · Поправил: Модератор · Личное сообщение · #21 Ну вообще regsvr32.exe 2 штуки, х86 и х64, в SysWOW64 и System32. В противном случае не выйдет загрузить длл другой архитектуры, они кроссово не грузятся. если система 64, то файл будет насильно ставится в папку с 32-бит SysWOW64, а если не 64, то файл будет ставится в 64-бит System32 Полагаю, тут запутался в размышлениях. Если НЕ х64, то и System32 НЕ 64 бита. |
|
Создано: 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 |